どせいたんさき。

ナスダヨー

Octave で普通に FITS ファイルが読めた件

天文学において"データ"と言えばいわゆる写真(画像)になるわけですが,様々な情報(観測日時,観測装置,方角,etc...)を保存する都合上ちょっと変わった形式の画像データで保存されます.それが FITS (Flexible Image Transport System) ファイル形式と呼ばれるものです.FITS ファイルは最初にあるヘッダ領域と呼ばれる部分に観測パラメタなどもろもろの情報を書き込み,そのうしろに画像データが書き込まれるといった形式をとっています.最近ではより拡張された形式も用いられ, 1 つのファイルに画像が複数含まれていることもしばしばです.画像データではなくて数値データの表を組み込むこともできるそうです(使ったことありませんが).

そんなわけで,FITS ファイルを読み出すためのプログラムをフルスクラッチで作ろうとすると,かなり大変なことになります.そこで, cfitsio などのライブラリを用いてデータを読み出すことになります.


さて,自分がデータ解析によくもちいている Octave ですが,簡単な FITS ファイルなら読み書きできるパッケージが公開されていました.これを見つける前は『C 言語で書いたプログラムで画像データをアスキーファイルで出力 & Octave で読み込み』といったまわりくどい事をしていたのですが,その手間を省くことができそうです.

ダウンロード元は Octave の各種パッケージがまとめてある Octave-Forge です.ここで上部メニューから Packages をクリック.お目当てのパッケージ(今回は fits)をダウンロードし適当なフォルダに保存します.ダウンロードしたアーカイブファイル(.tar.gz)を解答する必要はありません.

その後はパッケージのインストールです. Octave を管理者権限で起動し次のコマンドを入力します.

pkg install fits-xxx.tar.gz  # xxx の部分にはバージョンを正しく入れてください 

これでパッケージのインストールは完了です.使用する際には,

pkg load fits

と入力することでパッケージをロードすることができます.


fits パッケージで利用できる関数は以下の 3 つです.Ubuntu 10.04 で動作を確認.詳しくは help を参照.

function description
[IMG,HDR] = read_fits_image(FILENAME,HDU) FITS ファイルのロード
save_fits_image(FILENAME,IMG,BIT) FITS ファイルのセーブ
save_fits_image_multi_ext(FILENAME,IMG,BIT) 拡張 FITS ファイルのセーブ