mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

月・惑星の暦 JPL DE430 について!

[ 暦・カレンダー ] [ カレンダー ]

こんばんは。

NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している月・惑星の暦の最新版 DE430 についてです。

二十四節気や旧暦等を自分で正確に計算したいがために調査し、まとめたものです。(今後その目的が果たせるか否かについては、今のところ不明ですが)

1. 概要

  • この月・惑星の暦のデータファイルには、月・惑星の位置を正確に計算するために必要な係数の一覧が記載されいている。(この係数とは、位置(直交座標系)計算に必要なチェビシェフ多項式近似の係数のこと)
    太陽や月の位置を略算式を使用して確認できる Web サイト等は多数存在するが、それでは誤差が発生してしまう。(「略算式」とは言っても、三角関数や高精度の係数を使用した多項式で、計算は容易ではない)
  • “DE” は Development Ephemerides の略で、「(進化版)天文暦」とでも呼べるでしょう。(以下、「天文暦」と呼ぶ)
  • “430” はバージョン番号。
  • DE430 は 1549年12月21日(ユリウス日:2287184.5)〜 2650年1月25日(ユリウス日2688976.5) に対応している。
  • 当記事執筆時点で DE430 以外に DE431, DE432 も公開されている。
    • DE431 は DE430 を -13200年8月15日(ユリウス日:-0.3100015.5)〜 17191年3月15日(ユリウス日:8000016.5) に拡張したもの。
    • DE432 は DE430 をマイナーアップデート(冥王星に注目)したもの。(但し、地球の章動のデータは含まない)
    • 従って、冥王星や極端な過去・未来について扱わないのであれば、DE430 が実用に耐えられるものとなる。(実質の最新バージョン)
  • DE430 とは別に DE430T もあるが、これは地球時(TT)と太陽系力学時(TDB)のデータを含んだもの。
  • 使用されている座標系は、直交座標 ICRS である。
    • ICRS は International Celestial Reference System の略で、日本語では「国際天文基準座標系」と呼ぶ。
    • その原点は太陽系の重心にあり、その座標軸は空間に固定されている。
  • 1AU(天文単位)は 149,597,870.7 km で定義されている。
  • ファイルが公開されいている Web サイト: ftp://ssd.jpl.nasa.gov/pub/eph/planets/
  • ファイルの種類
    • ヘッダファイル(テキスト形式)
      • “ascii/de430/header.430_229” (使用する定数が229個)
      • “ascii/de430/header.430_572” (使用する定数が572個)
    • データファイル(テキスト形式)
      • “ascii/de430/ascpYYYY.430” ("YYYY" は西暦年。DE430 では紀元前を扱わないが、紀元前を扱う場合は “ascp” の他に “ascm” のファイルもある("p" はプラス、"m" はマイナスという意味))
    • 検証用ファイル(テキスト形式)
      • “ascii/de430/testpo.430”
    • バイナリ形式の場合のヘッダファイル、データファイルは以下のとおり。
      • Linux/de430/header.430_572 (使用する定数が572個)
      • Linux/de430/linux_p1550p2650.430
      • Linux/de430/testpo.430
  • テキスト形式のデータファイルをバイナリ形式に変換するツールもある。(但し、ソースコードは Fortran77 で記述されている)
    • “fortran/asc2eph.f” (変換ツール)
    • “fortran/testeph.f” (検証ツール)
  • その他外部の有志により C 言語、Python, IDL, Java 版のツールも公開されている。

2. ヘッダファイル(テキスト形式)の仕様

“ascii/de430/header.430_572” を例にして説明する。

ftp://ssd.jpl.nasa.gov/pub/eph/planets/ascii/de430/header.430_572
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
KSIZE= 2036    NCOEFF= 1018

GROUP   1010

JPL Planetary Ephemeris DE430/LE430
Start Epoch: JED=  2287184.5 1549-DEC-21 00:00:00
Final Epoch: JED=  2688976.5 2650-JAN-25 00:00:00

GROUP   1030

  2287184.50  2688976.50         32.

GROUP   1040

   572
  DENUM   LENUM   TDATEF  TDATEB  JDEPOC  CENTER  CLIGHT  BETA    GAMMA   AU
  EMRAT   GM1     GM2     GMB     GM4     GM5     GM6     GM7     GM8     GM9
      :
===< 中略 >===
      :

GROUP   1041

   572
  0.430000000000000000D+03  0.430000000000000000D+03  0.201303292004380000D+14
  0.201303291910070000D+14  0.244040050000000000D+07  0.000000000000000000D+00
  0.299792458000000000D+06  0.100000000000000000D+01  0.100000000000000000D+01
  0.149597870700000000D+09  0.813005690741906200D+02  0.491248045036476000D-10
      :
===< 中略 >===
      :

GROUP   1050

     3   171   231   309   342   366   387   405   423   441   753   819   899
    14    10    13    11     8     7     6     6     6    13    11    10    10
     4     2     2     1     1     1     1     1     1     8     2     4     4

GROUP   1070
  • 1行目
    • KSIZE … ワードの数(バイナリ形式のファイルで使用する定数)
    • NCOEFF … 係数の数
  • GROUP 1010
    • タイトル
  • GROUP 1030
    • 対象の日時(ユリウス日)の範囲と分割日数
  • GROUP 1040
    • 定数の数
    • 定数の名称の一覧(GROUP 1041 と対応)
  • GROUP 1041
    • 定数の数
    • 定数の値の一覧(GROUP 1040 と対応)
      • 数値は18桁の精度をもつ指数表記で記述されている。
  • GROUP 1050
    • 行(上から)
      • 係数のオフセット(データファイルでのデータの開始位置)
      • 係数の組数
      • サブ区間数
    • 列(左から)
      • 水星 (Mercury)
      • 金星 (Venus)
      • 地球 - 月の重心 (Earth-Moon barycenter)
      • 火星 (Mars)
      • 木星 (Jupiter)
      • 土星 (Saturn)
      • 天王星 (Uranus)
      • 海王星 (Neptune)
      • 冥王星 (Pluto)
      • 月(地心) (Moon (geocentric))
      • 太陽 (Sun)
      • 地球の章動(1980年IAUモデル) (Earth Nutations in longitude and obliquity (IAU 1980 model))
      • 月の秤動 (Lunar mantle libration)
      • 月の角速度 (Lunar mantle angular velocity)(DE430 では存在しない)
      • 地球時(TT) - 太陽系力学時(TDB)(地心) (TT-TDB (at geocenter))(DE430 では存在しない)
  • GROPU 1070
    • ヘッダの終了を意味する。

3. データファイル(テキスト形式)の仕様

“ascii/de430/ascp1950.430” を例にして説明する。

ftp://ssd.jpl.nasa.gov/pub/eph/planets/ascii/de430/ascp1950.430
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 1  1018
0.2433264500000000D+07    0.2433296500000000D+07    0.4416951459393930D+08
0.8080851912982978D+07   -0.7484298492585709D+06   -0.4071477612085195D+05
   -0.5304223052867982D+03    0.1960084093957696D+02    0.3222303794881912D+01
0.2083022564266313D+00    0.8945618998892750D-02    0.1631530233962896D-03
   -0.1340538183758198D-04   -0.1759843376009009D-05   -0.1178977685715121D-06
  :
===< 中略 >===
  :

 2  1018
0.2433296500000000D+07    0.2433328500000000D+07   -0.2689229663002159D+08
   -0.1692656330993640D+08    0.9281544149758401D+06    0.7253292046464056D+05
   -0.6843155795351088D+04    0.2006392156843922D+02    0.3604749399348383D+02
   -0.2385398736557836D+01   -0.8291701513748923D-01    0.2210367581776452D-01
   -0.8928465559150462D-03   -0.1050479605332951D-03    0.1420682900626840D-04
  :
===< 中略 >===
  :
  • 1行目
    • このファイルにおけるデータのインデックス
    • 係数の数
  • 2行目以降
    • 1行あたり3個の係数
      • 係数の数が3の倍数でない場合、最後の行の残りの部分は 0.0000000000000000D+00 で埋められている。
      • 最初の係数2個はこのインデックスで扱う開始・終了日時(ユリウス日)。
  • 以降 1, 2 の繰り返し

  • 例えば、「水星」は、ヘッダファイルの GROUP 1050 によると、

    • データ開始位置が3番目
    • 係数の組数が14組
    • サブ区間数が4 となっているので、「水星」のデータは3番目から
    • 水星の 1 個目のサブ区間 x 座標に関する係数 x1, x2, …, x14
    • 水星の 1 個目のサブ区間 y 座標に関する係数 y1, y2, …, y14
    • 水星の 1 個目のサブ区間 z 座標に関する係数 z1, z2, …, z14
      (中略)
    • 水星の 4 個目のサブ区間 x 座標に関する係数 x1, x2, …, x14
    • 水星の 4 個目のサブ区間 y 座標に関する係数 y1, y2, …, y14
    • 水星の 4 個目のサブ区間 z 座標に関する係数 z1, z2, …, z14 となっている。
      この後、同様に「金星」のデータ、…、と続く。
  • 月や惑星のデータは直交座標 x, y, z に関する係数3個で1組だが、地球の章動は Δψ, Δε に関する係数2個で1組、月の秤動はオイラー角の角速度 φ, θ, ψ に関する係数3個で1組となっている。

4. 検証用ファイルの仕様

testpo.430
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

 DE-0430LE-0430        1549-DEC-21 00:00  JD   2287184.50 to   2650-JAN-25 00:00  JD   2688976.50


de#  -- date -- -- jed -- t# c# x# -- coordinate ---
EOT
430  1550.01.01 2287195.5 13 12  2        0.80392166046084840000
430  1550.02.01 2287226.5  3  7  6       -0.00420078916574764900
430  1550.03.01 2287254.5 11  3  3       -0.02684301510922799000
430  1550.04.01 2287285.5 15  0  6        0.23021584843582890000
430  1550.05.01 2287315.5  4 12  4        0.00677315444889625700

===< 中略 >===

430  2649.09.01 2688830.5  8  2  6        0.00863222890256251700
430  2649.10.01 2688860.5 10  9  2      -44.23348046921843000000
430  2649.11.01 2688891.5  5  1  6        0.00340614048111675700
430  2649.12.01 2688921.5  9 12  5       -0.00031476437563544280
430  2650.01.01 2688952.5  9 13  5        0.00003367832325310824
  • 2行目はタイトル。
  • de# 列は、DE データのバージョン番号。
  • date 列は、年月日。
  • jed は、ユリウス日。
  • t# は、対象の天体番号。(後述の 115
  • c# は、基準の天体番号。(後述の 115 or 0
    (対象の天体番号が 14, 15 の場合は比較できないので 0 が設定されている)
  • x# は、位置・速度配列のインデックス番号。
    地球の章動は Δψ, Δε のオイラー角、 Δψ, Δε の角速度の 4 要素が 1,2,4,5 に対応。
    月の秤動は φ, θ, ψ のオイラー角、 φ, θ, ψ 方向の角速度の 6 要素が 1,2,3,4,5,6 に対応。
    その他は x, y, z の位置、 x, y, z 方向の速度の 6 要素が 1,2,3,4,5,6 に対応。
  • coordinate 列は、対象の天体番号と基準の天体番号のインデックス番号の要素の値の差。
    例えば、t#, c#, x# の値が 3, 7, 6 の場合は、
    「地球 - 月の重心」の z の速度から「天王星」の z の速度を引いた値。
  • t#, c#12(太陽系重心)の場合は 0 とみなして計算する。
  • 対象の天体番号が 14, 15 の場合は、基準の天体番号は 0 となっている。
  • 天体番号は以下のとおり。(但し、ヘッダファイルやデータファイルの並び順と異なるので注意)
    1. 水星
    2. 金星
    3. 地球
      (ヘッダファイルやデータファイルには存在しない)
    4. 火星
    5. 木星
    6. 土星
    7. 天王星
    8. 海王星
    9. 冥王星
    10. 太陽
    11. 太陽系重心
    12. 地球 - 月の重心
      (ヘッダファイルやデータファイルでは、番号 3 で扱われている)
    13. 地球の章動
      (ヘッダファイルやデータファイルでは、番号 12 で扱われている)
    14. 月の秤動
      (ヘッダファイルやデータファイルでは、番号 13 で扱われている)

参考サイト

JPL 本家サイトと FTP サイト。


以上。

Comments