是的,它已经在成功的操作任务中被使用过。
Orekit的第一个操作使用是用于自动转移飞行器(ATV)任务到国际空间站(ISS)。Orekit在实时监测交会对接阶段期间进行了操作使用。它不断重新计算两个航天器的相对几何关系,使用不同的传感器输出来检查其一致性。
Orekit已经被法国国家航天研究中心(CNES)选中,用于其下一代飞行动力学系统(Sirius项目)的操作系统、研究系统和任务分析系统。
Orekit在欧洲气象卫星组织(Eumetsat)用于长期任务分析(包括卫星的整个寿命)的低地球轨道(LEO)和地球静止轨道(GEO)任务。
Orekit在Sentinel-2图像处理设施中作为Rugged传感器到地形映射库的底层使用,每天处理数千兆字节的数据。
由于Orekit是开源的,我们无法了解所有的使用情况,因为人们不需要通知我们任何事情。
部分部分经过了严格的验证,其他部分则经过了较少的验证。
框架包是其中一个经过最好验证的。整体机制(变换、帧之间的导航、运动学等)在理论测试和实际操作中都经受了很多挑战。这部分在欧洲航天局的自动转移飞行器(ATV)与国际空间站(ISS)的会合中得到了广泛使用。它是一个操作地面程序,用于实时监测会合和对接阶段。这部分已经在相对配置下检查到毫米级精度。参考帧部分(ITRF等)在版本3.1中使用公共数据进行了验证,精度达到了米级,版本4.0的精度达到了厘米级。
Orekit 3.1发布后进行了一轮新的验证。发现并修复了两个缺陷:J2000帧与真实J2000之间存在一个约18毫弧秒的恒定旋转偏差(实际上是GCRF,而不是J2000),ITRF2000B实现存在一个时间相关的旋转错误,导致半短轴约为10000km的轨道误差约为0.6米。这些错误已在4.0版本中修复。我们的测试显示,新的帧与参考案例的符合度约为LEO的10mm和GEO的60mm。
TLE包也经过了相当好的验证;它已经与Vallado发布的一些参考数据进行了对比,Vallado在修订原始spacetrack报告时修复了原始Fortran实现中的一些错误。
大气模型也以同样的方式进行了验证,使用了已发布的数据。
时间包仅通过其单元测试进行了验证,但由于行为较简单,可以手动检查。单元测试包括许多边界情况(例如在引入闰秒时的行为)。
版本3.1的Sun和Moon类精度很低,并在一个松散定义的伪惯性坐标系中定义。它们只能与非常特定的软件进行比较。它们的精度可能仅限于约10角秒。它们在4.0版本中被精确的参考模型所取代。新模型已经通过参考NASA程序进行了验证。
数值传播已由法国国家航天中心(CNES)独立于Orekit团队对一些非常高精度的传播器(Zoom)进行了验证。他们告诉我们结果很好(对于简单的力模型,精度达到厘米级),但我们没有各种轨道和力模型的详细错误分析。
包括潮汐在内的精确力模型已在2014年由美国海军研究实验室(Naval Research Laboratory)针对其参考OCEAN程序进行了验证。一篇论文已在2014年的AIAA/AAS Astrodynamics Specialist Conference in San Diego上发表。一旦精确的GNSS建模完成(该功能截至2017年底正在开发中),预计将进行一轮新的验证。
验证对我们来说是一个持续的任务,我们始终致力于改进。我们很乐意让其他团队进行独立的验证运行。在第一个版本发布后,我们已经收到了一些反馈和新的测试案例。
版本5.X及之前的版本不是线程安全的。请注意,简单地将Orekit调用包装在同步块中并不是一个解决方案,因为这会完全破坏所有数据缓存功能,从而大大降低性能。
由于线程安全对许多人来说是一个重要需求,因此这个问题已经得到解决,从版本6.0开始,许多Orekit类是线程安全的。然而,请注意,一些自然顺序访问的部分不是线程安全的。从版本9.0开始,甚至可以使用不同的线程进行多卫星传播(和轨道确定),并进行线程间调度以进行并行传播(但每个传播都在专用线程中执行)。
在4.0版本之前,Orekit依赖于Apache Commons Math的一些尚未发布的功能,因此依赖关系被设置为2.0-SNAPSHOT开发版本。这个开发版本可以从Apache的子版本库中获取。从4.1版本开始,直到7.2版本,Orekit只依赖于Apache Commons Math的正式发布版本。从8.0版本开始,Orekit已经从Apache Commons Math切换到Hipparchus。
版本 | 依赖关系
Orekit 4.1 | Apache Commons Math 2.0 |
Orekit 5.0 | Apache Commons Math 2.1 |
Orekit 5.0.3 | Apache Commons Math 2.2 |
Orekit 6.0 | Apache Commons Math 3.2 |
Orekit 6.1 | Apache Commons Math 3.2 |
Orekit 7.0 | Apache Commons Math 3.4.1 |
Orekit 7.1 | Apache Commons Math 3.6 |
Orekit 7.2 | Apache Commons Math 3.6.1 |
Orekit 7.2.1 | Apache Commons Math 3.6.1 |
Orekit 8.0 | Hipparchus 1.0 |
Orekit 8.0.1 | Hipparchus 1.0 |
Orekit 9.0 | Hipparchus 1.1 |
Orekit 9.0.1 | Hipparchus 1.1 |
Orekit 9.1 | Hipparchus 1.2 |
Orekit 9.2 | Hipparchus 1.3 |
Orekit 9.3 | Hipparchus 1.4 |
Orekit 9.3.1 | Hipparchus 1.4 |
Orekit 10.0 | Hipparchus 1.5 |
Orekit 10.1 | Hipparchus 1.6 |
Orekit 10.2 | Hipparchus 1.7 |
Orekit 10.3 | Hipparchus 1.8 |
Orekit 10.3.1 | Hipparchus 1.8 |
Orekit 11.0 | Hipparchus 2.0 |
Orekit 11.0.1 | Hipparchus 2.0 |
Orekit 11.0.2 | Hipparchus 2.0 |
Orekit 11.1 | Hipparchus 2.0 |
Orekit 11.1.1 | Hipparchus 2.0 |
Orekit 11.1.2 | Hipparchus 2.1 |
Orekit 11.2 | Hipparchus 2.1 |
Orekit 11.2.1 | Hipparchus 2.1 |
Orekit 11.3 | Hipparchus 2.3 |
Orekit 11.3.1 | Hipparchus 2.3 |
Orekit 11.3.2 | Hipparchus 2.3 |
Orekit 11.3.3 | Hipparchus 2.3 |
Orekit 12.0 | Hipparchus 3.0 |
Orekit 12.0.1 | Hipparchus 3.0 |
Orekit的发布版本总是只依赖于发布的Hipparchus版本,但是开发版本的Orekit可能依赖于未发布的Hipparchus版本。Maven知道如何下载已发布的Hipparchus版本的预构建二进制文件,但是无法下载未发布的Hipparchus版本的预构建二进制文件,因为没有公开可用的。在这种情况下,maven命令将以错误消息结束,如下所示:
[ERROR] Failed to execute goal on project orekit: Could not resolve dependencies for project org.orekit:orekit:jar:8.0-SNAPSHOT: Could not find artifact org.hipparchus:hipparchus-core:jar:1.0-SNAPSHOT
在这种情况下,您应该先构建缺失的Hipparchus依赖项,并将其安装到本地的maven存储库中。这可以通过在某个临时文件夹中从Hipparchus git存储库的GitHub克隆Hipparchus源代码并使用maven进行安装来完成。通过运行以下命令(使用Linux命令语法)来完成:
git clone https://github.com/Hipparchus-Math/hipparchus.git
cd hipparchus
mvn install
一旦使用上述命令在本地安装了Hipparchus开发版本,您可以删除克隆的文件夹(如果需要)。然后,您可以再次尝试在Orekit级别运行mvn命令,这次应该成功,因为所需的依赖项现在在本地可用。
这个文件没有定期更新。数据仅作为示例提供,以便新用户快速开始。对于长期使用,数据处理仍然是用户自己的责任。配置页面指出了Orekit可以考虑的数据源,因此您可以访问该链接查找所需的内容。
对于非常新的数据可能会遇到一些困难。事实上,IERS再次更改了文件格式,并停止发布B公告(请参阅地球定向数据页面)。例如,最后一个发布的IAU 2000 B公告是编号263。IERS还停止了对IERS 2003约定的数据发布,他们已经转向了IERS 2010约定。年度数据(EOP 05 C08文件)仍在发布。因此,我们建议您定期更新这些文件,因为IERS会发布它们。
关于UTC闰秒,截至2017年中,最后一个闰秒是在2016年12月底引入的。
orekit-data-master
文件夹重命名为orekit-data
,并在程序的开头添加以下代码:
File orekitData = new File("/path/to/the/folder/orekit-data");
DataProvidersManager manager = DataContext.getDefault().getDataProvidersManager();
manager.addProvider(new DirectoryCrawler(orekitData));
使用文件夹的方式可以在初始下载后更改其中的数据,例如按照IERS发布的新的EOP文件添加。更新orekit-data的内容是用户的责任。