Astroterm: ターミナル用のプラネタリウム
Astroterm: A Planetarium for Your Terminal (github.com)
要約
Astrotermは、C言語で書かれたターミナルベースの星図アプリケーションです。日付、時刻、場所を設定することで、リアルタイムの星、惑星、星座などの位置をASCIIアートで精密に表示します。Arch Linux、Fedora、Homebrew、Nix、Guixなどの主要なパッケージマネージャーからインストール可能で、ビルド済みの実行ファイルも提供されています。
全文翻訳
🌌 astroterm
[画像: Test Status] [画像: codecov] [画像: Latest release] [画像: License: MIT]
astrotermは、Cで書かれたターミナルベースの星図です。望遠鏡なしで、ターミナル内で星、惑星、星座などのリアルタイムの位置を表示します。日付、時刻、場所で空の表示を設定でき、正確なASCIIレンダリングによる視覚化が可能です。サポートされているすべてのオプションについては、使用法を参照してください!
astrotermは常に改善されており、皆様からのアイデアをお待ちしています!提案がある場合やバグを見つけた場合は、イシューを開いてフィードバックをお寄せください。astrotermのビルド、テスト、貢献に関するガイドラインについては、CONTRIBUTING.mdを参照してください。
2025年1月2日のシンガポール上空の夜空
この表示を得る方法については、使用法を参照してください
目次
機能
- 🔭 高度にカスタマイズ可能: 日付、時刻、場所を選択して、過去、現在、または未来の天体イベントを探索できます
- 📐 正確なレンダリング: ターミナルグラフィックスで可能な限り精密に、月、星、惑星を表示します
- 🌘 月の満ち欠け: リアルタイムで正確な月の満ち欠けを表示します
- 🌌 星座の図: 詳細な星座の形状を表示します
- ⚡ パフォーマンス最適化: 軽量で高速なASCIIレンダリング
2025年1月6日のオーストラリア、シドニー上空の星々
インストール
プラットフォームに応じて、いくつかのインストール方法が提供されています。これらのいずれもニーズに合わない場合は、いつでもソースからビルドできます。問題の解決に役立つトラブルシューティングを参照してください。
Arch Linux
pacmanを使用して、extraリポジトリからastrotermをインストールできます。
pacman -S astroterm
Fedora
Fedora 40以降では、Fedoraパッケージリポジトリから直接astrotermをインストールできます。
sudo dnf install astroterm
Homebrew
Homebrewから以下のコマンドでastrotermをインストールできます。
brew install astroterm
Nix
以下のコマンドで一時的な環境でパッケージを試すことができます。
nix-shell -I nixpkgs=channel:nixpkgs-unstable -p astroterm --command astroterm
引数フラグは、コマンドを引用符で囲むことで追加できます。例:
nix-shell -I nixpkgs=channel:nixpkgs-unstable -p astroterm --command "astroterm -u -c"
astrotermを$PATHから利用可能にするには、configuration.nixに追加します。
environment.systemPackages = with pkgs; [
...
astroterm
]
Guix
Guixメインチャネルから直接astrotermをインストールできます(このコミット以降)。
guix time-machine --commit=4b5f0408e66392ab745dc0f7830732217d88f17d -- shell astroterm
またはguix pullの後:
guix shell astroterm -- astroterm --help # 試す場合
guix package --install astroterm # 現在のプロファイルに追加
事前ビルド済み実行ファイル
Unix
-
wgetを使用して最新の実行ファイルをダウンロードしますwget -O astroterm "https://github.com/da-luce/astroterm/releases/latest/download/astroterm-<os>-<arch>"<os>を適切なプラットフォームに置き換えてください:- Linux:
linux - macOS:
darwin
- Linux:
<arch>を適切なアーキテクチャに置き換えてください:- Linux:
x86_64(Ubuntu arm64ランナーが利用可能になった後にarm64サポートが追加される予定です) - Apple Silicon (Mシリーズ):
aarch64 - IntelベースのMac:
x86_64
- Linux:
- サポートされているすべての組み合わせを表示するには、リリースページを参照してください。
-
実行可能ファイルを実行します
chmod +x ./astroterm ./astroterm
Windows
-
PowerShellの
Invoke-WebRequestを使用して最新の.exeファイルをダウンロードします:Invoke-WebRequest -Uri "https://github.com/da-luce/astroterm/releases/latest/download/astroterm-win-x86_64.exe" -OutFile "astroterm.exe" -
.exeを実行します.
itroterm.exe
```
ソースからのビルド
使用法
オプション
--helpフラグは、サポートされているすべてのオプションを表示します。
Usage: astroterm [OPTION]...
-a, --latitude=<degrees> 観測者の緯度 [-90°, 90°] (デフォルト: 0.0)
-o, --longitude=<degrees> 観測者の経度 [-180°, 180°] (デフォルト: 0.0)
-d, --datetime=<yyyy-mm-ddThh:mm:ss>
観測日時 (UTC)
-t, --threshold=<float> この等級より明るい星のみをレンダリングします
(デフォルト: 5.0)
-l, --label-thresh=<float>
この等級より明るい星にラベルを付けます (デフォルト:
0.25)
-f, --fps=<int> フレームレート (デフォルト: 24)
-s, --speed=<float> アニメーション速度倍率 (デフォルト: 1.0)
-c, --color ターミナルカラーを有効にします
-C, --constellations 星座の線を描画します。注: 図形を構成するすべての星が
閾値を超えている場合にのみ星座が描画されます
-g, --grid 方位グリッドを描画します
-u, --unicode Unicode文字を使用します
-b, --braille 星座の線にブライユ文字を使用します (Unicodeが必要です)
-q, --quit-on-any 任意のキー入力で終了します (デフォルトは'q'または
'ESC'のみで終了)
-m, --metadata メタデータを表示します
-r, --aspect-ratio=<float>
計算されたターミナルセルのアスペクト比を上書きします。
投影が「正方形」でない場合に使用します。約2.0の値は
ほとんどの場合うまく機能します
-h, --help このヘルプメッセージを表示します
-B, --bash-completions bash補完を表示します
-i, --city=<city_name> 指定された都市の緯度と経度を使用します。
名前に複数の単語が含まれる場合は、名前を単一または二重引用符で囲んでください。利用可能な都市のリストについては、以下を参照してください:
https://github.com/da-luce/astroterm/blob/main/data/
cities.csv
-v, --version バージョン情報を表示して終了します
シェル補完
Bashでタブ補完を有効にするには、~/.bashrcに以下の行を追加します。
source <(astroterm --bash-completions)
例1
README GIFに示されている「回転する地球」効果を得るには、次のフラグを使用します。
astroterm --color --constellations --speed 10000 --fps 64 --city Singapore
または、短く
astroterm -cC -s 10000 -f 64 -i Singapore
実際、赤道付近の都市であればどれでも機能します。極に近い場所では、星の見える動きが空を横切るのではなく天の極を中心に円を描くため、見た目が異なります。
例2
1969年7月16日の朝、アポロ11号打ち上げの朝、フロリダ州ケネディ宇宙センターでの空を午前5時(東部標準時)に見たいとします。次のように実行します。
astroterm --latitude 28.573469 --longitude -80.651070 --datetime 1969-7-16T8:00:00
正確な座標を見つけるのは面倒な場合があるため、最寄りの大都市を使用して同様の結果を得ることもできます。
astroterm --city Orlando --datetime 1969-7-16T8:00:00 -m
まだタイムマシンが発明されるのを待っている間、Stellariumを使用して、これが現実に合致するかどうかを確認することで少しごまかすことができます。
次に星座を表示して色を追加したい場合は、--constellations --colorオプションを追加します。
現在の時刻を表示したいだけであれば、--datetimeオプションを指定しないでください。astrotermはシステム時刻を使用します。現在地を表示するには、--latおよび--longオプションを指定するか、--cityオプションで最寄りの都市を指定する必要があります。
その他のオプションやヘルプについては、astroterm -hまたはastroterm --helpを実行してください。
ヒント
LatLongのようなツールを使用して、緯度と経度を取得してください。
ヒント
星の等級は、見かけの明るさが増すにつれて減少します。つまり、より多くの星を表示するには、閾値を上げてください。
トラブルシューティング
Curl経由でのリリースダウンロードに失敗する
何らかの理由で、curlは最新リリースのリダイレクトを追跡しません。最新リリースをダウンロードするにはwgetを使用するか、curlでリンク内のタグをハードコードしてください。または、リリースページからダウンロードしてください。
LinuxでのUnicodeの破損
ターミナルでUnicode文字が正しく表示されない場合は、システムのロケールをUnicodeをサポートするように設定する必要がある場合があります。
- ロケールを一時的に設定します(永続的に強制するには、これを
~/.bashrcまたは同等のものに追加します)。
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
- ロケールをインストールして設定します(Ubuntu/Debianの例)。
sudo apt update
sudo apt install -y locales
sudo dpkg-reconfigure locales
設定中に、en_US.UTF-8をデフォルトのロケールとして選択します。
引用
このプロジェクトの開発に不可欠であった以下のリソースに多大な感謝を捧げます。
- Map Projections-A Working Manual by John P. Snyder
- Wikipedia
- Atractor
- Jon Voisey's Blog: Following Kepler
- Celestial Programming: Greg Miller's Astronomy Programming Page
- Practical Astronomy with your Calculator by Peter Duffett-Smith
- NASA Jet Propulsion Laboratory
- Paul Schlyter's "How to compute planetary positions"
- Dan Smith's "Meeus Solar Position Calculations"
- Bryan Weber's "Orbital Mechanics Notes"
- ASCOM
- A Fast Bresenham Type Algorithm For Drawing Ellipses
データソース
- 星: Yale Bright Star Catalog
- 星の名前: IAU Star Names
- 星座の図: Stellarium ( HipparchusからBSC5インデックスへの変換、HYG Databaseを使用 — convert_constellations.pyを参照)
- 都市: GeoNames ( filter_cities.pyを使用してフィルタリングおよび凝縮)
- 惑星の軌道要素: NASA Jet Propulsion Laboratory
- 惑星の等級: Computing Apparent Planetary Magnitudes for The Astronomical Almanac