#rinex #timing #gps #data-processing

app rnx2cggtts

RINEX到CGGTTS的数据生成

2个稳定版本

1.0.2 2023年12月27日
1.0.0 2023年11月28日

#1035科学

MIT/ApacheAGPL-3.0-or-later

1.5MB
27K SLoC

RNX2CGGTTS

crates.io License License

RNX2CGGTTS 是一个将RINEX上下文转换为CGGTTS的命令行工具。

此操作是专门针对高精度时间和时间传输的。

CGGTTS由BIPM定义,并由cggtts-rs库支持。

⚠️ 此应用程序仅适用于CGGTTS 2E(最新修订版)⚠️

RINEX和采样上下文

从由单个接收器生成的、我们知道其位置的完整RINEX上下文中,RNX2CGGTTS使用位置求解器来精确解决接收器时钟状态。

此操作是以下库的组合

  • RINEX:定义完整的RINEX上下文并解析它
  • CGGTTS:生成CGGTTS文件
  • Nyx Space库用于位置求解器
  • Nyx Hifitime用于精确定义时间和时间尺度

要求

RINEX2CGGTTS需要至少一个观测RINEX文件和相关的导航RINEX文件。SP3也是理想的选择,强烈推荐提供。

您应该始终注入来自同一站(唯一的GNSS接收器)的数据。
因此,我们不推荐使用-d选项来加载观测数据,除非您将它们存储在专用文件夹中。使用-f加载每个单独的文件是最合理的方法。

入门

使用cargo构建应用程序。RINEX生态系统对最小rustc版本有一些要求,请参阅通用README文件。

git clone https://github.com/georust/rinex
cargo build --release
./target/release/rnx2cggtts -h

RNX2CGGTTS使用与RINEXCLI相同的RINEX上下文定义和加载接口。按照其指南了解如何加载数据上下文。

RNX2CGGTTS与RINEXCLI具有相同的行为和界面,包括激活定位。请参阅其文档中的定位部分和gnss-rtk求解器,以全面了解如何配置和操作求解器。

RNX2CGGTTS 可以像 RINXCLI 应用一样预处理 RINEX 上下文,学习如何操作预处理器,以高效地使用此工具。

命令行示例

使用以下参数的组合来加载您的上下文

  • -f (--fp) 逐个加载文件。
  • -d 递归加载目录。

接受的文件

  • RINEX (<= V4)
  • SP3

命令行示例

TODO

警告:接收器坐标

待办事项

精确的硬件设置定义

在 CGGTTS 中,我们谈论的是 0.1 纳秒的误差,因此任何延迟部分都很重要。

GNSS-RTK 解算器配置需要考虑两个由硬件引起的延迟来源[在此定义],并需要在您的 RNX2CGGTTS 操作中正确地特化和定义。

您可以在配置文件(通过 -c 加载)中定义它们,或者使用以下方式单独定义:

    • 使用 --rf-delay [ns] 定义天线和射频电缆在 GNSS 接收器之前的延迟。
    • 使用 --ref-delay [ns] 定义接收器和其外部 10MHz/1PPS 源之间的电缆延迟。

请注意,这两种延迟始终以纳秒(f64)为单位定义,无论是通过命令行界面还是配置文件。

生成数据

RINEX2CGGTTS 将生成

  • 以使用的站(接收器)命名的 CGGTTS 文件。CGGTTS 包含一个轨迹
  • 与 RINXCLI 激活定位时获得的相同 txt 文件,但专注于时间组件,删除了空间坐标
  • txt 文件可视化,当未指定 --no-graph

同步 CGGTTS

RNX2CGGTTS 将仅形成由 BIPM 定义的定义的 同步 CGGTTS 轨迹。
历史上,该定义与 GPS 星历和接收器/硬件行为和限制密切相关。
如今,我们可以放心地说,定义的调度只是为了在两个远程站点上提供同步 CGGTTS 轨迹。
这样,更容易交换 CGGTTS 文件并执行远程时钟比较:您不需要进行任何插值。

人工卫星:使用 CGGTTS 文件进行通用视图时间传输

使用 RNX2CGGTTS(此应用)和 CGGTTS 后处理[该应用],我们可以使用通用视图方法执行“时间传输”。
这里的需要是比较两个高质量但远程的时钟。为此,我们使用两个生成 RINEX 数据的本地 GNSS 接收器。使用 RNX2CGGTTS,我们将本地时钟状态与 GPST(任意)进行解算。在 RINEX 上下文和重新组合两个 CGGTTS 轨迹,以便我们可以进行比较。

为了说明这一点,我们将从 CDDDIS 站点获取两个完整的 RINEX 上下文。我选择了位于法国科西嘉岛南部的站点 AJAC 和挪威的 Nialesun,日期为 2023 年 XXX。

使用 RNX2CGGTTS 在两个地点解决时钟状态,并将其格式化为 CGGTTS

provide two examples here please

使用 CGGTTSCLI 比较两个远程时钟

example results please

依赖关系

~38–50MB
~829K SLoC