6个版本
0.2.9 | 2024年6月4日 |
---|---|
0.2.8 | 2024年5月17日 |
0.2.7 | 2024年4月25日 |
0.2.5 | 2024年3月23日 |
#368 in 算法
613次每月下载
795KB
16K SLoC
基于Rust的卫星工具包
一个准确、高性能的卫星轨道动力学工具包,使用Rust编写,具有合理的接口。
还包括通过pyo3提供的所有功能的Python绑定
GitHub
Crates.io
PyPi
语言绑定
- 原生Rust绑定
- Python绑定用于编译后的Rust代码 ... 具有Rust的速度和Python的便利性
使用pip install satkit
安装
PyPi包括Windows、macos(Intel & ARM)和Linux的二进制包。Python文档在:https://satellite-toolkit.readthedocs.io/latest/
功能
- 在
- 国际大地测量参考框架(ITRF)之间进行高精度坐标转换
- 使用IAU-2000减法进行地心天体参考框架(GCRF)
- 真春分平均赤道(TEME)框架,用于TLE的SGP4传播
- 天体中间参考框架(CIRF)
- 陆地中间参考框架(TIRF)
- 陆地大地测量框架(纬度,经度)
- 大地测量距离
- SGP4和开普勒轨道传播
- JPL高精度行星历书
- 高阶重力模型
- 使用高阶高效的Runge-Kutta求解器进行高精度、高速数值卫星轨道传播,能够求解状态转换矩阵,并包括后续力
- 具有多个模型的高阶地球重力
- 太阳重力
- 月球重力
- 阻力(NRL MISE-00密度模型)
- 辐射压力
常微分方程求解器
高精度数值卫星轨道传播使用标准的Runge-Kutta方法进行常微分方程的积分。常微分方程求解器作为库的一部分提供。
该方法使用Runga-Kutta对进行常微分方程积分和误差估计,由Jim Verner生成: https://www.sfu.ca/~jverner/
参考文献、模型和外部软件。
本工作的方程和许多单元测试来源于以下来源
- "天体力学基础与应用,第四版",D. Vallado,Microcosm Press 和 Springer,2013。
https://celestrak.org/software/vallado-sw.php - "卫星轨道:模型、方法、应用",O. Montenbruck 和 E. Gill,Springer,2000。
https://doi.org/10.1007/978-3-642-58351-3
本代码参考并依赖于以下生成的模型
- SGP4轨道传播器 - https://celestrak.org/software/tskelso-sw.php
NORAD / SGP4轨道传播器,用于从描述为双行元素集(TLEs)的轨道摄动中生成位置和速度状态。此代码库包括SGP4轨道传播器的纯Rust翻译 - NRL MSISE-00密度模型 - https://ccmc.gsfc.nasa.gov/models/NRLMSIS~00/
NRL空气密度模型,包括高海拔地区的密度,用于计算卫星阻力 - 重力模型 - http://icgem.gfz-potsdam.de/home
国际地球重力场模型中心(ICEGM),所有现有全球重力场模型的收集和归档 - 空间天气 - https://celestrak.org/SpaceData/
空间天气用于调节阻力计算中使用的空气密度 - 地球定向参数 - https://celestrak.org/SpaceData/
用于时间历元转换和惯性坐标系与地球固连坐标系之间高精度旋转的时间变化的地球定向参数 - IERS公约 - https://www.iers.org/IERS/EN/Publications/TechnicalNotes/tn36.html
国际地球自转和参考系统服务技术笔记36,用于惯性坐标系与地球固连坐标系之间的旋转。
验证
代码包括用于验证几乎所有计算的rust测试模块和python测试模块,包括但不限于
- JPL历书 - 通过JPL提供的测试向量进行Chebyshev多项式计算
- SGP4 - 通过与原始C++分发一起提供的SGP4测试向量
作者
Steven Michael ([email protected])
如果您发现代码或计算中的错误,希望为此存储库做出贡献,或对API的改进有建议,请与我联系。
依赖关系
~7–14MB
~197K SLoC