Crates.io | rnx2cggtts |
lib.rs | rnx2cggtts |
version | 1.0.2 |
source | src |
created_at | 2023-11-28 07:39:03.252725 |
updated_at | 2023-12-27 18:27:50.497749 |
description | CGGTTS data generation from RINEX |
homepage | https://github.com/georust/rinex |
repository | https://github.com/georust/rinex |
max_upload_size | |
id | 1051682 |
size | 128,408 |
RNX2CGGTTS
is a command line tool to convert a RINEX context to CGGTTS.
This operation is special and dedicated to high precision timing and time transfer in particular.
CGGTTS is defined by BIPM and supported by the cggtts-rs library.
:warning: This application only works with CGGTTS 2E (latest revision) :warning:
From a coherent RINEX context generated by a single receiver from which we precisely know the location, RNX2CGGTTS uses the position solver to precisely resolve the receiver clock state.
This operation is the combination of the following libraries :
RINEX2CGGTTS requires at least one Observation RINEX file, and associated Navigation RINEX. SP3 is also ideal and highly recommended to be provided.
You should always inject data that comes from the same station (unique GNSS receiver).
Thefore, we don't recommend loading Observation data using the -d
option,
unless you store them in dedicated folders.
Loading each individual file with -f
is the most reasonnable approach.
Build the application with cargo. The RINEX ecosystem has some requirements on the minimal rustc version, refer to the general README :
git clone https://github.com/georust/rinex
cargo build --release
./target/release/rnx2cggtts -h
RNX2CGGTTS uses the same RINEX context definition and loading interface as RINEXCLI. Follow its guidelines to learn how to load your data context.
RNX2CGGTTS shares the same behavior and interface as RINEXCLI with activate positioning. Refer to the positioning part of its documentation and the gnss-rtk solver, to fully understand how to configure and operate the solver.
RNX2CGGTTS can preprocess the RINEX context as the RINXCLI application, learn how to operate the preprocessor to operate this tool efficiently.
Use a combination of the following arguments to load your context:
-f
(--fp
) to load files individually-d
to load a directory recursively.Accepted files :
Command line example :
TODO
TODO
In CGGTTS we're talking about 0.1 ns errors, therefore every fraction of delay counts.
The GNSS-RTK solver configuration can take into account two hardware induced source of delay [that are defined right here] and need to be correctly characterized and defined in your RNX2CGGTTS ops.
You can either define them in your configuration file (loaded with -c
), or define them indivually with
--rf-delay [ns]
to define the delay induced by the antenna and the RF cable prior the GNSS receiver--ref-delay [ns]
to define the cable delay between the receiver and its external 10MHz/1PPS sourceNote that both delays are always defined in nanoseconds (f64), whether it is through the command line interface or the configuration file.
RINEX2CGGTTS will generate :
--no-graph
is not specifiedRNX2CGGTTS will only form synchronous CGGTTS tracks as defined by BIPM.
Historically, the definition was closely tied to GPS ephemerides and receiver/hardware behavior and limitations.
Nowadays, we can safely say the defined scheduling is only there to provide synchronous CGGTTS tracks on both remote sites.
It is then easier to exchange CGGTTS files and perform the remote clock comparison: you don't need to interpolate anything.
Using RNX2CGGTTS (this app) and CGGTTS post processing [that app], we can perform a ""Time Transfer"" using a Common View method.
The need here is to compare two high quality but remote clocks.
For that, we use two local GNSS receivers that generate RINEX data.
With RNX2CGGTTS we resolve the local clock state against GPST (arbitrary).
Do that on both RINEX context and regroup the two CGGTTS tracks so we can compare them.
To illustrate that, we will two complete RINEX contexts from CDDDIS portal. I chose station AJAC located in South Corsica (France) and Nialesun (Norway) on day XXX year 2023.
Resolve the clock state and format it into CGGTTS, on both sites, using RNX2CGGTTS :
provide two examples here please
Compare the two remote clocks to one another using CGGTTSCLI :
example results please