目录
1.2.1 UTC\TDB\TDT\TT String To Numeric ET
1.2.2 Spacecraft Clock String To Numeric Ephemeris Time
1.2.3 Numeric Ephemeris Time To a String
1.2.4 Numeric Ephemeris Time To Spacecraft Clock String
1.2.5 Numeric Ephemeris Time To Local Solar Time String
SPICE官方课程学习文档链接:
https://naif.jpl.nasa.gov/naif/tutorials.html
一、时间坐标转换
1.1 时间系统和内核
用户程序的时间输入和输出通常是三种时间系统中表示历元的字符串,分别是历元时间(TT/TDB)、协调世界时(UTC)、航天器时钟(SCLK)。内核文件中的时间戳,以及读取内核数据和计算派生几何图形的SPICE例程的时间输入和输出都是用双精度数字来表示这两个时间系统中的历元,其中数值星历时间(TDB)是从J2000时刻开始计算的星历秒数(注意此处的J2000时刻是TBD系统下的而不是UTC系统下的)。SPICE提供了在这些字符串和数字表示之间进行转换的例程,在SPICE API中用作参数的时间字符串必须在引号中提供,其中Matlab和Python都是用单引号。
1.2 时间转换函数
1.2.1 UTC\TDB\TDT\TT String To Numeric ET
STR2ET(string,ET)
该函数需要LSK内核,几乎可以转换SPICE时间子系统已知的任何时间字符串格式,SCLK除外,例如:
'1996-12-18T12:28:28'
'1978/03/12 23:28:59.29'
'Mar 2, 1993 11:18:17.287 p.m. PDT'
'1996-12-18T12:28:28Z'
'1995-008T18:28:12'
'1993-321//12:28:28.287'
'2451515.2981 JD'
'jd 2451700.05 TDB'
'1988-08-13, 12:29:48 TDB'
'1992 June 13, 12:29:48 TDT'
1.2.2 Spacecraft Clock String To Numeric Ephemeris Time
SCS2E(scid,string,ET)
该函数需要LSK内核和SCLK内核,例如:
'5/65439:18:513' (VGR1)
'946814430.172' (MRO)
'1/0344476949-27365' (MSL)
1.2.3 Numeric Ephemeris Time To a String
时间转换为字符串,格式为Calendar、DOY或Julian Date,时间系统为UTC、TDB或TDT:
TIMOUT(et,fmtpic,STRING)
fmpic是一个输出时间字符串格式规范,在设置输出时间字符串的外观和使用的时间系统(UTC, TDB, TDT)方面给用户很大的灵活性。

1.2.4 Numeric Ephemeris Time To Spacecraft Clock String
SCE2S(scid,et,SCLKCH)
输出的SCLK字符串如下例所示:
1/05812:00:001 (Voyager 1 and 2)
1/1487147147.203 (Cassini, MRO)
1/0101519975.65186 (MEX, VEX, Rosetta)
1.2.5 Numeric Ephemeris Time To Local Solar Time String
ET2LST(et,body,long,type,HR,MN,SC,TIME,AMPM)
要求SPK和PCK内核,计算相对于太阳的行星位置和行星自转。
1.2.6 总结图

二、空间坐标转换
一个参考系是由三个相互正交的、可能与时间相关的、单位长度方向向量的有序集合指定的,它有一个相关联的中心,而坐标系则指定了在参考系内定位点的机制,当生成或使用状态(位置和速度)或方向(指向)数据时,需要理解所使用的参考系和坐标系。
所有的参考系都满足右手定则,并且参考系的中心必须是SPICE星历对象,其位置必须与框架的原点(0,0,0)一致。所有惯性参考系的中西都是太阳系统质量中心,自然天体固连坐标系中心则是天体中心。


CALL SPKPOS('SUN',ET,'CASSINI_ISS_NAC','LT+S','CASSINI',SUNVEC,LT)
ANGLE = VESP(NAC_BORESIGHT_nac,SUNVEC)