• Tidak ada hasil yang ditemukan

Binary Table Extension (Standard extension 3)

Dalam dokumen FITS の手引き (Halaman 66-70)

5.8. Binary Table Extension (Standard extension 3)

5.8.2 Binary Table Extension

のヘッダ 要求されるキーワードは

XTENSION Binary Table

に対しては

’BINTABLE’

である。

BITPIX Binary Table

では

8

である。

NAXIS Binary Table

では

2

NAXIS1

各々の

(8

ビット

)

バイト数。

NAXIS2

表の中の行の数。

PCOUNT

表の正規の部分に続くヒープと呼ばれる部分のバイト数。

GCOUNT Binary Table

に対しては

1

である。

TFIELDS

表中のフィールド

(

)

の数。

TFORMn n

フィールドのサイズとデータタイプを与える。

1

から

TFIELDS

の値までの範囲 をとる。

TFORMn

r Ta

の形式をとり、繰り返し回数

r

はフィールド

n

の要素数を 表す非負の整数

(

通常は

1

で省略可

)

T

はフィールド

n

のデータタイプ、

a

は文字 列配列を定義する場合の

1

要素あたりの文字列長。

(t

e

maxは後述の可変長配列で 使う。

)

データタイプとして許されるのは次の表

10

のとおり。

TFORMn

の値 意味

8-bit

バイト数

r L

論理値

(’F’

または

’T’) 1 × r

r X

ビット

[(r 1)/8] + 1

rB

符号無バイト

1 × r

rI 16-bit

整数

2 × r

r J 32-bit

整数

4 × r

r K 64-bit

整数

8 × r

rAa

キャラクタ

(

文字列

) r

r E

単精度浮動小数

4 × r

r D

倍精度浮動小数

8 × r

rC

単精度複素数

4 × 2 × r

r M

倍精度複素数

8 × 2 × r

rPt(e

max

) 32-bit

配列記述子

(

配列長

,

ヒープオフセット

) 4 × 2 × r r Qt(e

max

) 64-bit

配列記述子

(

配列長

,

ヒープオフセット

) 8 × 2 × r

10: BINTABLE

の有効な

TFORMn

データタイプ

表の

n

列で必要とされる総バイト数

n

row

(=NAXIS1)

は次のように表される。

n

row

=

TFIELDS

i=1

r

i

b

i

(9)

ここで

r

iはフィールド

i

の繰り返し回数、

b

iはフィールド

i

のデータタイプで必要 なバイト数、

TFIELDS

はこのキーワードの値、を各々表す。

また、表の

n

番目の列のエントリに対するオプションのキーワードとして、ラベル

TTYPEn

、単位

TUNITn

、スケーリングファクター

TSCALn

、ゼロ点

TZEROn

、ブランク

TNULLn

表示フォーマットを与える

TDISPn

等がある。

TDISPn

で使えるのは

FORTRAN-77

形式 のフォーマットで次のとおり。

フィールド値 データタイプ

Aw

文字列

Lw

論理値

Iw.m 10

進整数

Bw.m 2

進整数

Ow.m 8

進整数

Zw.m 16

進整数

Fw.d

実数、固定小数点表示

Ew.dEe

実数、指数表示

Gw.dEe

実数、汎用表示

(

精度によって

F

または

E

同等

)

Dw.dEe

実数、指数表示

11: BINARY Table Extension

で有効な

TDISPn

フォーマット。

ここで

w

は表示欄全体の幅、

m

は出力される最低の桁数、

d

は小数点以下の桁数、

e

は 指数部分の桁数を表す。

.m

Ee

は省略可。

5.8.3

多次元配列と可変長配列

2005

年に、それまでは

Binary Table

の付録となっていた

多次元配列

可変長配

の規約が正式にスタンダードに取り入れられた。

FITS

のバイナリテーブルにおいて最も特徴的なのは、

1

つの列に複数のセルを持たせる 事ができることで、

TFORMn

の値において

r

2

以上の場合を固定長配列という。例えば

TFORM99 = ’48I’

と定義すると、

1

つの列に

16-bit

整数が

48

個入ることになる。この様 子はテーブルを単純な列の連なりと捉えるとわかりづらいが、テーブルに奥行があって、

48

個のセルが奥に向かってずらりと並んでいると考えると理解しやすいかもしれない。

多次元配列を定義するには、オプションキーワード

TDIMn

を使う。

TDIMn

は、列

n

の 多次元配列の定義を与えるもので、

TFORMn

r

とは異なり、列のバイト長に影響を与え るものではなく、データの解釈として利用される。

r

2

以上の場合に指定でき、

(l, m)

の形を取る。上記の例でさらに

TDIM99 = ’(8,6)’

と定義すれば、

48

個のセルを

8 × 6

2

次元配列と解釈することになっており、これを多次元配列という。

データ型の定義で最もわかりづらいのが、いわゆる

可変長配列

と呼ばれる

TFORMn

r Pt

または

r Qt

の場合である。この場合、セルが奥に向かってずらりと並んでおり、そ の個数は固定ではないと考えれば良いが、データの格納方法が極めて特殊である。可変長 配列の場合は、配列データの実体はヒープ領域のどこかに格納され、テーブル本体

(Data

Unit

のデータ配列

)

のセルにはその行における

配列長

ヒープ領域中の位置

(

オフ

5.8. Binary Table Extension (Standard extension 3)

セット

)”

が格納されている。例えば、

TFORM6 = ’1PE(3353)’

という定義があった場合、

配列の個数の最大が

3353

であり、ヒープ領域のどこかに

32-bit

浮動小数点数

(

シンボル

“E”)

を格納しているという意味になる。この場合、テーブル本体の当該列のある行に、

(12, 34)

という数値

(

配列記述子

)

が格納されているとすると、ヒープ領域の先頭から

34

バイトのオフセットの位置から

12

個の

32-bit

浮動小数点数が格納されていることになる。

詳細については前述の原論文、または

FITS Standard 4.0

7.3

節を参照されたい。

5.8.4 Binary Table Extension

のヘッダの例

異なるデータタイプと次元の

19

の列からなる

Binary Table

のヘッダの例を示す

(

スペー スの関係で途中一部略

)

“IFLUX”

というラベルの列は

2

次元の配列である。

“SOURCE”

の ラベルは各々

16

の長さの文字列である。非標準のキーワード

“NO IF”, “VELTYP”, “VELDEF”

がヘッダの最後に現れている。

1 2 3 4 5 6

1234567890123456789012345678901234567890123456789012345678901234 XTENSION= ’BINTABLE’ / Extension type

BITPIX = 8 / Binary data

NAXIS = 2 / Table is a matrix

NAXIS1 = 168 / Width of table row in bytes

NAXIS2 = 5 / Number of rows in table

PCOUNT = 0 / Random parameter count

GCOUNT = 1 / Group count

TFIELDS = 19 / Number of columns in each row EXTNAME = ’AIPS SU ’ / AIPS source table

EXTVER = 1 / Version number of table

TFORM1 = ’1I ’ / 16-bit integer

TTYPE1 = ’ID. NO. ’ / Type (label) of column 1 TUNIT1 = ’ ’ / Physical units of column 1 TFORM2 = ’16A ’ / Character string

TTYPE2 = ’SOURCE ’ / Type (label) of column 2 TUNIT2 = ’ ’ / Physical units of column 2 TFORM5 = ’2E ’ / Single precision array TTYPE5 = ’IFLUX ’ / Type (label) of column 5 TUNIT5 = ’JY ’ / Physical units of column 5 TUNIT19 = ’DEG/DAY ’ / Physical units of column 19

NO_IF = 2

VELTYP = ’LSR ’

VELDEF = ’OPTICAL ’

END

Dalam dokumen FITS の手引き (Halaman 66-70)