CRX2RNX

crates.io License License

CRX2RNX is a command line tool to decompress RINEX files easily.

Yuki Hatanaka created a simple yet efficient method to compress RINEX files, it's called CRINEX,
latest revision is CRINEX3 and is specified here.

For more information on the actual compression algorithm, refer to the hatanaka object of the library.

Supported revisions

CRINEX2 was never released

CRINEX

RINEX Compression is an algorithm designed for Observation Data.

Getting started

Specify one file to decompress with --filepath or -f:

bash crx2rnx -f ../test_resoures/CRNX/V1/wsra0010.21d

This generates test_resoures/CRNX/V1/wsra0010.21o, to follow RINEX naming conventions.

To change that behavior and specify the output file, use --output or -o:

bash crx2rnx -f ../test_resoures/CRNX/V1/wsra0010.21d \ -o /tmp/output.rnx # custom location, does not follow naming conventions

bash crx2rnx -f ../test_resoures/CRNX/V3/ACOR00ESP_R_20213550000_01D_30S_MO.crx \ -o /tmp/output.rnx # custom location with standard V3 extension

:warning: File format restrictions

This tool currently follows the official CRX2RNX behavior, which does not follow RINEX specifications, in the sense that is produces epochs that exceed the 80 character width limitation

Epoch events

COMMENTS are preserved through compression / decompression, as you would expect.
Just like CRX2RNX, epochs with special events (flag > 2) are left untouched.
Therefore, explanations on these epochs events are preserved.

Compression algorithm & limitations

This tool uses an M=8 maximal compression order, which should be fine for all CRINEX ever produced,
considering they were probably produced by CRX2RNX which hardcodes an M=5 limitation.

Unlike CRX2RNX, this tool is not limited to an hardcoded M value, you can increase the default value if you think higher
compression will be encountered in a given file: bash crx2rnx -M 10 \ --filepath ../test_resoures/CRNX/V3/KUNZ00CZE.cnx # increase maximal compression order

According to Y. Hatanaka's publication, optimum compression performances are obtained for a 4th order compression,
therefore with default parameters.