Orekit 13重大更新
Orekit 13 和 12 版本官方说存在多方面差异和改进, 好消息是:对我等菜鸟来说,实际用起来其实差别不大。

这里是: 原始官方更新日志 以下是简单总结:
模型改进
- 大气模型 :Orekit 13.0 对对流层模型进行了全面修订,引入了新的 ITU-R P.534 对流层模型,取代了原有的对流层折射模型,为大气延迟计算等应用提供了更准确的对流层参数,提高了相关计算的精度。
- 控制理论相关模型 :13.0 版本对最优控制理论中的最小时间哈密顿函数、成本评估、控制切换处的微分信息、线性系统调整、燃料成本的对数屏障、间接燃料优化的成本 / 惩罚屏障以及牛顿更新中的尺度等因素进行了改进和优化,使最优控制在航天器轨道控制等方面的应用更加高效和准确。
算法与数值计算
- 数值积分 :Orekit 13.0 改进了数值积分公差设置,进一步提高了数值积分算法在轨道传播等计算中的精度和稳定性,有助于更准确地模拟航天器的运动轨迹。
- 卡尔曼滤波 :13.0 新增了新的卡尔曼 / 无迹平滑器,增强了在数据处理和状态估计方面的能力,可更好地处理测量数据中的噪声和不确定性,提高轨道确定等结果的准确性。
数据处理与文件支持
- GNSS 相关数据处理 :Orekit 13.0 在处理 GNSS 数据方面有显著提升,包括对 Rinex 文件、Sinex 文件的改进,以及在 GNSS 传播器中增加了部分导数计算、模糊度处理、非标准信号和系统支持等功能,进一步提高了对 GNSS 数据的处理和分析能力,为 GNSS 应用提供了更全面的支持。
- 文件读写与解析 :13.0 版本新增了 IIRV 消息读取器 / 写入器,支持性角度处理,改进了对 Sexagesimal angles 的支持,在处理天文测量数据等场景中更加方便。
轨道力学与姿态控制
- 轨道改进 :Orekit 13.0 通过改进的开普勒轨道根数转换为平均轨道根数的方法,提高了分析轨道理论的精度,还引入了广义的轮廓推力推进模型,使对航天器轨道力学的建模更加准确。
- 姿态控制 :13.0 版本对姿态相关的类进行了调整,如
AttitudeProvider
现在继承自EventDetectorsProvider
和ParameterDriverProvider
,并且提供了替代AttitudesSequence
的具有瞬时切换功能的方案,增强了姿态控制的灵活性和准确性。
其他方面
- 时间处理 :Orekit 13.0 引入了具有阿秒精度的绝对日期,提高了时间处理的精度,适用于对时间精度要求极高的应用场景,如精确轨道确定和时间敏感的航天任务规划等。
- 本地轨道坐标系 :新增了 East-North-Up (ENU) 和 North-East-Down (NED) 本地轨道坐标系,为特定的轨道应用和坐标转换提供了更多的便利。
比较入门工程orekit-tutorials
- 使用上更动不大 :Orekit 13.0 像我这种菜鸟,常用的功能使用上几乎和12没差别。
- diff一下说差别:
- 在 Orekit 示例工程教程(Tutorials)中,13 版本相较于 12 版本的更新总结:
1.pom版本更新
- Orekit 和 Hipparchus 版本提升:在
pom.xml
文件中,Orekit 版本从 12.2 更新为 13.0,Hipparchus 版本从 3.1 更新为 4.0.1。 - 示例工程版本更新:项目的版本号从 12.2 更新为 13.0-SNAPSHOT。
2.Git分支变更
- 分支名称变更:GitLab分支名称从
master
更改为main
,以便更好地遵循现代 Git 的命名惯例。
3.代码和功能改进
- 类和方法的替换:其实真的改代码的很少,在几个 Java 文件中,旧的类和方法被替换为新的类和方法。例如,在
EarthObservation.java
中,AttitudesSequence.SwitchHandler
被替换为AttitudeSwitchHandler
,以适应新的 API 变更。 - 数据文件更新:看上去许多 Java 文件被更懂了,其实只是引用的data数据文件从
orekit-data-master.zip
更新为orekit-data-main.zip
,以匹配新的分支名称。
4.功能扩展和优化
- 事件检测设置更新:在
CR3BPSphereCrossingDetector.java
和YZPlaneCrossingDetector.java
中,旧的AdaptableInterval
被替换为新的EventDetectionSettings
,提供了更灵活的事件检测配置。 - 坐标传播优化:在
CovariancePropagation.java
中,addAdditionalStateProvider
方法被替换为addAdditionalDataProvider
,可能提供了更高效的数据处理方式。