FITS ファイルの構造

FITS は上記のとおり単なる画像フォーマットではない。 天文分野では科学的データセットの運搬、解析、アーカイヴ(蓄積)等、あらゆる場面でFITS ファイルが使われる。

といった例があげられる。



単純なFITS ファイルの構造は ASCII テキストで書かれたヘッダとバイナリの(通常は多次元の)データ配列からできている。 現在ではこの「基本」 FITS 要素(Basic FITS 要素)1に加えて同じデータ格納構造 (ヘッダ+データ) を持つ拡張された他の FITS 要素が付け加わってもよいことになっている(FITS 要素は HDU(Header Data Unit) とも呼ばれる、第II部参照)。 模式図で表すと次のようになる。


\includegraphics[width=0.9\textwidth, keepaspectratio]{f_struct}


多くのFITS ファイルは1つのヘッダと1つのデータ配列を持つファイルだが、もっと複雑なデータを詰め込むこともでき、実際、最新の大型観測装置が吐き出すデータにはそのようなものも見られるようになっている。

FITS ファイルの構成をもう少し詳しく見ていくと、

  ・(基本) FITS 要素   (HDU 0)
  ・(拡張) FITS 要素 1 (HDU 1)
  ・(拡張) FITS 要素 2 (HDU 2)
       ・・・

のように(ヘッダ+データ)のFITS 要素が連なっており、いずれの FITS 要素(HDU)も整数個のFITS ブロックからなる。FITS ブロックのサイズは 2880 バイト (23040 ビット=最初の策定時のあらゆる計算機のワード長の最小公倍数、第II部参照) である。

1 つの FITS 要素(HDU)は大きく 2 つの部分に分けられる。

前半部のヘッダは 1つ以上のFITS ブロックからなり、データの目的、種類、構造、バイト数、レコード数などのデータに関する解説部分となっている。 1 行が 80 文字2からなるキーワードレコードの連なりで、整数個のFITS ブロックに収められる (1つのFITS ブロックには 2880/80=36 行が収まるので、ヘッダが 36 行を越える時は複数個のFITS ブロックが必要となる。 また、ヘッダが 1 FITS ブロックに満たない場合は空白行で埋められちょうど整数個のFITS ブロックとされる)。 1 つの行の各欄の使い方や用語には一定の規約がある (次の 1.2 節参照)。

後半部のデータ(データ配列)は 1つ以上のFITS ブロックからなり、ヘッダの直後のFITS ブロックから実際のデータが書きこまれる。

すなわち、1 つの FITS 要素(HDU)の構造は

 ・ヘッダ ヘッダ1 (80 バイト・キーワードレコード)
  (2880 バイト   ヘッダ2 (80 バイト・キーワードレコード)
    × n (整数)) ヘッダ3 (80 バイト・キーワードレコード)
           ヘッダ4 (80 バイト・キーワードレコード)
                ・・・
 ・データ データ(バイナリ or アスキー)
  (2880 バイト     ・
   × n (整数))     ・

のようになっている。




Osamu Kanamitsu
2019-02-15