Skip to content

Commit 5c0e689

Browse files
authored
Develop (#9)
* Documentation & tool update --------- Signed-off-by: Guillaume W. Bres <[email protected]>
1 parent 0467f4e commit 5c0e689

File tree

24 files changed

+595
-333
lines changed

24 files changed

+595
-333
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# Generated by Cargo
22
# will have compiled files and executables
33
debug/
4-
data/
54
target/
65

6+
data/
7+
WORKSPACE/
8+
79
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
810
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
911
Cargo.lock

Cargo.toml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ lazy_static = "1.4"
2727
thiserror = "2"
2828
itertools = "0.14"
2929
map_3d = "0.1.5"
30+
3031
maud = "0.26"
32+
plotly = "0.9"
3133

3234
clap = { version = "4.4.13", features = ["derive", "color"] }
3335
serde = { version = "1.0", default-features = false, features = ["derive"] }
@@ -36,17 +38,17 @@ kml = { version = "0.8.6", optional = true }
3638
gpx = { version = "0.10", optional = true }
3739
csv = { version = "1.3.0", optional = true }
3840

39-
plotly = "0.9"
40-
4141
anise = { version = "0.5.3", features = ["embed_ephem"] }
4242
hifitime = { version = "4.0", features = ["serde", "std"] }
4343

44-
gnss-rs = { version = "2.3.2", features = ["serde"] }
45-
gnss-rtk = { version = "0.7.5", features = ["serde"] }
46-
cggtts = { version = "4.2.0", features = ["serde", "scheduler"], optional = true }
44+
gnss-rs = { version = "2.3.5", features = ["serde"] }
4745
gnss-qc = { git = "https://github.com/rtk-rs/gnss-qc", branch = "main", features = ["sp3"] }
4846

49-
rinex = { git = "https://github.com/rtk-rs/rinex", branch = "main", features = ["obs", "nav", "ionex", "antex", "clock", "flate2", "processing", "serde"] }
50-
5147
sp3 = { git = "https://github.com/rtk-rs/sp3", branch = "main", features = ["processing", "anise", "flate2", "serde"] }
5248

49+
rinex = { git = "https://github.com/rtk-rs/rinex", branch = "main", features = ["obs", "nav", "ionex", "antex", "clock", "flate2", "processing", "serde"] }
50+
51+
gnss-rtk = { git = "https://github.com/rtk-rs/gnss-rtk", branch = "nav_x4", features = ["serde"] }
52+
# gnss-rtk = { path = "../gnss-rtk", features = ["serde"] }
53+
54+
cggtts = { version = "4.2.0", features = ["serde", "scheduler"], optional = true }

README.md

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,17 @@ Download the version you are interested in:
2929
git clone https://github.com/rtk-rs/rinex-cli
3030
```
3131

32-
And build it using cargo:
32+
This will build and install the stripped binary to `${HOME}/.cargo/bin`, which
33+
is usally defined in the ${PATH}. Because our examples span all applications, you should
34+
activate `--all-features`:
3335

3436
```bash
35-
cargo build --all-features -r
37+
cargo install --all-features --path .
38+
39+
rinex-cli --version
40+
41+
which rinex-cli
42+
${HOME}/.cargo/bin/rinex-cli
3643
```
3744

3845
## File formats & revisions
@@ -64,32 +71,44 @@ Summary:
6471

6572
## Documentation
6673

67-
If you intend to run our examples and tutorials on your side,
68-
you are expected to execute the `tools/download-data.sh` script first,
69-
which will retrieve the GeoRust/RINEX verification and test data, that we use
70-
for demonstration purposes. On linux, you can:
74+
If you intend to run our examples and tutorials,
75+
you are expected to first source our `tools/download-data.sh` script.
76+
It will download our test data (a few RINEX files) and define the example environment:
7177

7278
```bash
73-
./tools/download-data.sh
79+
source tools/download-data.sh
80+
echo $DATA_DIR
7481
```
7582

76-
Once you have installed the tool, read
83+
Once you have installed the tool, read the first few steps:
84+
85+
- [File loading interface](./documentation/FileLoading.md): learn how to load data into the toolbox
86+
- [The Preprocessor documentation](./documentation/Preprocessor.md) will teach you
87+
how design a filter and deploy up to complex processing pipelines
88+
- [The Input / Output page](./documentation/InputOutput.md) summarizes the output you can
89+
generate, based on your input products
90+
91+
Then, continue your learning journey with:
92+
93+
- [The Merge operation](./documentation/Merge.md): to merge RINEX files together,
94+
which is particularly useful in Data production context & files management
95+
96+
- [The Split operation](./documentation/Split.md): demonstrates how to
97+
split one RINEX file into two
98+
99+
- [Time Binning operation](./documentation/Tbin.md): allows creating a batch of RINEX
100+
from a single one (basically, dividing into sub-parts)
101+
102+
- [The differentiation operation](./documentation/Diff.md): to create a special RINEX
103+
by substracting one from the other
104+
105+
Dive into the world of precise navigation:
77106

78-
- [The file loading documentation](./documentation/FileLoading.md) that will teach you
79-
how to load data into the toolbox
80-
- [The Preprocessor documentation](./documentation/Preprocessor.md) that will teach you
81-
how design a filter
82-
- [The Merge operation documentation](./documentation/Merge.md)
83-
- [The Split operation documentation](./documentation/Split.md)
84-
- [The Time Binning operation documentation](./documentation/Tbin.md)
85-
- [The Differentiation operation documentation](./documentation/Diff.md)
86-
- [The PPP opmode documentation](./documentation/PPP.md)
87-
- [The PPP with special CGGTTS option documentation](./documentation/CGGTTS.md)
107+
- [Introduction to the PPP (Post Processed Positioning) opmode](./documentation/PPP.md)
88108

89-
## Examples
109+
- [Focus on the PPP +cggtts special option](./documentation/CGGTTS.md)
90110

91-
We provide a set of [(command line) examples](./examples) written in Shell,
92-
that cover most applications.
111+
- [Many examples](./examples/README.md) are provided, spanning many applications
93112

94113
Special Thanks
95114
==============

data/.gitkeep

Whitespace-only changes.

documentation/Diff.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ rinex-cli \
1414
diff data/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz
1515
```
1616

17-
Example (2): merging two CRINEX files together.
17+
Example (2): differentiate two CRINEX together
1818

1919
```bash
2020
rinex-cli \

documentation/FileLoading.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ rinex-cli -q -d data/
3737

3838
## File naming conventions
3939

40-
The toolbox can operate on files that do not follow standard naming conventions.
40+
The toolbox accepts files that do not follow standard naming conventions.
41+
4142
Note that working with files that do not following standard naming conventions will limit our
4243
smart file production capabilities. See [File Operations](./FileOperations) for more information.
44+
45+
## Tutorials
46+
47+
The output product you can generate, [now depends on the operation you will select
48+
and the input you just loaded](./InputOutput.md)

documentation/FileProduction.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
File Production
2+
===============
3+
4+
5+
`rinex-cli` allows many operations to synthesize and rework RINEX data.
6+
This is particularly useful when managing a batch of RINEX, or in the context
7+
of file production and publication.
8+
9+
Because RINEX wraps many information, `rinex-cli` had to offer some means to
10+
customize and define

documentation/InputOutput.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
Input / Output
2+
==============
3+
4+
This table summarizes the output product you can generate,
5+
based on the selected opmode and the input product.
6+
7+
`opmode` is the operation you requested. This toolbox
8+
supports one operation per run (to simplify internal logic),
9+
it will then adapt to the provided context.
10+
11+
Quality Control (QC) is the default mode, and synthesizes a report.
12+
13+
14+
| Input | Opmode | Second argument | Application | Output product(s) |
15+
|----------------------|---------------------|-------------------|----------------------------------------|--------------------|
16+
| RINEX | None | None | RINEX QC | report.html |
17+
| SP3 | None | None | SP3 QC | report.html |
18+
| RINEX + SP3 | None | None | Post processed, High precision geodesy | report.html |
19+
20+
`merge` I/O:
21+
22+
| Input | Opmode | Second argument | Application | Output product(s) |
23+
|----------------------|---------------------|----------------------------------------|--------------------|--------------------|
24+
| RINEX | merge | RINEX File | File management | Merged RINEX |
25+
| RINEX | merge | RINEX File `+rnx2crx` | File management | Merged CRINEX |
26+
| CRINEX | merge | RINEX File | File management | Merged CRINEX |
27+
| CRINEX | merge | RINEX File `+crx2rnx` | File management | Merged RINEX |
28+
29+
`filegen` I/O:
30+
31+
| Input | Opmode | Second argument | Application | Output product(s) |
32+
|----------------------|---------------------|----------------------------------------|--------------------|---------------------|
33+
| RINEX | filegen | None | File management | RINEX |
34+
| RINEX | filegen | `+rnx2crx` | File management | CRINEX |
35+
| CRINEX | filegen | `+crx2rnx` | File management | RINEX |
36+
| RINEX /CRINEX | filegen | `+csv` | File management | Observations to CSV |
37+
| NAV RINEX | filegen | `+csv` | File management | Ephemeris to CSV |
38+
39+
`tbin` I/O:
40+
41+
| Input | Opmode | Second argument | Application | Output product(s) |
42+
|----------------------|---------------------|----------------------------------------|--------------------|---------------------|
43+
| RINEX | tbin | Duration | File management | RINEX Batch |
44+
| RINEX | tbin | Duration `+rnx2crx` | File management | CRINEX Batch |
45+
| CRINEX | tbin | Duration `+crx2rnx` | File management | RINEX Batch |
46+
47+
`diff` I/O:
48+
49+
| Input | Opmode | Second argument | Application | Output product(s) |
50+
|----------------------|---------------------|----------------------------------------|--------------------|---------------------|
51+
| RINEX | diff | Reference RINEX File | File management | Special RINEX(A-B) |
52+
| CRINEX | diff | Reference RINEX File | File management | Special CRINEX(A-B) |
53+
| CRINEX | diff | Reference RINEX File `+crx2rnx` | File management | Special RINEX(A-B) |
54+
| RINEX | diff | Reference RINEX File `+rnx2crx` | File management | Special CRINEX(A-B) |
55+
56+
All `File Mangement` application [accept many options](./FileProduction.md) that will let you customize your production context.
57+
58+
59+
## Tutorials
60+
61+
Continue with reading the documentation of the [opmode(s) you are interested in](../README.md),
62+
follow our [examples](../examples/README.md) that span many applications.

documentation/PPP.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
Post Processed Positioning
2+
==========================
3+
4+
`rinex-cli` offers RINEX and SP3 exploitation
5+
for high precision post processed navigation.
6+
7+
This mode is summoned with the `ppp` option, it accepts
8+
a custom configuration script and deploys after a possible preprocessing pipeline.
9+
10+
Examples
11+
========
12+
13+
We host many [Navigation examples](../PPP) spanning all use cases.
14+
We recommend reading this page prior getting started.
15+
16+
RINEX-Cli behavior
17+
==================
18+
19+
The tool's behavior is dictated by the input products.
20+
If you only provide RINEX products, you place yourself in the real-time/BRDC scenario.
21+
The tool will consume all observations remaining after the preprocessing pipeline.
22+
If you stacked many RINEX (for example, 2x24h=48h surveying), will we consume all of them in chronological order.
23+
But you have to be aware of data gaps.

examples/CONFIG/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Configuration scripts
2+
=====================
3+
4+
Advanced opmodes like `ppp` or `cggtts` may accept a configuration script
5+
that allows advanced tuning.
6+
7+
The Complete [Configuration documentation can be found here](https://github.com/rtk-rs).
8+
9+
- Configurations that are designed for the [SPP Navigation Technique/Strategy](./SPP)
10+
- Configurations that are designed for the [CPP (Dual Pseudo Range) Navigation Technique/Strategy](./CPP)

0 commit comments

Comments
 (0)