【天文画像解析】pythonでfitsファイルを開く

最近使い始めたpython。一年前は、fitsファイルの開き方が分からなくて挫折したのでメモしとく。
間違えているところ、もっと簡単なやり方などがあったらこっそり教えてください。

状況

/home/sfr/ngc4303というディレクトリにNGC4303を観測したspitzerとかCOとかのデータを突っ込んでいて、たくさんあるfitsファイルの中からGALEX FUV(*fd-int.fitsという名前のファイル、このディレクトリの中にはfd-int.fitsがつくファイルは1つだけという状況)のデータをpythonで読み込みたい場合。

コード

import os as os #「as os」が必要なのかどうかは謎。-->いらない(2018/01/09)
from glob import glob
from astropy.io import fits
import matplotlib.pyplot as plt #おまけで必要
from astropy.visualization import astropy_mpl_style #おまけで必要


data_dir=/home/sfr/ngc4303/ 
fuv_path=os.path.join(data_dir,'*fd-int.fits')

 #「data_dir,'*fd-int.fits'」 の代わりに「'/home/sfr/ngc4303/*fd-int.fits'」とか「'/home/sfr/ngc4303/ngc4303-fd-int.fits'」(fitsファイルの名前がngc4303-fd-int.fitsの場合)にしてもいい。
 #天体によってコードの色んな所を書き換えなきゃいけないのがめんどくさいから、data_dirだけ書き換えればいいようにしています。

fuv_file=glob(fuv_path)
fuv_file.sort()
fuv=fits.open(fuv_file[0]) #赤字部分追記あり
fuv_img=fuv[0].data #こっちが画像
fuv_hdr=fuv[0].header #こっちがヘッダー

#追記20180822
#開きたいファイル(ex. ngc4303-fd-int.fits)が決まっているときには
fuv=fits.open(data_dir+'ngc4303-fd-int.fits')
#だけで開けます。

おまけ

#ヘッダーを表示
print(fuv_hdr)

#画像を表示
plt.style.use(astropy_mpl_style)
plt.figure()
plt.imshow(mp1,cmap='gray')
plt.colorbar()
plt.show()

コメント

  1. as osは要らないと思います。

    返信削除
    返信
    1. やはりそうですよね。
      ありがとうございます。

      削除

コメントを投稿

このブログの人気の投稿

TypeError: ufunc 'bitwise_xor' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

overleafで画像が表示されない!

エラー: ""C:\U" で始まる文字列の中で 8 進文字なしに '\U' が使われています