桜が見頃になってきましたね!
ついこの間咲き始めたと思ったら、いつの間にやらもう満開。季節の巡りは早いものです。
今回は天体観測をします。
春の夜には早々と消えていきますが...
私の大好きなオリオン座の星雲を観てみます。
赤外線天文衛星「あかり」などの望遠鏡によって撮影された写真をいじってみたり - Qiita
こちらの記事を参考にさせていただきました。ありがとうございました。
Astroqueryというモジュールを使うことで、SkyViewの天文写真をPythonで取得することができます。望遠鏡を覗き込まずに、プログラムから天体観測ができるなんてとても素敵です。
では、いってみましょう。
1. モジュールのインポート
import numpy as np #数値計算用 import matplotlib.pyplot as plt #描画用 from astroquery.skyview import SkyView #天文写真取得用 from astropy import units as u #取得範囲設定用 from astropy.wcs import WCS #天球座標変換用 from astropy.visualization import ZScaleInterval,ImageNormalize #画像補正用
astropyは天文データ解析用のパッケージです。
2. 設定値
target = 'M42' #オリオン大星雲 survey = ['2MASS-K','2MASS-H','2MASS-J'] #近赤外線波長域での天文観測プロジェクト radius = 30*u.arcmin #取得する写真の範囲 pixels = 600 #取得する写真の大きさ figsize = [6,6] #画像表示エリアのサイズ
オリオン座の散光星雲を取得する場合は、targetに「NGC 2024」を設定します。
3. 天文写真取得
hdu = SkyView.get_images(target,survey=survey,radius=radius,pixels=pixels) #天文写真を取得 wcs = WCS(hdu[0][0].header) #WCS座標を取得 plt.figure(figsize=figsize).gca(projection=wcs,title=target) #取得した座標をプロットする plt.imshow(np.stack([ImageNormalize(hdu[i][0].data,interval=ZScaleInterval())(hdu[i][0].data) for i in range(3)], axis=2)) #強調化・合成して画像を表示 plt.savefig(target + '.jpg') #画像保存 plt.close() #クローズ
天体の天球上の位置は、WCS座標で表すことができます。
4. 結果
感動です。