NASA 的导航和辅助信息设施 (NAIF,The Navigation and Ancillary Information Facility) ,建立了一个名为“SPICE”的信息系统,以协助 NASA 科学家规划和解释来自太空仪器的科学观测,并协助 NASA 工程师参与进行行星探索任务所需的建模、规划和执行活动。
常见的应用如计算行星轨道、航天器轨道;计算行星光照角度等,行星间坐标系转化,不同时间单位转化等星际空间内的几何观察数据
spicypy 绘制卡西尼号航天器相对于土星重心的位置的示例(https://spiceypy.readthedocs.io/en/master/exampleone.html)
SPICE内包含大量的内核(kernel)文件,由导航和其他辅助信息组成,为行星科学和工程界提供精确的观测几何数据,主要包括:
- 航天器和行星星历(SPK , Spacecraft and Planet Ephemeris Kernel)
- 行星常数内核 ( PCK, Planetary Constants Kernel )
- 仪器内核 (IK, Instrument Kernel )
- 相机内核 (CK, Camera-matrix Kernel)
- 框架内核 ( FK, Reference frame specifications Kernel)
- 航天器时钟相关数据 (SCLK, Spacecraft clock correlation data Kernel)
- 闰秒内核 ( LSK, Leapseconds Kernel )
- 元内核 (MK Meta-Kernel)
- 数字形状内核 (DSK, Digital shape Kernel) 等
SPICE 系统同时提供了SPICE 工具包,一个大型的相关软件集合。该工具包的主要组件是一个应用程序接口库(API),用于读取内核文件并计算科学家感兴趣的观测几何参数——例如范围、LAT/LON 和照明角度。一些 SPICE API可用于查找某些几何条件发生的时间(例如
用户可以将 SPICE Toolkit API 集成到他们自己的应用程序中,以计算所需的观测几何参数或几何事件的时间。使用SPICE本质上就是对内核数据的调用与处理,需要对内核数据较为了解,且全部的内核数据在保持不断的更新,NASA新的航天任务也会更新到该信息系统中,全部的内核数据是巨大的,因此需要了解内核的组织机制及查找到自己研究需要的内核信息,再使用该工具调用处理即可。
内核数据可通过以下网址查询。
https://naif.jpl.nasa.gov/pub/naif/
SPICE 工具包最初是在 ANSI FORTRAN 77 中实现的,但现在也可以在 C、IDL、MATLAB 和 Java Native Interface 中使用。第三方提供 Python、Ruby、Swift 和 Julia 的工具包。
原始工具包可通过该网站下载安装
https://naif.jpl.nasa.gov/naif/toolkit.html
python工具包为spicepy
可通过pip install spiceypy安装
#检查是否安装成功
import spiceypy
print(spiceypy.tkvrsn('TOOLKIT'))
#输出为 'CSPICE_N0066'
对于一些简要的行星观测与几何计算查询可通过WebGeocalc页面查询计算
https://wgc.jpl.nasa.gov:8443/webgeocalc/#NewCalculation
参考资料
https://naif.jpl.nasa.gov/naif/spiceconcept.html
https://spiceypy.readthedocs.io/en/master/installation.html