SLLIB + SFITSIO ダイジェスト版 HTML マニュアル

使用頻度の高い API について,主要な内容を記述した, ビギナー向けのリファレンスマニュアルです.

SLLIB クラス: ストリーム / 文字列 / 文字列配列 / 文字列連想配列 / 多次元配列
SLLIB クラス用関数: 多次元配列用の統計用関数 / 多次元配列用の数学関数 / 多次元配列用の複素関数
SLLIB クラス以外: 定数・型の定義 / C99互換の複素数・複素関数
SFITSIO クラス: fitscc / fits_hdu / fits_image / fits_table / fits_table_col / fits_header / fits_header_record
SFITSIO クラス以外: 関数 / 定数・型の定義 / FITSファイルの部分読み出し機能 / FITSテンプレート / 規約外FITS拡張

SFITSIO: FITSファイルの部分読み出し機能

fitsccクラスread_stream() または access_stream() では,次のコードのようにIRAF風の表記により n次元の画像や テーブルの一部分だけを読み出す事が可能です.

    sz = fits.read_stream("image.fits.gz[1:100,*]");

特定のHDUだけを読み取る事も可能で,これにより, 途中から不正なデータが現れるFITSファイルや, 非標準な規約のHDUが追加されているFITSファイルも,その一部分を読み取る事ができます.

この部分読み出し機能では,FITS ファイルの内容すべてをメモリに取り込む事はなく, ディスクのシーケンシャルリードと順方向のシーク(可能な場合)により実現しています. したがって, メモリに載らないような巨大な FITS ファイルでも(圧縮ファイルであっても), 必要な部分を読み出す事ができます.

SFITSIOでは,IRAF/CFITSIOの場合と同様の記法と, SFITSIOで新たに定義した「より論理的な」記法の, 2通りをサポートしています.


IRAF/CFITSIO的な記法

元のFITSファイル中の複数のHDUの中から,1つのHDUを選び, 画像の一部を読み取る指定が可能です.典型的には次のような形です.

    sz = fits.read_stream("image.fits.gz[1][1:100,*]");

この記法による表現は,SFITSIO内部でこの後で解説する SFITSIO公式の記法に変換され,FITSファイルの部分読みが実行されます. 上記の例の場合,ファイル名を含む引数は "image.fits.gz[1[1:100,*]]" と変換されます.

この後で解説しますが,画像の領域指定の部分については, 画像の反転「"[100:1,*]"」「"[-*,*]"」, 0-indexedを示す丸括弧「"(0:99,*)"」も,IRAF/CFITSIO的な記法でも 使う事ができます.


SFITSIO公式の論理的な記法

SFITSIO公式の記法では,より論理的で現代的な表現となっており, 従来できなかった複数のHDUの選択が可能になっています.

文法の一般的解説

使用例