0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

astropyでFITSファイルに行を追加したい。

Posted at

前置き

Pythonで天文データ解析をする際に必須のライブラリであるastropy
今回はこれをもちいて天文データフォーマットの標準であるFITSファイルに行を追加する方法の備忘録を兼ねた共有です。

ネットで検索したが難しいという情報が。。
https://stackoverflow.com/questions/68562745/adding-a-row-to-a-fits-table-with-astropy
そんなはずないということで、頑張ってみたらできたので記事にしてみました。

今回はGTIをFITSファイルに追加するという作業を例に扱います。

結論

Tableオブジェクトのadd_row method で追加することが可能です。

詳細

以下のようなFITS ファイルを想定します。

$ ftlist event.evt+2 C
HDU 3

  Col  Name             Format[Units](Range)      Comment
    1 START              1D
    2 STOP               1D

これに[0, 10][11, 15]の範囲のGTIを追加してみます。
読み込み、追加、そして保存までのスクリプトは以下のようになります。

from astopy.table import Table
from astopy.io import fits

def update_gti(hdul, gtis, idx_gti_hdu=2):
    tbl = Table.read(hdul[idx_gti_hdu])
    for gti in gtis:
        tbl.add_row(gti)
    hdul[idx_gti_hdu] = fits.BinTableHDU(tbl)
    return hdul


gtis = [[0, 10], [11, 15]]

hdul = fits.open("event.evt")
hdul_updated = update_gti(hdul, gtis, idx_gti_hdu=2)  # HDU 3 のインデックスは 2
hdul_updated.writeto("new_event.evt")

もちろん公式ドキュメントにあるのですが情報を見つけるのが少し大変でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?