JPL 天文暦バイナリデータの仕様!
Updated:
NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している月・惑星の暦の最新版 DE430 には、テキスト形式のデータの他にバイナリ形式のデータが存在します。実際には1つにまとめたバイナリ形式のデータファイルを参照することが多いようです。
今回は DE430 のバイナリ形式データの仕様について、 FORTRAN77 プログラムを解析して理解できた内容についての記録です。
1. DE430 バイナリ形式データの仕様
- Intel x86, IA64 等の環境では、エンディアンはリトルエンディアンである。
- テキスト形式データを JPL 提供の FORTRAN77 プログラム等でマージ&バイナリ化した場合は
KSIZE
の値が設定されているが、 JPL が提供するバイナリ形式データではKSIZE
の値が設定されていない。(別途テキスト形式ファイルを参照してKSIZE
値を得る必要がある) - ヘッダ部分は 4 * KSIZE バイトのレコード2個で構成されている。
- ヘッダ部分の後ろに係数の一覧が格納されている
以下、仕様。(項目名のアルファベットは FORTRAN77 プログラムで使用されている変数。データ型は FORTRAN77 でのもの)
オフセット | 項目名 | データ型 | 項目数 | 備考 |
---|---|---|---|---|
4 * KSIZE * 0 | TTL(タイトル) | CHARACTER * 84 | 3 | 84 byte * 3 |
CNAM(定数名) | CHARACTER * 6 | 400 | 6 byte * 400 | |
SS(ユリウス日(開始、終了)、分割日数) | DOUBLE PRECISION | 3 | 8 byte * 3 | |
NCON(定数の数) | INTEGER | 1 | 4 byte * 1 | |
AU(天文単位) | DOUBLE PRECISION | 1 | 8 byte * 1 | |
EMRAT(地球と月の質量比) | DOUBLE PRECISION | 1 | 8 byte * 1 | |
IPT(オフセット、係数の数、サブ区間数)(水星〜月・章動) | INTEGER | 3 * 12 | 4 byte * 3 * 12 | |
NUMDE(DEバージョン番号) | INTEGER | 1 | 4 byte * 1 | |
IPT(オフセット、係数の数、サブ区間数)(月・秤動) | INTEGER | 1 | 4 byte * 3 * 1 | |
パディング領域 | 4 * KSIZE byte の残りの部分 | |||
4 * KSIZE * 1 | CVAL(定数値) | DOUBLE PRECISION | NCON の値 | 8 byte * NCON 値 |
パディング領域 | 4 * KSIZE byte の残りの部分 | |||
4 * KSIZE * 2 | CVAL(係数値) | DOUBLE PRECISION | 8 byte の連続 最初の2項目はそのインデックスに おけるユリウス日(開始、終了) 3項目目以降が系数値 さらに、これの繰り返し |
- 系数値の並びはテキスト形式データと同じ。(月・惑星の暦 JPL DE430 について! - mk-mode BLOGを参照)
以上。
Comments