SPICE メモ
CSPICE 前提
SPICE のページ
- プロジェクトのトップページ
- プログラム、ドキュメント、データ等配布ページ
- CSPICE 配布
- http://naif.jpl.nasa.gov/pub/naif/toolkit/C/バイナリ種別/packages/cspice.tar.Z
ドキュメント
同じものが cspice.tar.Z の中にもあるものも
- CSPICE ドキュメント
- ./cspice/doc/html/index.html
- http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/index.html
- Required Reading
- ./cspice/doc/html/req/index.html
- http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/index.html
- Lessons
- Tutorials
日本語情報
日本惑星科学会内月惑星探査育英会の実習会で SPICE に関するものも扱われ、そこでドキュメントが配布されている。前半は基本的に同一。後半のサンプル解説は回によって異なる。
- 惑星探査育英会 - 第一回実習会
- 惑星探査育英会 - 第二回実習会( J_Intro_to_SPICE.pdf )
- 惑星探査育英会 - 金星周回衛星向けSPICE講習会
コンパイル
$ vim test_version.c
#include <stdio.h> #include "SpiceUsr.h" int main(){ ConstSpiceChar* version; version = tkvrsn_c("TOOLKIT"); printf("Toolkit version %s\n", version); return 0; }
$ gcc test_version.c -o test_version -I./cspice/include ./cspice/lib/cspice.a -lm
型
// SpiceZdf.h // 別名が付けられている。基本的には SpiceDouble などを使う // const や unsigned などの型も同様に別名が定義されている typedef char SpiceChar; typedef double SpiceDouble; typedef long SpiceInt; // 環境によっては int typedef long SpiceLong;
時刻
基本的には J2000.0 TDB をエポックとし、その時点からの経過秒数を SpiceDouble で管理している et を使う。
タイムスケールは主に "UTC" / "TDB" / "TDT" が使われる。時刻系の歴史的な面から見ると、 ET は TDB と TDT の両方を含む(分化する前の)用語だが、 SPICE では ET = TDB として扱う。天体暦なので妥当。
UTC への変換で必要なので閏秒情報のカーネル *.tls はあらかじめ読み込む必要がある。( UTC 使わないときでも読み込まないとエラーっぽい)
様々な時刻をあらわす文字列から ET に変換するには、 str2et_c や utc2et_c を使う。 str2et_c はタイムスケールを省略すると UTC として扱われるが、 timdef_c でデフォルトの時刻系や時差などを変更できる。一方、 utc2et_c は UTC のみ。っぽい。
et から各種時刻を表す文字列へは timout_c や et2utc_c などを使う。
出力内容
kernel=de405.bsp, tt=J2000.0, frame=J2000, observer=SSB
sun -1067599.061683770 -395988.983665861 -138071.310109251 mercury -20529325.063213400 -60323956.690444000 -30130844.488333400 venus -108524093.041015000 -7318518.342203330 3548116.374019060 earth -27566633.290546100 132361428.681020000 57418646.137797400 mars 206980541.580515000 -186369.101928463 -5667233.715421520 jupiter bc 597499942.619373000 408990391.774906000 160756290.405863000 saturn bc 957317896.016517000 923319605.920349000 340163058.939291000