天体観測や宇宙データの解析に興味がある方にとって、PythonとAstropyライブラリは最強の組み合わせです。この記事では、Astropyのインストール方法から、実用的な基本機能の使い方までを分かりやすく解説します。天文学初心者からデータサイエンスを目指す方まで必見の内容です!
Astropyとは?Pythonで天文学を扱うための標準ライブラリ
Astropy は、NASAやESAなどの研究者も活用している、Python製の天文学ライブラリです。以下のような天文計算やデータ処理が簡単に行えます。
-
天体座標の変換(赤道座標 ↔ 銀河座標など)
-
ユリウス日やISO形式の時間計算
-
FITSファイルの読み書き
-
単位付きの物理量演算(例:光速×時間)
-
太陽・月・惑星の位置計算
これらの機能を、Pythonコード数行で実現できるのがAstropyの魅力です。
Astropyのインストール方法【pipで簡単導入】
Astropyのインストールは非常に簡単です。Pythonがすでに導入されている環境であれば、以下のコマンドで数十秒でインストールが完了します。
python3 -m pip install astropy
Astropyの基本的な使い方5選【コード例付き】
以下では、Astropyの中でも特によく使う機能を5つ紹介します。
① 物理量(Quantity)の計算と変換
from astropy import units as u distance = 1.5 * u.au # 太陽と地球の平均距離(天文単位) time = 8.3 * u.min # 光が届くまでの時間 speed = distance / time print(speed.to(u.km / u.s)) # 単位変換
② 天体時刻の操作(Time)
from astropy.time import Time t = Time("2025-04-30 12:00:00", scale='utc') print(t.jd) # ユリウス日 print(t.iso) # ISO形式
③ 天体座標の変換(SkyCoord)
from astropy import units as u from astropy.coordinates import SkyCoord coord = SkyCoord(ra=10.684*u.degree, dec=41.269*u.degree, frame='icrs') print(coord.galactic) # 銀河座標に変換
④ FITSファイルの読み込みと表示
from astropy.io import fits import matplotlib.pyplot as plt hdul = fits.open("example.fits") image_data = hdul[0].data hdul.close() plt.imshow(image_data, cmap='gray') plt.colorbar() plt.show()
⑤ 地球と月・太陽の距離を計算
from astropy.coordinates import get_body, solar_system_ephemeris from astropy.time import Time from astropy import units as u t = Time("2025-04-30 12:00:00") with solar_system_ephemeris.set('builtin'): moon = get_body('moon', t) sun = get_body('sun', t) print(moon.cartesian.norm().to(u.km)) print(sun.cartesian.norm().to(u.km))
Astropyが対応するファイル形式と外部ツール
AstropyはFITSファイル(Flexible Image Transport System)に完全対応しており、NASAやJAXAで配布される観測データを直接読み書き可能です。また、以下のような外部ツールとの連携も可能です。
-
DS9:FITS画像ビューア(GUI)
-
Aladin:星図とFITSを統合表示
-
TOPCAT:FITS形式のカタログ解析に特化
Python × Astropyで宇宙を身近に!
Astropyを使えば、天文学の専門的な計算やデータ解析がPythonで誰でも扱えるようになります。研究用途はもちろん、教育や趣味としても最適です。

