KStars は、無料のオープンソース、クロスプラットフォームの天文学ソフトウェアです。
地球上の任意の場所、任意の日時からの夜空の正確なグラフィック シミュレーションを提供します。表示には、最大 1 億個の星、13,000 個の深空天体、8 つの惑星すべて、太陽と月、および数千の彗星、小惑星、超新星、衛星が含まれます。
学生と教師向けには、長いタイムスケールで発生する現象を表示するための調整可能なシミュレーション速度、合を予測するための KStars Astrocalculator、および多くの一般的な天文計算がサポートされています。アマチュア天文学者向けに、観測プランナー、天空カレンダー ツール、および機器の視野を計算して表示する FOV エディターを提供します。 「What's up Tonight」ツールで興味深い天体を見つけ、任意の天体の高度と時間のグラフをプロットし、高品質の天空図を印刷し、宇宙の探索に役立つ多くの情報やリソースにアクセスします。
KStars には、多数の望遠鏡、CCD、DSLR、フォーカサー、フィルターなどを含むすべての INDI デバイスを制御できる完全な天体写真ソリューションである Ekos 天体写真スイートが含まれています。 Ekos は、オンラインおよびオフラインの天文ソルバー、オートフォーカスおよびオートガイド機能を使用した高精度の追跡、および強力な内蔵シーケンス マネージャーを使用した単一または複数の画像のキャプチャをサポートしています。
著作権 (c) 2001 - 2024 by The KStars チーム:
KStars は、GNU Public License に基づいてリリースされたフリー ソフトウェアです。 GPL ライセンス情報については、「コピー」を参照してください。
KStars は Windows、MacOS、Linux で利用できます。 KStars公式ウェブサイトから最新バージョンをダウンロードできます。
Linux では、ほとんどの Linux ディストリビューションで利用できます。
最新の安定バージョンは v3.6.8 です
KStarsのホームページ
KStars Git リポジトリ
KStars ウェブチャット
KStarsについてよく議論されるフォーラム
KStars ハンドブックは、$(KDEDIR)/share/doc/HTML//kstars/ ディレクトリにあります。 [ヘルプ] メニューから、[F1] キーを押すか、https://docs.kde.org/?application=kstars にアクセスして簡単にアクセスすることもできます。残念ながら、これは少し時代遅れです。更新にご協力いただけるボランティアを歓迎します。
さらに、次の README ファイルがあります。
README: このファイル。一般情報 README.planetmath: 惑星の位置の計算に使用されるアルゴリズムの説明 README.customize: 高度なカスタマイズ オプション README.images: KStars で使用される画像の著作権情報。 README.i18n: 翻訳者向けの説明書
コードは、KStars リポジトリ経由で複製、表示、マージ リクエストを行うことができます。リモート Git リポジトリを初めて使用する場合は、以下の「Git ヒント」セクションを参照してください。注: 以前、KStars はマージ リクエストに Phabricator を使用していました。そのシステムはもう使われていません。
KStars の開発を計画している場合は、IDE を利用することを強くお勧めします。任意の IDE を使用できますが、Qt/KDE 開発により適しているため、QtCreator(https://www.qt.io/product) または KDevelop(https://www.kdevelop.org) をお勧めします。
QtCreator で KStars を開くには、KStars ソース フォルダー内の CMakeLists.txt ファイルを選択し、ビルドの場所と種類を構成します。
前提条件のパッケージ
KStar を構築および開発するには、ディストリビューションからいくつかのパッケージが必要になる場合があります。ここにリストがあります。
必要な依存関係
GNU Make、GCC -- 構築に必須のツール
cmake -- KDE で使用されるビルドシステム
Qt ライブラリ > 5.12.0
いくつかの KDE フレームワーク: KConfig、KDocTools、KGuiAddons、KWidgetsAddons、KNewStuff、KI18n、KInit、KIO、KXmlGui、KPlotting、KIconThemes
eigen -- 線形代数ライブラリ
zlib -- 圧縮ライブラリ
StellarSolver -- https://github.com/rlancaste/stellarsolver を参照してください。
オプションの依存関係
libcfitsio -- FITS ライブラリ
libindi -- 機器を制御するための機器中立分散インターフェース。
エクスプラネット
astrometry.net
リブロー
wcslib
libgsl
qtキーチェーン
前提条件のインストール
Debian/Ubuntu
apt-add-respository コマンドは、apt-get の libstellarsolver-dev に必要です。あるいは、apt-add-repository をスキップし、apt-get から libstellarsolver-dev を削除し、https://github.com/rlancaste/stellarsolver から stellarsolver をビルドしてインストールすることもできます。
sudo apt-add-repository ppa:mutlaqja/ppa sudo apt-get -y install build-essential cmake git libstellarsolver-dev libxisf-dev libeigen3-dev libcfitsio-dev zlib1g-dev libindi-dev extra-cmake-modules libkf5plotting-dev libqt5svg5-dev libkf5xmlgui-dev libkf5kio-dev kinit-dev libkf5newstuff-dev libkf5doctools-dev libkf5notifications-dev qtdeclarative5-dev libkf5crash-dev gettext libnova-dev libgsl-dev libraw-dev libkf5notifyconfig-dev wcslib-dev libqt5websockets5-dev xplanet xplanet-images qt5keychain-dev libsecret-1-dev breeze-icon-theme libqt5datavisualization5-dev
フェドーラ
yum install cfitsio-devel eigen3-devel stellarsolver-devel cmake extra-cmake-modules.noarch xisf-devel kf5-kconfig-devel kf5-kdbusaddons-devel kf5-kdoctools-devel kf5-kguiaddons-devel kf5-ki18n-devel kf5-kiconthemes-devel kf5-kinit-devel kf5-kio-devel kf5-kjobwidgets-devel kf5-knewstuff-devel kf5-kplotting-devel kf5-ktexteditor-devel kf5-kwidgetsaddons-devel kf5-kwindowsystem-devel kf5-kxmlgui-devel libindi-devel libindi-static qt5-qtdeclarative-devel qt5-qtmultimedia-devel qt5-qtdatavis3d-devel qt5-qtsvg-devel wcslib-devel xplanet zlib-devel
コンパイル中
コンソールを開き、次のコマンドを実行します。
mkdir -p ~/Projects/build/kstars cd ~/Projects git clone https://invent.kde.org/education/kstars.git cd build/kstars cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo ~/Projects/kstars make -j16 sudo make install
KStars を実行するには、ターミナルに「kstars」と入力するだけです。
KStars は、Artistic Style を使用してすべての C++ ソース ファイルをフォーマットします。 INDI に送信されるコードには必ず次のスタイル ルールを適用してください。 Linux では、次のルールを含む~/.astylercファイルを作成できます。
--style=allman --align-reference=name --indent-switches --indent-modifiers --indent-classes --pad-oper --indent-col1-comments --lineend=linux --max-code-length=124
一部の IDE (QtCreator など) は、ファイルをディスクに保存するたびにコードの自動フォーマットをサポートします。
Linux では、次のコマンドを実行して必要なプログラムをインストールします。
sudo apt-get install docbook docbook-utils
ハンドブックのソースは kstars/doc にあります。これらのファイルを編集し、C++ ファイルと同様にコミットや MR に含めることができます (以下を参照)。例によってマークアップを理解することも、docbook のオンライン ドキュメントから学ぶこともできます。一般に、最初に kstars/doc ディレクトリ全体を一時ディレクトリにコピーし、そこでハンドブックを編集して生成するのが最善です。メイン ソース ディレクトリで meinproc を実行すると、そこに多数の .html ファイルが生成されるためです。生成されたファイルを git リポジトリにコミットしたくない。
cp -pr kstars/doc ~/DOCBOOK cd ~/DOCBOOK meinproc5 index.docbook
上記により html ファイルが生成されるはずです。次に、ブラウザで DOCBOOK/index.html を開いて必要な部分に移動します。たとえば、Chrome の URL バーに次のような内容を入力します。 file:///home/YOUR_USER_NAME/DOCBOOK/ doc/tool-ekos.html ~/DOCBOOK/*.docbook 内の .docbook ファイルの一部に変更を加えます。 HTML ファイルを再生成し、以前と同様にブラウザーで変更を表示します。繰り返します。
構文を確認するには、次のコマンドを実行するとよいでしょう。
checkXML5 index.docbook
問題がなければ、変更したファイルを kstars/doc にコピーして戻し、編集した/新しいファイルを git で通常どおり扱います。変更したファイルは新しいコミット、最終的には新しいマージ リクエストに含められます。
マージ リクエストの生成方法の技術的な詳細については、以下の「Git ヒント」セクションを参照してください。リクエストを行う過程で、リクエストについて説明する必要があります。これと同様の形式を使用してください。この形式には、実行内容の概要、各ファイルの変更内容、その他の関連メモ、および変更のテスト方法のセクションが含まれています。
KStars に変更を加えるには git に精通している必要がありますが、ここはそのようなチュートリアルを行う場所ではありません。ウェブ上にはそのための優れたリソースがたくさんあります。ただし、以下の段落では、KStar のクローンを作成し、ローカル ブランチを作成し、必要に応じてコードを変更し、ローカル ブランチに変更をコミットする十分な git 経験があることを前提として、マージ リクエストを作成する 1 つの方法の概要を示します。コードを徹底的にテストしてください。
KStars に変更を加えるための fork-branch-git-workflow に関する優れたリソースの 1 つを次に示します。以下の手順はそのページからインスピレーションを得たものです。
ワンタイムの KStars git 環境セットアップ。
KDE ID を作成する
ログイン。 KStars gitlab ページに移動し、右上隅でログインします。
プロジェクトをフォークします。次に、引き続き KStars gitlab ページで、右上隅の [フォーク] をクリックして、プロジェクトの独自のフォークを作成します。
URLをコピーします。フォークの URL をメモします。 https://invent.kde.org/YOUR_KDE_NAME/kstars である必要があります。
KStar のクローンを作成します。コンピュータに戻って次のコマンドを実行します
mkdir -p ~/プロジェクト
cd ~/プロジェクト
git clone https://invent.kde.org/YOUR_KDE_NAME/kstars
CD スターズ
アップストリームを追加します。 KStars メイン リポジトリをフォークされたリポジトリに追加します。
git リモート追加アップストリーム https://invent.kde.org/education/kstars
これでセットアップが完了しました。
各変更に使用されるステップ。 1 回限りのセットアップ (上記) の後、新しい機能の送信ごとに以下の手順を使用できます。要約すると、ローカル リポジトリに機能ブランチを作成し、そこで必要な変更を加えてテストし、フォークにプッシュし、フォークをメインの KStars リポジトリとマージするリクエストを作成し、フィードバックを待ち、場合によっては、当局からの承認を期待して変更する場合。
機能ブランチを作成します。
git checkout -b YOUR_BRANCH_NAME
変更を加える
変更をコミットする
git commit -a
フォークされたリポジトリに変更をプッシュします。
git Push オリジン YOUR_BRANCH_NAME
マージリクエストを作成する
ブラウザを使用して、https://invent.kde.org/YOUR_KDE_NAME/kstars にあるフォークされたリポジトリにアクセスします。
YOUR_BRANCH_NAME のマージ リクエストを作成するオプションが表示されます。詳細を入力します (上記のセクションを参照)。
そのマージ リクエスト専用の新しい URL が表示されるはずです。
いくつかの変更を加えます。コードの一部を変更するようリクエストを受ける場合があります。
その場合は、ローカル ブランチに戻って変更を加えてテストするだけです。
上記のように、ブランチ内で git commit -a を使用して変更をコミットします。
上記のように、 git Pushorigin YOUR_BRANCH_NAME を使用して、ブランチの変更をフォークされたリポジトリにプッシュします。
変更はマージ リクエストに自動的に追加されます。マージリクエストのページを確認してください。
コードをリベースする必要がある場合があります。詳細については、以下を参照してください。
変更をリベースします。あなたが機能に取り組んでいるのと同時に、他の人が KStars に変更を加えている可能性があります。リベースとは、KStars のバージョンと特定の変更を更新して、あたかも最新の KStars バージョンを変更したかのようにすることです。たとえば、独自の KStars コピーを複製または更新した後に行われたコードベースへの変更を反映します。これは Google で調べることができる重要なトピックですが、次の手順はほとんどの場合機能します。
これはマージ リクエストを作成する前に行われ、コードの変更を確認できるのは自分だけであることに注意してください。マージ リクエストを開始すると、コードは「パブリック」になるため、リベースする代わりに、以下のマージ手順に従う必要があります。
cd ~/Projects/kstars git checkout master git pull upstream master # Get the master from the main KStars repo onto your local clone git push origin master # Then push your updated local clone into your forked repo git checkout YOUR_BRANCH_NAME git rebase master git push origin YOUR_BRANCH_NAME -f
リベースに問題がある場合、git は問題を修正する方法を提案します。
他の人の変更をマージします。マージリクエストを送信すると、他の人がコードを表示 (および編集) できるようになります。この時点では、KStars の最新バージョンに更新する必要があるかもしれませんが、リベースすると変更情報が破壊され、他のユーザーが行っている内容が上書きされる可能性があります。代わりに、KStars の現在のバージョンをコードに「マージ」するのが最善です。
cd ~/Projects/kstars git checkout master git pull upstream master # Get the master from the main KStars repo onto your local clone git push origin master # Then push your updated local clone into your forked repo git checkout YOUR_BRANCH_NAME git merge master git push origin YOUR_BRANCH_NAME
rebase セクションとの違いは最後の 2 つのコマンドです。「git rebase master」の代わりに「git merge master」が使用されます。また、「git Push」は -f オプションを使用しません。初めて「git Push」を実行すると、コマンドに「set-upstream Origin」を追加するように git から求められる場合があります。その場合は、その指示に従ってください。
この手順に従うと、ブランチの git ログに新しい「マージ コミット」が追加されていることがわかります。
次の変化。マージ リクエストが完了したら (そして場合によっては KStars に統合されたら)、次に進んで再び開発したいと思うかもしれません。次の変更では別の (新しい) 機能ブランチが使用され、最初の機能ブランチは削除される可能性があります。 Master ブランチを KStars で最新の状態に保つために、次のコマンドを定期的に実行するとよいでしょう。
cd ~/Projects/kstars git checkout master git pull upstream master # Get the master from the main KStars repo onto your local clone git push origin master # Then push your updated local clone into your forked repo
テストはTests
フォルダーに保存され、サポート フレームワークとして QTest を使用します。
ユニタリ テストはauxiliary
、 capture
、 fitsviewer
などにあります。これらは、最小限のクラスのセットの動作を検証しようとし、機能開発をサポートします。
UI テストはkstars_lite_ui
およびkstars_ui
にあります。エンドユーザーがユーザー インターフェイスから実行するのと同じようにユース ケースを実行し、視覚的なフィードバックの可用性と手順の安定性に重点を置きます。
新しい単一テストをTests
内のどこに配置するかを決定します。 KStars クラスは、そのオリジンと一致するフォルダーに存在する必要があります。たとえば、補助クラスのテストは、 auxiliary
に存在します。テスト対象のシステムの部分に基づいて、テストに適した場所を見つけます。例として、 thatkstarscategory
という名前のフォルダーです。
新しい単体テスト クラスを作成するか、既存の単体テストをコピーして新しい単体テストに貼り付けます。例として、 Tests/kstars_ui_tests/kstars_ui_tests.h
を確認してください。 .h
および.cpp
ファイルに「test[小文字の kstars class]」(たとえば、「testthatkstarsclass」) という名前を付け、以下と一致するように更新します。
/* [Author+Licence header] */ #ifndef TESTTHATKSTARSCLASS_H #define TESTTHATKSTARSCLASS_H #include <QtTest> #include <QObject> class TestThatKStarsClass: public QObject { Q_OBJECT public: explicit TestThatKStarsClass(QObject *parent = null); private slots: void initTestCase(); // Will trigger once at beginning void cleanupTestCase(); // Will trigger once at end void init(); // Will trigger before each test void cleanup(); // Will trigger after each test void testThisParticularFunction_data(); // Data fixtures for the test function (Qt 5.9+) void testThisParticularFunction(); // Test function } #endif // TESTTHATKSTARSCLASS_H
/* [Author+Licence header] */ #include "testthatkstarsclass.h" TestThatKStarsClass::TestThatKStarsClass(QObject* parent): QObject(parent) {} TestThatKStarsClass::initTestCase() {} TestThatKStarsClass::cleanupTestCase() {} TestThatKStarsClass::init() {} TestThatKStarsClass::cleanup() {} TestThatKStarsClass::testThisParticularFunction_data() { // If needed, add data fixtures with QTest::AddColumn/QTest::AddRow, each will trigger testThisParticularFunction } TestThatKStarsClass::testThisParticularFunction() { // Write your tests here, eventually using QFETCH to retrieve the current data fixture } QTEST_GUILESS_MAIN(TestThatKStarsClass);
単一のファイルを使用して宣言と定義の両方を保持できますが、宣言と定義の間に#include "testthatkstarsclass.moc"
必要があります。
CMake 構成を更新してテストを追加します。新しいフォルダーを作成した場合は、新しいCMakeLists.txt
を作成してテストを追加します。
ADD_EXECUTABLE( testthatkstarsclass testthatkstarsclass.cpp ) TARGET_LINK_LIBRARIES( testthatkstarsclass ${TEST_LIBRARIES}) ADD_TEST( NAME ThatKStarsClassTest COMMAND testthatkstarsclass )
ファイル システムの 1 つ上のフォルダーにあるCMakeLists.txt
に次の内容を追加して、そのCMakeLists.txt
を含めます。
include_directories( ... ${kstars_SOURCE_DIR}/kstars/path/to/the/folder/of/the/kstars/class/you/are/testing ) ... add_subdirectory(thatkstarscategory)
add_subdirectory
正しい依存関係グループに追加していることを確認してください。たとえば、Ekos テストにはINDI_FOUND
必要です。
テストを作成します。テストの動作を必ず文書化してください。バグを見つけた場合は、修正せずに、 QEXPECT_FAIL
マクロでマークしてください。テストは、バグが存在する間の誤った動作を文書化しますが、バグが修正されると失敗します。その後のみ、テストを更新できます。 Qt ライブラリのバージョンのサポートにも注目してください。たとえば、データ フィクスチャには Qt 5.9 以降が必要です。
単体テストの場合と同じ手順に従いますが、テスト クラスをkstars_ui_tests
で見つけます。
UI テストに関して重要なことの 1 つは、最初は空白の別のユーザー構成で実行されるように、すべてのテストでQStandardPaths::setTestModeEnabled(true)
を使用する必要があることです。したがって、ユーザー インターフェイス テストが正しく機能するためには、新しい構成ウィザードの使用や地理的位置の設定などの事前セットアップが必要です。このため、 TestKStarsStartup
の実行後に、 main()
のTests/kstars_ui_tests/kstars_ui_tests.cpp
にテストの実行を追加する必要があります。
QTest に関して一般的に 2 番目に重要なことは、テスト関数にはリターン コードがないことです。したがって、重複したコードを分解するマクロを作成する必要があります。 kstars_ui_tests
テスト クラスのヘッダー ファイルには、ガジェットを取得したり、ボタンをクリックしたり、 QComboBox
ウィジェットに入力したりするための既存のマクロが多数含まれています。
KStars インターフェイスに関する 3 番目の重要な点は、KDE と Qt UI 要素が混在していることです。したがって、テストでは検証コードをQTimer::singleShot
呼び出しに移動する必要がある場合や、テストを制御 (モーダル ダイアログ) のままにするためにボタンのクリックさえも非同期にする必要がある場合があります。幸いなことに、これらのハッキングによってテストされたコードの実行が変更されることはありません。
テストするときは、エンドユーザーが使用できる要素を常に使用するようにする必要があります。もちろん、実際には対象となる呼び出しの一部ではないセットアップがテストで必要な場合は、直接呼び出しをハッキングする可能性があります。たとえば、Telescope Simulator が特定の場所を指す必要がある一部の Ekos テストではQVERIFY(Ekos::Manager::Instance()->mountModule()->sync(ra,dec))
を使用します。場合によっては、非同期シグナルを送信してキャッチする時間を確保する必要があることに注意してください。
ジェイソン・ハリス [email protected]
ジャセム・ムトラク [email protected]
アカルシュ・シンハ [email protected]
アレクセイ・フジャコフ [email protected]
アルテム・フェドスキン [email protected]
カールステン・ニーハウス [email protected]
クリス・ローランド [email protected]
チャバ・ケルテス [email protected]
エリック・デジューハネット [email protected]
ハリー・ド・ヴァランス [email protected]
ヘイコ・エバーマン [email protected]
こんにちは、マーベイト [email protected]
ジェームス・ボウリン [email protected]
ジェローム・ソンリエ [email protected]
ジョン・エヴァンス [email protected]
ジョセフ・マギー [email protected]
マーク・ホロモン [email protected]
マーティン・ピスケニグ [email protected]
メデリック・ボクアン [email protected]
パブロ・デ・ビセンテ [email protected]
プラカシュ・モハン [email protected]
ラファウ・クワガ [email protected]
リシャブ・アローラ [email protected]
ロバート・ランカスター [email protected]
サミクシャン・バイラーギャ [email protected]
トーマス・カベルマン [email protected]
バレンティン・ベッチャー [email protected]
ビクター・カービューン [email protected]
ヴィンセント・ジャゴ [email protected]
ヴォルフガング・ライセンベルガー [email protected]
ユーリ・チョルノイヴァン [email protected]
カタログ データのほとんどは、NASA が運営する天文データ センターから取得したものです。 ウェブサイトは http://adc.gsfc.nasa.gov/ です。
NGC/IC データは、OpenNGC データベースから Christian Dersch によって編集されました。 https://github.com/mattiaverga/OpenNGC (CC-BY-SA-4.0 ライセンス)
超新星データは、https://sne.space の Open Supernova Catalog プロジェクトからのものです。ここで公開された論文を参照してください: http://adsabs.harvard.edu/abs/2016arXiv160501054G
KStars は、宇宙探査と開発のための学生によってまとめられた優れた画像コレクションと HTML ページへのリンクです (http://www.seds.org)。
KStars は、オンラインのデジタル化された Sky Survey 画像へのリンクであり、http://archive.stsci.edu/cgi-bin/dss_form でクエリできます。
KStars は、HST Heritage プロジェクトおよび HST プレス リリースの画像にリンクしています: http://heritage.stsci.edu http://oposite.stsci.edu/pubinfo/pr.html
KStars は、キット ピーク国立天文台の高度観察者プログラムからの画像にリンクしています。 天体写真に興味がある場合は、そのプログラムをチェックしてみてはいかがでしょうか: http://www.noao.edu/outreach/aop/
プログラムで使用されている各画像のクレジットは README.images に記載されています。
KStarsは愛の結晶です。 これは私の個人的な趣味として始まりましたが、最初にコードを Sourceforge に投稿してからすぐに、他の開発者を惹きつけ始めました。 私は共同開発者たちに完全に感銘を受け、満足しています。 これ以上才能があり、フレンドリーなスタッフは他にいません。言うまでもなく、彼らの努力がなければKStarsは今日の姿には遠く及ばなかったでしょう。 私たちは力を合わせて、皆が誇りに思えるものを作りました。
KStars で使用されるアルゴリズムを作成する際のガイドとして、(主に) 2 冊の本を使用しました。
「電卓を使った実践天文学」ピーター・ダフェット=スミス著
『天文アルゴリズム』ジャン・メーウス著
KStars を可能にしたピアレス API の Qt と KDE の開発者に感謝します。 また、KStar を世界中の視聴者に届けている KDE 翻訳チームのたゆまぬ努力のおかげでもあります。
私の頻繁な質問に答えてくれた KDevelop 掲示板と irc.kde.org の皆さんに感謝します。
バグレポートやその他のフィードバックを送信してくださった多くのユーザーにも感謝します。
まだこれを読んでいますか? :) まあ、それはそれです。 KStarsを楽しんでいただければ幸いです!
ジェイソン・ハリス [email protected]
KStars 開発メーリング リスト [email protected]
アイデアやフィードバックをお寄せください。