1
- # RINEx
1
+ # RINEX
2
2
3
3
[ ![ crates.io] ( https://img.shields.io/crates/v/rinex.svg )] ( https://crates.io/crates/rinex )
4
4
[ ![ rustc] ( https://img.shields.io/badge/rustc-1.64%2B-blue.svg )] ( https://img.shields.io/badge/rustc-1.64%2B-blue.svg )
5
5
[ ![ crates.io] ( https://docs.rs/rinex/badge.svg )] ( https://docs.rs/rinex/badge.svg )
6
6
[ ![ Rust] ( https://github.com/georust/rinex/actions/workflows/daily.yml/badge.svg )] ( https://github.com/georust/rinex/actions/workflows/daily.yml )
7
7
8
- * RINEx * is a * GeoRust* crate that aims at supporting all RINEx formats, enabling advanced GNSS post processing. That means:
8
+ * RINEX * is a * GeoRust* crate that aims at supporting all RINEX formats, enabling advanced GNSS post processing. That means:
9
9
10
10
- Parsing: text files decoding and datasets interpretation
11
11
- Analysis: data post processing, like post processed navigation
12
12
- Production: text file formatting (encoding), which is currently
13
13
limited because we're still actively working on the Parsing/Analysis steps.
14
14
15
- Several RINEx formats exist, among those we support:
15
+ Several RINEX formats exist, among those we support:
16
16
17
- * Observation RINEx
18
- * CRINEx (Compact RINEx )
19
- * Navigation RINEx
20
- * Meteo RINEx
21
- * Clock RINEx
22
- * IONEx
23
- * ANTEx
17
+ * Observation RINEX
18
+ * CRINEX (Compact RINEX )
19
+ * Navigation RINEX
20
+ * Meteo RINEX
21
+ * Clock RINEX
22
+ * IONEX
23
+ * ANTEX
24
24
25
25
[ Refer to the front-page table] ( https://github.com/georust/rinex?tab=readme-ov-file#formats--revisions )
26
26
for more details on supported formats.
@@ -31,16 +31,16 @@ introduced either by `TEQc` or `RTKlib`.
31
31
32
32
## Crate features
33
33
34
- The RINEx library supports all RINEx formats and revisions natively,
35
- that includes the CRINEx compression algorithm.
34
+ The RINEX library supports all RINEX formats and revisions natively,
35
+ that includes the CRINEX compression algorithm.
36
36
37
37
We have one crate feature per file format, to either unlock specific methods
38
38
or Iterators. It allows going deeper into one topic. For example, the ` obs ` feature is
39
- related to Observation RINEx files and unlocks the signal combination
39
+ related to Observation RINEX files and unlocks the signal combination
40
40
method, which is a post processing method. Another example, would be the ` meteo ` feature
41
41
which unlocks ` [Rinex::rain_detected] ` which is a direct exploitation of one of its specific Iterators.
42
42
43
- ## RINEx and Gzip compression
43
+ ## RINEX and Gzip compression
44
44
45
45
The great ` flate2 ` library allows us to support Gzip compression and decompression.
46
46
Compile our library with this option for seamless support (both ways).
@@ -54,20 +54,20 @@ It is the root base of our post processing capabilities.
54
54
55
55
## Navigation feature
56
56
57
- The ` nav ` feature is tied to the Navigation RINEx format.
57
+ The ` nav ` feature is tied to the Navigation RINEX format.
58
58
59
59
It not only unlocks specific Iteration methods, but also integrates Ephemeris
60
60
interpretation and associated calculations, mostly the Kepler solvers
61
61
that allows navigation from radio messages. It is the root base to radio based
62
- post processed navigation using RINEx .
62
+ post processed navigation using RINEX .
63
63
64
64
If you're interested in post processed navigation using the RINEX library, you will
65
65
need to activate this feature.
66
66
67
67
## Post processing feature(s)
68
68
69
69
Parsing is typically only the first of many steps in a post processing pipeline.
70
- RINEx datasets are complex and can rarely be processed "as is".
70
+ RINEX datasets are complex and can rarely be processed "as is".
71
71
72
72
We have a ` processing ` feature that is ` qc ` dependent and goes deeper
73
73
in the post processing operations. For example, it unlocks
@@ -77,13 +77,14 @@ A post processing pipeline will most likely require this feature to be activated
77
77
78
78
Although * RINEX* knows how to physically interprate a dataset, anything
79
79
that is beyond that is out of scope of this library.
80
- The [ Qc library ] ( https://docs.rs/rinex-qc/latest/rinex_qc/ )
81
- which is also part of the * GeoRust * reposiroty, was developped for that very purpose.
82
- It allows advanced exploitations of RINEx, stacking several files to create a superset and much more .
80
+
81
+ You should refer to the [ GNSS Qc library ] ( https://docs.rs/gnss-qc/latest/gnss_qc/ ) for
82
+ that very purpose. It allows advanced exploitations of RINEX .
83
83
Only this library may answer the requirements of GNSS post processing.
84
+
84
85
If you're interested
85
86
in post processed Navigation for example, you are probably more interested in
86
- using our ` Qc ` library instead of simply * RINEx * .
87
+ using the ` Qc ` library than simply * RINEX * .
87
88
88
89
## SBAS and Geostationary :artificial_satellite :
89
90
@@ -103,8 +104,13 @@ It is used by `rinex-cli+debug` for developper verifications.
103
104
## Applications
104
105
105
106
Several applications were and are being built based on RINEX, among those we can cite
106
- [ rinex-cli] ( https://github.com/georust/rinex-cli ) which allows parsing, plotting,
107
- processing similary to ` teqc ` , generating geodetic surveys, solve ppp and cggtts solutions
107
+ [ the RTK-rs framework] ( https://github.com/rtk-rs ) with:
108
+ - [ rinex-cli] ( https://github.com/rtk-rs/rinex-cli ) that allows RINEX post processing.
109
+ It has options similar to TEQc and can solve PVT solutions like RTKlib.
110
+ - [ crx2rnx] ( https://github.com/rtk-rs/crx2rnx ) which aims at becoming a modern replacement of the
111
+ historical tool
112
+ - [ rnx2crx] ( https://github.com/rtk-rs/rnx2crx ) which aims at becoming a modern replacement of the
113
+ historical tool
108
114
109
115
## Licensing
110
116
@@ -113,23 +119,6 @@ The RINEX folder is licensed under either of:
113
119
* Apache Version 2.0 ([ LICENSE-APACHE] ( http://www.apache.org/licenses/LICENSE-2.0 ) )
114
120
* MIT ([ LICENSE-MIT] ( http://opensource.org/licenses/MIT )
115
121
116
- File name conventions and behavior
117
- ==================================
118
-
119
- File production
120
- ===============
121
-
122
- [ ProductionAttributes] stores the information representing the file production context.
123
- This information is described by file names that follow standard conventions.
124
- If you come from a file that does not follow these conventions, we have no means to fully
125
- determine a V3 (lengthy) file name. We developped a smart guesser to figure out
126
- most of the fields, which particularly applies to high quality datasets. In other words,
127
- you can use the RINEX library as a file name convention generator. If your data is realistic,
128
- the smart guess will figure the proper filename to use.
129
-
130
- Coming from randomly named filenames, V3 (lengthy) filenames can never be fully be figured out,
131
- you need to provide some [ ProductionAttributes] fields yourself.
132
-
133
122
Getting Started
134
123
===============
135
124
@@ -180,3 +169,18 @@ This may apply to two scenarios:
180
169
standard naming conventions but contain accurate data, and actually use this library to properly rename those
181
170
* stay focused on data production (actual data symbols) in production context, and use the guesser to
182
171
auto determine an accurate file name.
172
+
173
+ File production
174
+ ===============
175
+
176
+ [ ProductionAttributes] stores the information representing the file production context.
177
+ This information is described by file names that follow standard conventions.
178
+ If you come from a file that does not follow these conventions, we have no means to fully
179
+ determine a V3 (lengthy) file name. We developped a smart guesser to figure out
180
+ most of the fields, which particularly applies to high quality datasets. In other words,
181
+ you can use the RINEX library as a file name convention generator. If your data is realistic,
182
+ the smart guess will figure the proper filename to use.
183
+
184
+ Coming from randomly named filenames, V3 (lengthy) filenames can never be fully be figured out,
185
+ you need to provide some [ ProductionAttributes] fields yourself.
186
+
0 commit comments