Install

tar cfitsio3030.tar.gz
mv cfitsio cfitsio3030_00
cd cfitsio3030_00
mkdir -p /home/usrname/opt/pkgs/cfitsio3030
./configure --prefix=/home/usrname/opt/pkgs/cfitsio3030
make
make testprog
./testprog > testprog.lis
diff testprog.lis testprog.out
cmp testprog.fit testprog.std
make install
ln -s /home/usrname/opt/pkgs/cfitsio3030 /home/usrname/opt/cfitsio

用語

HDU

Header Data Unit

CHDU

Current Header Data Unit

CHU

Current Header Unit

コンパイル

gcc -o hoge hoge.c -lcfitsio -lm -lnsl

FITSファイルのオープン

fits_open( fitsfile **fptr, char *filename, int iomode, int *status);

FITSファイルのヘッダー部分に書かれているキーワードを読む

fits_read_keys_lng( fitsfile **fptr, char *keyname, int nstart, int nkeys, DTYPE *numval, int *nfound, int *status);

二つ目の引数 keyname で指定された文字列を含むキーワードの値が取り出される。 該当するキーワードのうち、nstart番目からnkeys個のキーワードが配列 numvalに代入される。 numvalは適切な型である必要がある。 nfoundには該当するキーワードの数が代入されて返される。

FITSデータを読み込む

fits_read_2d_dbl( fitsfile **fptr, long group, DTYPE nulval, long dim1, long naxis1, long naxis2, DTYPE array, int *anynul, int *status);

groupは複雑なFITSファイルを扱う場合には必要になってくるかもしれないが、 とりあえずは 0 をいれておけば問題ない。 nulvalは未定義のピクセルの値を置き換えるために使う。 データは配列 array に格納されるが、 その配列の最初の次元の長さをdim1で指定する。 FITSデータの大きさは naxis1 と naxis2 で指定する。

FITSファイルのクローズ

fits_close_file( fitsfile fptr, int *status) ;

FITSファイルの書き出し

fits_create_file( fitsfile **fptr, char *filename, int *status);
fits_create_img( fitsfile *fptr, int bitpix, int naxis, long *naxes, int *status);
fits_create_2d_dbl( fitsfile *fptr, long group, DTYPE nulval, long dim1, long naxis1, long naxis2, DTYPE *array, int *anynul, int *status) ;

bitpixには

BYTE_IMG8unsigned char
SHORT_IMG16signed short integer
LONG_IMG32signed long integer
FLOAT_IMG-32float
DOUBLE_IMG-64double

を指定。 naxisにはデータの次元を、配列 naxes には各次元の長さを指定。