まず最初に必要なパッケージを読み込みます。ここでは、関連するastropyのパッケージ以外に、図を作成するためのパッケージである matplotlib、ランダムな数値データを生成するための numpy を読み込みます。
>>> from astropy import units as u >>> from astropy.coordinates import SkyCoord >>> import numpy as np
まず、座標値をランダムに生成し、プロットするためのデータを作成します。RA(赤経)は、0°から360°の間で値を生成し、ra_random という名前で保存します。赤緯(DEC)に関しては、-90°から+90°の間で値を生成し、dec_random という名前で保存します。
>>> ra_random = np.random.rand(100)*360.0 * u.degree >>> dec_random = (np.random.rand(100)*180.0-90.0) * u.degree
次に ra_random、dec_random から、SkyCoordオブジェクトを生成します。
>>> c = SkyCoord(ra=ra_random, dec=dec_random, frame='icrs')
ここで使用する matplotlib という作図パッケージでは、単位として $-\pi$ から $\pi$ の間のラジアンが表記($0$ から $2 \pi$ ではない)が用いられるので、表記を変換する必要があります。この変換は、astropy.coordinate.Angle のラッピング機能を用いて行います。
>>> ra_rad = c.ra.wrap_at(180 * u.deg).radian >>> dec_rad = c.dec.radian
最後に、matplotlibを用いて、エイトフ図法(Aitoff projection)でデータ点をプロットします。ここでは、タイトルを図の上に置き、座標を表すグリッドを加えます。データ点はサイズ2の塗りつぶした丸とします。(他にも細部の設定は、matplotlib のテキストを参照のこと。)
>>> import matplotlib.pyplot as plt >>> plt.figure(figsize=(8,4.2)) >>> plt.subplot(111, projection="aitoff") >>> plt.title("Aitoff projection of our random data") >>> plt.grid(True) >>> plt.plot(ra_rad, dec_rad, 'o', markersize=2, alpha=0.3) >>> plt.subplots_adjust(top=0.95,bottom=0.0) >>> plt.show()
![]() |
出来上がり図 |