使用頻度の高い 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拡張 |
fits_header_recordクラスは,1つのヘッダレコードを表現します. fitsccクラス または fits_headerクラス のメンバ関数でファイルから読み込まれた場合, CONTINUE キーワードが使われた長い文字列は1つに結合され, 1つのfits_header_recordオブジェクト内に格納されます.
クラス | ヘッダファイル | コード | namespace |
---|---|---|---|
fits_header_record | #include <sli/fits_header_record.h> |
cc | sli |
SFITSIO に搭載されているヘッダのコメント辞書については, fits_header_record.cc の最初の部分をご覧ください.
メンバ関数 | 機能 |
---|---|
init() | オブジェクトの初期化・コピー |
reformat() | 80文字レコードの再フォーマットを行なう |
formatted_string() | フォーマット済み文字列(80×n文字)を取得 |
formatted_length() | フォーマット済み文字列(80×n文字)の長さを取得 |
メンバ関数 | 機能 |
---|---|
status() | ヘッダレコードの形式を取得 |
type() | ヘッダレコードの値のデータ型を取得 |
dvalue() | 値を double 型で取得 |
lvalue(), llvalue() | 値を long 型 または long long 型で取得 |
bvalue() | 値を bool 型で取得 |
svalue() | 値を文字列で取得 (両端の「' 」と空白は除去) |
get_svalue() | プログラマのバッファに値を文字列で取得 (両端の「' 」と空白は除去) |
svalue_length() | 文字列値の長さ取得 (両端の「' 」と空白は除去) |
assign(), assignf() | 文字列,整数値,実数値,真理値で値を設定 |
assign_system_time() | 現在の UTC 時刻を「yyyy-mm-ddThh:mm:ss 」の形式で値に設定 |
keyword() | キーワード文字列を取得 |
get_keyword() | プログラマのバッファにキーワード文字列を取得 |
keyword_length() | キーワード文字列の長さを取得 |
comment() | コメント文字列を取得 |
get_comment() | プログラマのバッファにコメント文字列を取得 |
comment_length() | コメント文字列の長さを取得 |
assign_comment(), assignf_comment() | コメント文字列を設定 |
assign_default_comment() | コメント辞書に存在するコメント文字列を自身のレコードに設定 |
value() | 値文字列を取得 (低レベル) |
get_value() | プログラマのバッファに値文字列を取得 (低レベル) |
value_length() | 値文字列の長さを取得 (低レベル) |
assign() | オブジェクトの内容の更新 (低レベル) |
assign_value(), assignf_value() | 値を設定 (低レベル) |
raw_record() | ヘッダレコードを保持している内部構造体の参照を返す (低レベル・読取専用) |
fits_header_record &init(); fits_header_record &init( const fits_header_record &obj );
オブジェクトの初期化,またはコピーを行ないます.
fits_header_record &reformat();
オブジェクト内で現在保持している 80文字(×n)のフォーマット済み文字列を,現在のキーワード,値, コメントの内容から作りなおします.
const char *formatted_string() const;
オブジェクト内で生成された,
フォーマット済み文字列(80×n文字)を返します.
改行文字は含まれず,文字列は
'\0'
で終端しています.
size_t formatted_length() const;
オブジェクト内で生成された,
フォーマット済み文字列(80×n文字)の長さを返します.
この長さには,文字列の終端文字
'\0'
は含みません.
int status() const;
ヘッダレコードの形式(状態)を返します.
通常の形式(A = B
の形式)か,
記述形式(COMMENT
やHISTORY
などの記述)か,
NULL
形式(キーワードも値も無い状態)かどうかを調べ,
それぞれFITS::NORMAL_RECORD
,
FITS::DESCRIPTION_RECORD
,
FITS::NULL_RECORD
を返します.
int type() const;
ヘッダレコードが持つ文字列値の データ型 (どのデータ型に解釈できるかを) を調べます.
実数ならFITS::DOUBLE_T
が,
整数ならFITS::LONGLONG_T
が,
複素数ならFITS::DOUBLECOMPLEX_T
論理値ならFITS::BOOL_T
が,
それ以外ならFITS::STRING_T
が返ります.
double dvalue() const;
ヘッダレコードの文字列値を 実数値に変換して返します.
long lvalue() const; long long llvalue() const;
ヘッダレコードの文字列値を 整数値に変換して返します.
bool bvalue() const;
ヘッダレコードの文字列値を論理値に変換して返します.
const char *svalue() const;
ヘッダレコードの文字列値を,文字列をかこむシングルクォーテーション
('
)や余分な空白文字を取り除いてから返します.
返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, このメンバ関数が次に呼ばれた場合は無効になります.
ssize_t get_svalue( char *dest_buf, size_t buf_size ) const;
指定されたヘッダレコードの
文字列の値を,文字列をかこむシングルクォーテーション
('
)や余分な空白文字を取り除いてから,
dest_buf
へコピーします.dest_buf
のバッファサイズは
buf_size
で指定します.
このメンバ関数は,バッファのサイズが十分ではない場合でも,
必ず
'\0'
で終端します.
'\0'
は含まない)size_t svalue_length() const;
文字列値の長さを返します.
ヘッダレコードの値が文字列値である場合, 両端のシングルクォートと空白は除去した長さを返します.
fits_header_record &assign( const char *str ); ... 1 fits_header_record &assignf( const char *str_format, ... ); ... 2 fits_header_record &assign( bool tf ); ... 3 fits_header_record &assign( int val ); ... 4 fits_header_record &assign( long val ); ... 5 fits_header_record &assign( long long val ); ... 6 fits_header_record &assign( double val, int prec = 15 ); ... 7 fits_header_record &assign( float val, int prec = 6 ); ... 8
ヘッダの値に,引数で与えられた 文字列値(メンバ関数1,2), 論理値(メンバ関数3), 整数値(メンバ関数4〜6), 実数値(メンバ関数7,8) をセットします. これらは高レベルメンバ関数なので,メンバ関数1,2では文字列値には フォーマット時に付加される文字列両端のシングルクォートを含めないでください.
メンバ関数2の
str_format
以降の引数は,libcの
printf()
のそれと同様に指定します.
値に文字列長の制限はありません (複数レコードにまたがる長いヘッダ値を参照). ヘッダレコードが80文字以内に収まらない場合でも, それぞれ適切な方法でファイルに保存されます.
fits_header_record &assign_system_time();
現在の日付時刻(UTC)を
「yyyy-mm-ddThh:mm:ss
」
の形式で値にセットします.
const char *keyword() const;
ヘッダレコードのキーワード名を返します.
返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, ヘッダレコードが変更された場合は無効になります.
ssize_t get_keyword( char *dest_buf, size_t buf_size ) const;
ヘッダレコードのキーワード名を
dest_buf
によって示されたバッファへコピーします.
dest_buf
のバッファサイズは
buf_size
で指定します.
このメンバ関数は,
バッファのサイズが十分ではない場合でも,必ず
'\0'
で終端します.
'\0'
は含まない)size_t keyword_length() const;
キーワード文字列の長さを返します.
const char *comment() const;
コメント文字列を返します.
返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, ヘッダレコードが変更された場合は無効になります.
ssize_t get_comment( char *dest_buf, size_t buf_size ) const;
コメント文を
dest_buf
で示されたバッファへコピーします.
dest_buf
のバッファサイズは
buf_size
で指定します.
このメンバ関数は,
バッファのサイズが十分ではない場合でも,必ず
'\0'
で終端します.
size_t comment_length() const;
コメント文字列の長さを返します.
fits_header_record &assign_comment( const char *str ); fits_header_record &assignf_comment( const char *str_format, ... );
ヘッダレコードのコメントに, 引数で与えられた文字列をセットします.
str_format
以降の引数は,libcの
printf()
のそれと同様に指定します.
fits_header_record &assign_default_comment( int hdutype = FITS::ANY_HDU );
自身のキーワードがコメント辞書に存在する場合, コメント辞書にあるコメント文字列を自身のレコードに書き込みます.
SFITSIO に搭載されているヘッダのコメント辞書については, fits_header_record.cc の最初の部分をご覧ください.
const char *value() const;
ヘッダレコードの生の値を返します.
文字列をかこむシングルクォーテーション
('
)や余分な空白文字を取り除いた値が必要な場合は,
svalue()
メンバ関数を使います.
返される値はオブジェクト内部バッファのアドレスですから, オブジェクトが破棄されたり, ヘッダレコードが変更された場合は無効になります.
ssize_t get_value( char *dest_buf, size_t buf_size ) const;
ヘッダレコードの生の値を
dest_buf
で示されたバッファへコピーします.
dest_buf
のバッファサイズは
buf_size
で指定します.
文字列をかこむシングルクォーテーション
('
)や余分な空白文字を取り除いた値が必要な場合は,
get_svalue()
を使います.
このメンバ関数は,
バッファのサイズが十分ではない場合でも,必ず
'\0'
で終端します.
'\0'
は含まない)size_t value_length() const;
生の値文字列の長さを返します. 文字列値の場合,両端のシングルクォートを含んだ長さです.
fits_header_record &assign( const fits::header_def &def ); fits_header_record &assign( const fits_header_record &obj ); fits_header_record &assign( const char *keyword, const char *value, const char *comment ); fits_header_record &assign( const char *keyword, const char *description );
オブジェクトの内容の更新するための低レベルメンバ関数です.
fits::header_def
の定義については,
ヘッダレコードを定義するための型(構造体)
または
fits.h
をご覧ください.
fits_header_record &assign_value( const char *str ); fits_header_record &assignf_value( const char *str_format, ... );
値を設定するための低レベルメンバ関数です.
文字列値の場合, フォーマット時に付加される両端のシングルクォートを含んだ文字列を設定します.
const fits::header_def &raw_record() const;
ヘッダレコードを保持している内部構造体の参照(読み取り専用)を返します.
fits::header_def
の定義については,
ヘッダレコードを定義するための型(構造体)
または
fits.h
をご覧ください.