Rugged是一个中级的与任务无关的库。它依赖于Orekit库和Hipparchus库。它本身旨在通过一个或多个图像处理应用程序从任务特定的接口使用。
Java平台提供运行时环境,Hipparchus库提供数学算法(3D几何,根求解器...),Orekit库提供空间飞行动力学计算(坐标系转换,轨道和姿态传播和插值...)。Rugged库本身以与任务无关的方式提供与数字高程模型的视线交叉相关的算法。Rugged本身不解析DEM模型,也不执行图像处理。任务相关的部分(包括数字高程模型解析或仪器视图模型创建)由Rugged调用者负责,通常使用多个图像处理应用程序使用的任务特定库。
这种架构使得图像处理应用程序和任务特定接口尽可能独立于空间飞行动力学和几何。因此,这些部分可以由图像处理专家实现。应用程序甚至可以用C++等编程语言编写,这个层次上不需要Java语言。预期任务特定接口使用Java语言编写,以简化与底层的数据交换并避免复杂的数据转换。数据转换仅在图像处理应用程序和接口层之间进行,并且仅限于少量高级函数和少量原始类型(像素或地面坐标的原始数组)。
Rugged库是用Java语言开发的,并且可以完全访问Orekit和Hipparchus库。它由空间飞行动力学和几何专家设计和开发,得到了图像处理专家对API定义的支持。
下表将各个层级之间的各个主题进行了分类。
主题 | 层 | 评论 |
---|---|---|
传感器到地面的映射 | 坚固 | 直接位置是提供的基本功能 |
地面到传感器的映射 | 坚固 | 反向位置是另一个提供的基本功能 |
单个像素 | 坚固 | API支持由调用者提供的任意数量的像素,通过它们的个别视线定义 |
光学路径 | 接口 | 通过计算包括所有内部反射的整体变换,考虑到航天器内部的折叠光学路径,因此每个像素位置和视线可以通过与航天器质心的单个平移和旋转来计算 |
线时间戳 | 接口/坚固 | 调用者必须提供一个简单的时间戳模型(通常是线性的),将被应用 |
轨道和姿态插值 | Orekit | 由于Orekit简化的传播器架构,可以进行从时间戳位置样本的简单插值和完整轨道传播 |
CCSDS轨道/姿态文件解析 | Orekit | 只要使用标准的CCSDS轨道数据消息(CCSDS 502.0-B-2)和CCSDS姿态数据消息(CCSDS 504.0-B-1),就支持此功能 |
自定义轨道/姿态文件解析 | 接口 | 可以通过特定于任务的读取器加载自定义文件,并将轨道/姿态状态列表提供给Orekit,Orekit能够从这些样本数据进行插值 |
参考框架转换 | Orekit | Orekit已经提供了对所有经典参考惯性和地球框架的全面支持(包括传统的EME2000、MOD、TOD,以及更现代的GCRF、ICRF、TIRF或像TEME或Veis1950这样的异国框架,以及几个版本的ITRF) |
IERS数据修正 | Orekit | 所有框架转换都支持IERS地球定向参数的完整集合修正,包括当然大的DUT1时间修正,但也包括对较旧的IAU-76/80或较新的IAU-2000/2006岁差章动模型以及极移的较小修正。框架级别的精度在亚毫米级别 |
网格高程模型 | 坚固 | 仅支持栅格高程模型 |
三角不规则网络高程模型 | 不支持 | 如果需要矢量高程模型,则必须将其转换为栅格形式以便使用 |
大地水准面计算 | Orekit | Rugged期望提供相对于参考椭球体的数字高程模型。Orekit可以用来从任何重力场直接将基于大地水准面的DEM转换为基于椭球体的DEM |
时间相关变形 | 接口/坎坷 | 可以使用简单的视线模型(通常是多项式) |
校准 | 图像处理或接口 | 校准阶段仍然在任务特定的调用者级别进行(像素几何,时钟同步...),调用者需要提供已经校准的视线 |
DEM文件解析 | 接口 | 高程模型专用于任务,有多种格式(DTED,GeoTIFF,原始数据...)。坎坷仅处理小纬度/经度单元上的原始高程 |
大气折射 | 抽象/坎坷 | 支持默认的多层模型进行大气折射校正。用户可以提供其他模型 |