eyecatch thumbnail

Python fits read – Python で fits ファイルを読み込む方法

Profile picture
ルッチ / Lucci
2020.07.30

Contents


はじめに

Python astropy を使った fits ファイルの読み込みについての紹介です。

astropy のインストール

astropy をインストールには、conda もしくは pip でインストールします。

▶ pip install astropy
# or
▶ conda install astropy

サンプルコード全文

本記事で実装したサンプルコードです。

import os
import matplotlib.pyplot as plt
from astropy.io import fits

# --------------------------------------------------
# Define
# --------------------------------------------------
r_dir = "$HOME/Downloads/"
r_file = "lir_20151207_052704_pic_l2c_v10.fit"
ext_number = 1 # extname: LIR-LEVEL2c
color_table = "gist_heat"
min_value = 210
max_value = 235
tick_interval = 5

# --------------------------------------------------
# Main
# --------------------------------------------------
def main():
    # --------------------------------------------------
    # Search file
    # --------------------------------------------------
    f_fits = os.path.expandvars(r_dir + r_file)

    # --------------------------------------------------
    # Read fits
    # --------------------------------------------------
    fits.info(f_fits)
    img_fits = fits.getdata(f_fits, ext=ext_number)
    plt.figure()
    plt.imshow(img_fits, 
            cmap=color_table, 
            vmin=min_value, 
            vmax=max_value)
    plt.colorbar(ticks=range(min_value, 
                            max_value + 1, 
                            tick_interval))
    plt.show()

# --------------------------------------------------
# Run
# --------------------------------------------------
if __name__ == '__main__':
    main()

astropy から fits モジュールをインポートする

from astropy.io import fits

fits ファイルを処理できるモジュールは astropy.io.fits です。 python でモジュールを使うためには import する必要があります。

適当な fits ファイルをダウンロードする

本記事では 金星探査機あかつき に搭載されている中間赤外カメラ LIR が撮像した画像をサンプルとして使います。 lir20151207052704picl2c_v10.fit をダウンロードしてください。 ダウンロードしたら適当なディレクトリに保存してください。

本記事では、$HOME/Downloads/ に保存されていると仮定します。

fits ファイルを読み込む

import os
from astropy.io import fits

r_dir = "$HOME/Downloads/"
r_file = "lir_20151207_052704_pic_l2c_v10.fit"

def main():
    ...
    f_fits = os.path.expandvars(r_dir + r_file)
    img_fits = fits.getdata(f_fits, ext=ext_number)

fits ファイルを読み込むには fits.getdata() メソッドを使います。 詳細な使い方については、astropy 公式ドキュメント をご覧ください。

matplotlib で描画する

    plt.figure()
    plt.imshow(img_fits, 
            cmap=color_table, 
            vmin=min_value, 
            vmax=max_value)
    plt.colorbar(ticks=range(min_value, 
                            max_value + 1, 
                            tick_interval))
    plt.show()

読み込んだ fits データを描画するために、matplotlib ライブラリを使います。

プログラム実行後、次の画像が出力されていれば OK です。

figure-sample-fits-image

おわりに

python で fits ファイルを読み込む方法についての紹介でした。

参考文献は、サンプルコードの中に埋め込んであります。 astropymatplotlib ライブラリの詳しい使い方は、公式ドキュメントをお読みください。

IDL (Interactive Data Language) という解析ツールを使って、研究している方は、この際 python に乗り換えてみてはいかがでしょうか? 仕事の幅が格段に広がると思いますので、ぜひ検討してみてください。

最後まで、お読みいただきありがとうございました。

References

愛用品

  • Xiser Pro Trainer
    1日中踏み続けられる強靭なステッパーでおすすめです.
  • HHKB Professional 墨 x HHKB キートップセット 白
    ボディは墨色キートップは白色なのでめちゃめちゃ目に優しいのでおすすめです.
  • Apple Magic Mouse 2
    トラックパッドは指が攣りそうになりますけどマウスはその心配が無いのでおすすめです.
  • Apple MacMini
    ミニマルでパワフルなデスクトップ PC なので個人的に大好きなのでおすすめです.
  • iiyama Display 27inch FullHD
    鮮明すぎない画面で目も疲れにくいですし何より高さ調節できるのが最高なのでおすすめです.
  • KINTO UNITEA 550ml
    500ml の大容量でこの綺麗なデザインは他にみたことがないのでおすすめです.

関連記事


Python 初学者へのお知らせ

約2時間で Python の基礎を学び、簡単なゲームを作ってみませんか?

そんな方に、Python の基本を実践的に学びたい人向けの講座、【無料】ゼロから始めるPythonプログラミング入門講座(週4開催)をお勧めします。

tech-ad-techgym-python

この講座で、無料でゲーム開発を通してプログラミングの基礎を身につけてみませんか?

少しでも気になった方は、上記のテキストリンクもしくは画像リンクから申し込みお願いします!

Python との楽しい日々をお過ごしください:)

大学生へのお知らせ

ここまで記事を読んでくれて本当に嬉しいです、ありがとうございます。

プログラミングを始めたばかりの頃って「やるぞ!」という気持ちは強めですが、 実際に取り組み始めると「何からどうやってどこまでやればいんだ?」 という感じで羅針盤を失うことが多いような気がします。(実体験)

そんな勉強熱心で向上心高めなんだけど目指す姿が曖昧な大学生の方に感謝の意も込めて、就職活動までサポートするプログラミングスクール「レバテックカレッジ」を紹介します。↓

Levtech-college

「自走力」のあるエンジニアを最短3ヶ月で目指せるカリキュラムが月額30,000円で用意されていて、 現段階の「目指す姿が曖昧で何から手をつければいいかわからない状態」から脱却できます。

自分は実際にIT企業で働いていますが、「自走力」のあるエンジニアの方にはいつも助けられています。

なので、目指す姿が曖昧な人はとりあえずレバテックカレッジが導いてくれる 「自走力のあるエンジニア」を目指してみるのはスタートダッシュとしてはアリです。

レベルアップしてからジョブチェンするのはRPGでも常套手段ですし、 レバテックカレッジで一通りのスキルを習得してから自分の目指す姿を再定義するといいかもです。

「自走力のあるエンジニア」って実際どんなエンジニアなの? 何から手をつければいいかわからないから教えて欲しい、 という人は上のテキストリンク/画像リンクから「無料相談会」への申し込みをお願いします。

よきエンジニアライフを!