#rinex #decompression #compression #crinex

yanked hatanaka

RINEX Compression & Decompression tool

1.0.0 Apr 10, 2022
0.1.0 Apr 8, 2022
0.0.2 Mar 27, 2022
0.0.1 Mar 9, 2022

#8 in #rinex

Custom license and GPL-3.0 licenses

1.5MB
170 lines

Hatanaka

crates.io License License crates.io
Rust

RINEX file compression and decompression tool.

This tool is based on the RINEX crate.

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 section of the library.

Supported revisions

  • CRINEX1
  • CRINEX3

CRINEX2 was never released

CRINEX

RINEX Compression is an algorithm designed for Observation Data RINEX.

Getting started

Decompress a CRINEX file with -d

hatanaka -d --filepath data/V1/wsra0010.21d

By default this would produce a data/V1/wsra0010.21o RINEX file,
to respect naming conventions.

hatanaka -d --filepath data/V3/KUNZ00CZE.crx

By default this would produce a data/V3/KUNZ00CZE.rnx RINEX file,
to respect naming conventions.

To change the default output file name, use the -o flag :

hatanaka -d --filepath data/V1/wsra0010.21d -o /tmp/v1/output.rnx
hatanaka -d --filepath data/V3/KUNZ00CZE.crx -o /tmp/v3/output.rnx

--strict flag for modern OBS Data

CRX2RNX violates RINEX standard when decompressing V > 2 (modern) RINEX Observation data,
because decompressed epochs are not contrainted to 80 characters.

By default and at the moment, this tool behaves like CRX2RNX.

Next release will propose a flag to change that behavior and strictly follow RINEX specifications:

hatanaka -d -s --filepath data/V3/KUNZ00CZE.cnx

This flag has no impact when dealing with old RINEX files.

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:

hatanaka -d -M 8 --filepath data/V3/KUNZ00CZE.cnx

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

Dependencies

~10MB
~211K SLoC