概述

OREKIT是一个用Java编写的免费低级别空间动力学库。

它提供了基本元素(轨道、日期、姿态、参考系等)以及处理它们的各种算法(转换、解析和数值传播、指向等)。

特点

  • 时间

    • 高精度绝对日期
    • 时间尺度(TAI,UTC,UT1,GPS,TT,TCG,TDB,TCB,GMST,GST,GLONASS,QZSS,BDT,IRNSS等)
    • 透明处理闰秒
    • 支持CCSDS时间代码标准
  • 几何

    • 支持固定和时间相关(或遥测相关)的框架层次结构
    • 预定义框架(EME2000/J2000,ICRF,GCRF,从1988年到2020年的所有ITRF和中间框架,TOD,MOD,GTOD和TOD框架,Veis,地心,TEME和PZ-90.11框架,tnw和qsw本地轨道框架,相对遭遇框架,月球,太阳,行星,太阳系质心,地月质心,黄道)
    • 用户可扩展(在多个航天器上实时操作使用约60个框架的操作)
    • 透明处理IERS地球定向参数(适用于遵循IERS 2010约定的新CIO基于框架和旧的基于黄道的框架)
    • 透明处理JPL DE 4xx(405、406和更近期)和INPOP星历
    • 包括运动组合效应的变换
    • 用于效率的复合变换简化和缓存
    • 可扩展的中心体形状模型(具有预定义的球形和椭球形形状)
    • 笛卡尔和大地坐标,运动学
    • 计算与GNSS星座相关的精度稀释(DOP)
    • 将传感器视场在地面上投影为任何视场形状
  • 航天器状态

    • 笛卡尔,开普勒(椭圆,抛物线,双曲线),圆形和赤道参数,如果可用则包括非开普勒导数
    • 两行根数(TLE)
    • 使用固定点算法或最小二乘拟合生成两行根数
    • 所有参数之间的透明转换
    • 与框架的自动绑定
    • 姿态状态和导数
    • 雅可比矩阵
    • 质量管理
    • 用户定义的关联状态(例如电池状态,或高阶导数,或其他任何内容)
  • 协方差

    • 使用状态转移矩阵进行协方差传播
    • 使用开普勒模型进行协方差外推
    • 协方差框架转换(惯性,地球固定和局部轨道框架)
    • 协方差类型转换(笛卡尔,开普勒,圆形和赤道)
    • 基于混合模型的协方差插值
  • 机动

    • 小机动的解析模型,无需传播
    • 任何传播器类型的冲量机动
    • 数值传播器类型的连续机动
    • 基于事件检测器的可配置低推力机动模型
    • 用于机动类的用户定义推进模型(库已提供常数和分段多项式)
    • 机动触发器的用户友好界面
  • 传播

    • 解析传播模型
      • 开普勒
      • 埃克斯坦-赫斯勒
      • 布劳尔-利丹纳模型,包括63.4°的临界倾角和由大气阻力引起的摄动加速度的沃伦·菲普斯修正
      • 带有2006年修正的SDP4/SGP4
      • GNSS:GPS、QZSS、伽利略、格洛纳斯、北斗、IRNSS和SBAS
    • 数值传播器
      • 中心引力
      • 包括时间相关的重力模型,如趋势和脉动(自动读取ICGEM(新的Eigen模型)、SHM(旧的Eigen模型)、EGM和GRGS重力场文件格式,甚至是压缩格式)
      • 大气阻力
      • 第三体引力(包括太阳、月球和所有太阳系行星的数据)
      • 辐射压力与日食(多个扁球体遮挡物,弓形和翼形模型的多个系数)
      • 固体潮汐,带或不带固体极潮
      • 海洋潮汐,带或不带海洋极潮
      • 地球反照率和红外线
      • 经验加速度以考虑未建模的力
      • 广义相对论(包括伦斯-西特和德西特修正)
      • 多次机动
      • 最先进的ODE积分器(自适应步长和误差控制、连续输出、切换函数、G-stop、步长归一化等)
      • 序列化机制,将完整结果存储在持久存储器中以供以后使用
      • 在非惯性参考系中传播(例如拉格朗日点的光环轨道)
    • 半解析传播模型(DSST)
      • 中心引力
      • 重力模型
      • J2平方效应(Zeis模型)
      • 大气阻力
      • 第三体引力
      • 辐射压力与日食
    • 计算与轨道参数和选定模型参数相关的雅可比矩阵,用于数值、半解析和解析传播模型
    • 使用CR3BP模型计算拉格朗日点周围的轨迹
    • 表格星历
      • 基于文件
      • 基于内存
      • 基于积分
    • 大多数上述传播器的Taylor代数(或任何其他实数域)版本,包括所有力模型、事件检测、轨道类型、坐标类型和参考系,允许高阶不确定性和导数计算或非常快速的蒙特卡洛分析
    • 统一接口,用于解析/数值/表格传播器之间的轻松切换,从粗略分析到精细模拟只需更改一行代码
    • 所有传播器都可以自行管理时间循环,并在每个时间步骤从调用应用程序处理回调函数(称为步骤处理程序)。
      • 步骤处理程序可以在离散时间上以固定时间步长调用,这些时间步长与传播器的时间步长无关
      • 步骤处理程序可以使用在一个传播器时间步长内有效的插值器进行调用,这些插值器的大小可以变化
      • 当只需要最终状态时,可以完全关闭步骤处理程序
      • 为后续星历生成提供了特殊的步骤处理程序:在传播过程中存储所有中间结果,并将其提供给应用程序,应用程序可以随意浏览这些结果,有效地将传播轨道用作解析模型,即使它实际上是数值传播的,这对于搜索和迭代算法非常理想
      • 可以同时使用多个步骤处理程序,因此可以在一个巨大的文件中记录状态的细粒度固定时间步长,并且同时可以以更人性化的速率显示用户的粗粒度时间步长,此功能还可以用于调试目的,通过在操作步骤处理程序旁边设置临时步骤处理程序
    • 在积分过程中处理离散事件(模型变化、G-stop、简单通知...)
    • 预定义的离散事件
      • 日食(本影和半影)
      • 升交点和降交点穿越
      • 近地点和远地点穿越
      • 与轨道平面中某个物体的对齐(可自定义阈值角度)
      • 航天器与信标(通常为太阳)从观测者(通常为地面站)视角看的角度分离阈值穿越
      • 相对于地面位置的升起/落下(可自定义触发高度和地面遮罩,可选择考虑折射)
      • 日期和即时重置倒计时
      • 带有参数驱动边界的日期间隔
      • 纬度、经度、高度穿越
      • 纬度、经度极值
      • 高度极值
      • 轨道真、平、偏离的异常、纬度参数或经度参数穿越
      • 在航天器传感器视场(任意形状,圆形为特例)中检测移动目标(可选半径)
      • 在地面视场(任意形状)中检测航天器
      • 传感器视场(任意形状)与复杂地理区域的重叠
      • 复杂地理区域的遍历
      • 卫星之间的直接视线(可自定义最小高度)
      • 夜间地面
      • 脉冲机动发生
      • 地磁强度
      • 计算最接近时间(TCA)的极值方法
    • 可以稍微延迟事件的时间(例如,在日食进入前几分钟切换到太阳指向模式,日食退出后几分钟恢复太阳指向模式)
    • 基于事件方向的事件过滤(例如,仅检测日食进入而不是日食退出)
    • 基于外部启用函数的事件过滤(例如,仅在选择的轨道上检测事件而不是其他轨道)
    • 使用布尔运算符组合事件
    • 能够并行运行多个传播器,并在整个传播过程中同时管理它们的状态
  • 姿态

    • 可扩展的姿态演化模型
    • 预定义的规律
      • 与中心天体相关的姿态(指向天地线、指向中心、指向目标、偏航补偿、偏航转向),
      • 与轨道相关的姿态(LOF对齐、所有轴上的偏移),
      • 与空间相关的姿态(惯性、指向天体、自旋稳定),
      • 表格化的姿态,可以是相对于惯性坐标系或者相对于局部轨道坐标系
      • 针对GNSS卫星的特定规律:GPS(IIA型、IIF型、IIF型)、GLONASS、GALILEO、BEIDOU(GEO、IGSO、MEO)
      • 适用于一般(非对称)物体的无力矩姿态
    • 加载和写入CCSDS姿态数据消息(支持AEM、APM和ACM类型,以KVN和XML格式,独立或组合在NDM中)
    • 将姿态星历导出为CCSDS AEM和ACM文件格式
  • 轨道确定

    • 批量最小二乘拟合
      • 优化器选择(Levenberg-Marquardt或Gauss-Newton)
      • 分解算法选择(QR,LU,SVD,Cholesky)
      • 选择是否形成正规方程
    • 顺序批量最小二乘拟合
      • 顺序Gauss-Newton优化器
      • 分解算法选择(QR,LU,SVD,Cholesky)
      • 可以使用初始协方差矩阵
    • 卡尔曼滤波
      • 可定制的过程噪声矩阵提供者
      • 时间相关的过程噪声提供者
      • 扩展卡尔曼滤波器的实现
      • 扩展半解析卡尔曼滤波器的实现
      • 无迹卡尔曼滤波器的实现
      • 无迹半解析卡尔曼滤波器的实现
    • 参数估计
      • 轨道参数估计(或仅估计子集)
      • 力模型参数估计(阻力系数,辐射压力系数,中心引力,机动推力,流量或起始/停止时刻)
      • 测量参数估计(偏差,卫星钟差,站点钟差,站点位置,极移和速率,本初子午线修正和速率,对流层修正的总天顶延迟)
    • 可以使用数值、DSST、SDP4/SGP4、Eckstein-Hechler、Brouwer-Lyddane或开普勒传播器进行轨道确定
    • 基于星历的轨道确定,用于估计测量参数,如站点偏差或钟差
    • 多卫星轨道确定
    • 初始轨道确定方法(Gibbs,Gooding,Lambert和Laplace)
    • 由于固体潮汐引起的地面站位移
    • 由于海洋负荷引起的地面站位移(基于Onsala Space Observatory的BLQ格式文件)
    • 由于板块构造引起的地面站位移
    • 几种预定义的测量
      • 距离
      • 距离速率(单程和双程)
      • 回转距离
      • 方位角/仰角
      • 赤经/赤纬
      • 位置-速度
      • 位置
      • 卫星间距离(单程和双程)
      • 卫星间GNSS相位
      • GNSS码
      • 具有整数模糊度解算和风转效应的GNSS相位
      • 到达时间差(TDOA)
      • 频率到达差(FDOA)
      • 双静态距离和距离速率
      • 多路复用
    • 可以添加自定义测量
    • 加载ILRS CRD激光测距测量文件
    • 加载和写入CCSDS跟踪数据消息(以KVN和XML格式,独立或组合的NDM)
    • 几种预定义的修饰器
      • 对流层效应
      • 电离层效应
      • 钟相对论效应(包括J2校正)
      • 站点偏移
      • 偏差
      • 延迟
      • 天线相位中心
      • Shapiro相对论效应
    • 可以添加自定义测量修饰符(甚至对于预定义事件)的可能性
    • GNSS测量的组合
      • 双频测量的组合(几何无关、电离层无关、窄巷、宽巷和墨尔本-维本纳)
      • 单频测量的组合(相位减码和GRAPHIC)
    • 解析CCSDS跟踪数据消息文件的可能性
    • 测量生成
      • 通过定期事件检测器触发测量可行性(地面可见性、夜间地面、阳光照射的卫星、卫星之间的直接视图、布尔组合...)
      • 将测量调度为固定步长流(可选择与UTC时间对齐)
      • 将测量调度为高速突发休息期(可选择与UTC时间对齐)
      • 可以自定义测量调度
  • GNSS

    • 计算精度稀释度(Dilution Of Precision)
    • 加载ANTEX天线模型文件
    • 加载和写入RINEX观测文件(版本2、3和4)
    • 加载RINEX导航文件(版本2、3和4)
    • 支持Hatanaka紧凑型RINEX格式
    • 加载SINEX文件(可以加载站点位置、偏心、EOP和差分码偏差)
    • 加载RINEX钟差文件(版本2和版本3)
    • 解析所有星座的IGS SSR消息(版本1)
    • 解析RTCM消息(星历和校正消息)
    • 解析GPS射频链路二进制消息
    • GNSS测量平滑的Hatch滤波器
    • Ntrip协议的实现
    • 解码GPS导航消息
  • 轨道文件处理

    • 加载和写入SP3轨道文件(从版本a到d)
    • 加载和写入CCSDS轨道数据消息(支持OPM、OEM、OMM和OCM类型,以KVN和XML格式,独立或组合的NDM)
    • 加载GPS星座的SEM和YUMA文件
    • 以CCSDS OEM和OCM文件格式导出星历
    • 加载ILRS CPF轨道文件
    • 以STK格式导出星历
  • 地球模型

    • 大气模型(DTM2000、Jacchia-Bowman 2008、NRL MSISE 2000、Harris-Priester和简单指数模型),以及Marshall太阳活动未来估计,可选择包括升力分量
    • 支持CSSI空间天气数据
    • 支持JB2008大气模型的SOLFSMY和DTC数据
    • 对流层延迟(修改的Saastamoinen模型、估计的、固定的)
    • 对流层映射函数(Vienna 1、Vienna 3、Global、Niell)
    • 对流层折射修正角度(Recommendation ITU-R P.834-7和Meeus引用的Saemundssen公式)
    • 激光测距的对流层模型(Marini-Murray、Mendes-Pavlis)
    • Klobuchar电离层模型(包括从伯尔尼大学天文学研究所文件中解析α和β系数)
    • 全球电离层图(GIM)模型
    • NeQuick电离层模型
    • 使用单层模型(SLM)电离层映射函数的VTEC估计电离层模型
    • 全球压力和温度模型(GPT和GPT2)
    • 地磁场(WMM、IGRF)
    • 来自任何重力场的大地水准面模型
    • 由于潮汐引起的地面点位移
    • 将感兴趣的区域划分为瓦片
    • 将感兴趣的区域采样为点网格
    • 使用loxodromes(通常为等角线)构建轨迹
  • 碰撞

    • 加载和写入CCSDS碰撞数据消息(CDM,以KVN和XML格式)

    • 基于短期相遇和球形体的2D碰撞概率计算方法:

      • Chan 1997
      • Alfriend 1999
      • Alfriend 1999(最大版本)
      • Alfano 2005
      • Patera 2005(自定义Orekit实现)(推荐)
      • Laas 2015(推荐)
  • 可定制的数据加载

    • 通过浏览本地磁盘上的文件夹层次结构加载
    • 从本地磁盘上的显式文件列表加载
    • 从类路径加载
    • 从网络加载(甚至通过互联网代理)
    • 支持zip归档
    • 加载时自动解压缩gzip压缩(.gz)文件
    • 加载时自动解压缩Unix压缩(.Z)文件
    • 加载时自动解压缩Hatanaka压缩文件
    • 插件机制,可以添加过滤器,如自定义解压缩算法、解密或监视
    • 插件机制,可以将加载委托给用户定义的数据库或数据访问库
    • 可以拥有不同的数据上下文(一种分离EOP、闰秒等集合的方式)
  • 支持多种语言

    • 丹麦语
    • 英语
    • 法语
    • 加利西亚语
    • 德语
    • 希腊语
    • 意大利语
    • 挪威语
    • 罗马尼亚语
    • 西班牙语
  • Orekit提供的顶级包如下:

Orekit顶级包

免费软件

Orekit以源代码和二进制格式免费提供,附带所有相关文档和测试。

它采用Apache License Version 2.0进行分发。这是一种广为人知的商业友好许可证。这意味着任何人都可以使用它来构建任何应用程序,无论是免费还是付费。对于您自己的代码没有任何限制。

鼓励每个人将Orekit作为共同的低级别层来提高空间系统的互操作性。

维护的库

Orekit自2002年以来一直在CS GROUP内开发,并由其专家和开放社区继续使用和维护。它采用一种功绩主义的治理模式,项目管理委员会涉及来自工业界(CS、Thales Alenia Space、Applied Defense Solutions)、研究界(Naval Research Laboratory)、机构(European Space Operations Centre、European Space Research and Technology Centre)和学术界(University at Buffalo、Institut National Supérieur de l'Aéronautique et de l'Espace - Sup'Aéro)的参与者。

Orekit已经成功用于法国国家航天研究中心(CNES)和欧洲航天局(ESA)对自动转移飞行器(ATV)与国际空间站(ISS)之间的交会对接阶段进行实时监测。

Orekit已于2011年初被CNES选中作为其下一代航天飞行动力学系统的基础,包括操作系统、研究系统和任务分析系统。

它已在世界各地的众多研究和操作系统中使用。