・SPICEを配布ルーチンでも利用する
manufest_rt.txtに"icy.dlm"と"icy.dll"のパスを加える。
make_rtする。
;; MAKE_RT, 'AIST_ROLO', 'C:\work\ENVI_IDL\LunaCal\tmp', SAVEFILE='AIST_ROLO.sav',/win64,/vm, /OVERWRITE
・クオタニオンルール from spice help
Given an engineering quaternion
qeng = ( q0, q1, q2, q3 )
the equivalent SPICE quaternion is
qspice = ( q3, -q0, -q1, -q2 )
・SPICEをIDLで使うために必要なDLMパスの通し方
GUIで使うときは下記参照
http://toruk.web.fc2.com/idl/lec4.html
コマンドラインの時
起動前にパスを設定しておく必要がある
例えば~/local/idl_lib以下にspice/icyのライブラリをコピーしたとして:
#!/bin/sh
## 自分で準備したライブラリへのパスを通すとき。IDL起動時に読み込まれる
export IDL_PATH='/home/kouyama/local/mylibs:<IDL_DEFAULT>'
## SpiceのDLMへパスを通すとき。Linuxログイン時に認識される様子
export IDL_DLM_PATH='/home/kouyama/local/idl_lib:<IDL_DEFAULT>'
その後
idl82 -rt="read_uniform_l1aa_to_l2gk.sav"
IDL内で確認するには
help,'icy',/dlm
・fkカーネルについて
地球と月を使うときには特別なカーネルがある
地球: ITRF93
月:MOON_ME
・Two Line Elements からspkカーネルを作るメモを書く予定
サンプルコードなどはリファレンスの "CSPICE_SPKW10" にある
その前にまず導入方法から?
・時間関係
必要なlskカーネルを読み込んで
衛星固有のTIからSPICEが持つ時刻etに変換
SAT_BODY_ID = -5l ;; VCO
cspice_scs2e, SAT_BODY_ID, TI, et
etからカレンダー時刻(obs_date, 文字列)に変換
str_l = 30l
cspice_timout, et, "YYYY-MM-DDTHR:MN:SC.###::UTC", str_l, obs_date
<< 逆に回す >>
カレンダー時刻からetに変換
cspice_str2et,'2015-12-07T05:27:04.526',et
etから衛星固有TIに変換
cspice_sce2s, SAT_BODY_ID, et, sclkch
print, sclkch
;; SPKの時刻範囲チェック ;;
cov = cspice_celld( 8l )
cspice_spkcov,ifname_spk,-999,cov
cspice_wnfetd, cov, 0, b, e
TIMLEN = 51
cspice_timout, [b,e], $
"YYYY MON DD HR:MN:SC.### (TDB) ::TDB", $
TIMLEN ,$
timstr
print,timstr