GithubHelp home page GithubHelp logo

nekyia27 / georustrinex Goto Github PK

View Code? Open in Web Editor NEW

This project forked from georust/rinex

0.0 0.0 0.0 34.46 MB

RINEX compression, analysis & processing :artificial_satellite:

License: Apache License 2.0

Shell 0.24% Python 0.65% Rust 99.10%

georustrinex's Introduction

RINEX

Rust crates.io crates.io

minimum rustc: 1.64 License License

Rust tool suites to parse, analyze and process RINEX Data.

The Wiki pages contain all the documentation of this project, including several examples spanning different applications of GNSS.

If you have any question or experience any problems, feel free to open an issue on Github.
You can also contact us on our Discord channel

Advantages ๐Ÿš€

  • Fast ๐Ÿฆ€
  • Open sources
  • Seamless Hatanaka compression and decompression
  • Seamless Gzip decompression with flate2 build option
  • RINEX V4 full support
  • Meteo RINEX full support
  • IONEX 2D support. Partial IONEX 3D support.
  • Partial ANTEX support
  • Parial Clock RINEX support
  • Several pre processing operations:
    • File merging
    • Time binning
    • Filtering..
  • Several post processing operations
  • All modern GNSS constellations
  • Modern GNSS codes and signals
  • Time scales: GPST, BDT, GST, UTC
  • Supports many SBAS, refer to online documentation
  • High precision RINEX (carrier phase micro cycle precision)
  • High precision orbit support (SP3)
  • Quality Check (QC): file quality and statistical analysis to help precise positioning (historical teqc function).
  • SPP: Single Point Positioning
  • PPP: Precise Point Positioning is work in progress โš ๏ธ

Disadvantages โš ๏ธ

  • QZNSST is represented as GPST at the moment.
  • We're waiting for Hifitime V4 to support GLONASST and IRNSST.
    Until then, orbital calculations on these systems are not feasible.
    In other term, positioning is not feasible and you're limited to basic analysis.
  • These tools are oriented towards the latest revisions of the RINEX format. RINEX4 is out and we already support it. Some minor features in the RINEX2 or 3 revisions may not be supported.
  • Our command line applications do not accept BINEX or other proprietary formats
  • File production is not fully concluded to this day. We're currently focused on RINEX post processing rather than RINEX data production. Do not hesitate to fork and submit your improvements

Architecture

  • rinex is the core library

  • rinex-cli : an application dedicated to RINEX post processing. It supports some of teqc operations. It integrates a position solver and can format CGGTTS tracks for clock comparison. The application is auto-generated for a few architectures, download it from the release portal

  • sp3 High Precision Orbits (by IGS)

  • rnx2crx is a RINEX compressor (RINEX to Compact RINEX)

  • crx2rnx is a CRINEX decompresor (Compact RINEX to RINEX)

  • rinex-qc is a library dedicated to RINEX files analysis

  • qc-traits declares Traits that are shared between rinex and rinex-qc

  • sinex SNX dedicated core library

  • ublox-rnx is an application intended to generate RINEX Data from raw uBlox GNSS receiver frames. This application is work in progress at the moment.

Other tools and relevant Ecosystems

RINEX formats & applications

Type Parser Writer CLI UBX Content Record browsing
Navigation (NAV) โœ”๏ธ Ephemeris ๐Ÿšง V4 ๐Ÿšง โœ”๏ธ ๐Ÿ“ˆ ๐Ÿšง Orbit parameters, Ionospheric models.. Epoch iteration
Observation (OBS) โœ”๏ธ โœ”๏ธ โœ”๏ธ ๐Ÿ“ˆ ๐Ÿšง Phase, Pseudo Range, Doppler, SSI Epoch iteration
CRINEX (Compressed OBS) โœ”๏ธ RNX2CRX1 โœ”๏ธ RNX2CRX3 ๐Ÿšง โœ”๏ธ ๐Ÿ“ˆ ๐Ÿšง Phase, Pseudo Range, Doppler, SSI Epoch iteration
Meteorological data (MET) โœ”๏ธ โœ”๏ธ โœ”๏ธ ๐Ÿ“ˆ ๐Ÿšง Meteo sensors data (Temperature, Moisture..) Epoch iteration
Clocks (CLK) โœ”๏ธ ๐Ÿšง ๐Ÿšง ๐Ÿšง Clock comparison Epoch iteration
Antenna (ATX) โœ”๏ธ ๐Ÿšง ๐Ÿšง ๐Ÿšง Antenna calibration data Sorted by antex::Antenna
Ionosphere Maps (IONEX) โœ”๏ธ ๐Ÿšง โœ”๏ธ ๐Ÿ“ˆ ๐Ÿšง Ionosphere Electron density Epoch iteration
SINEX (SNX) ๐Ÿšง ๐Ÿšง โž– ๐Ÿšง SINEX are special RINEX, they are managed by a dedicated core library Epoch iteration
Troposphere (TRO) ๐Ÿšง ๐Ÿšง โ“ ๐Ÿšง Troposphere modeling Epoch iteration
Bias (BIA) โœ”๏ธ ๐Ÿšง โ“ ๐Ÿšง Bias estimates, like DCB.. Epoch iteration

โœ”๏ธ means all revisions supported
๐Ÿšง : Work in Progress
CLI + ๐Ÿ“ˆ means the cli app provides one or several visualizations

The cli app accepts more than RINEX input, for example SP3 (high precision orbits) are accepted.

File formats

Format File name restrictions Support
RINEX โž– โœ”๏ธ
CRINEX โž– โœ”๏ธ
gzip compressed RINEX Name must end with .gz --flate2 feature must be enabled
gzip compressed CRINEX Name must end with .gz --flate2 feature must be enabled
SP3 โž– โœ”๏ธ
gzip compressed SP3 Name must end with .gz --flate2 feature must be enabled

โž– No restrictions: file names do not have to follow naming conventions.

Benchmarking

Test Results
textdiff/decompression/epoch 979.55 ns
textdiff/decompression/flag 147.16 ns
numdiff/decompression/small 191.86 ns
numdiff/decompression/big 1.0973 ยตs
parsing/OBSv2/zegv0010.21o 951.40 ยตs
parsing/OBSv3/ACOR00ESP 4.1139 ms
processing/esbc00dnkr2021/mask:gnss 352.81 ms
processing/esbc00dnkr2021/mask:obs 438.73 ms
processing/esbc00dnkr2021/mask:sv 341.42 ms
processing/esbc00dnkr2021/smooth:hatch:l1c,l2c 502.90 ms

Special Thanks

These tools would not exist without the great libraries written by C. Rabotin, check out his work.

Some features would not exist without the invaluable help of J. Lesouple, through our countless discussions. Check out his PhD manuscript (french)

Contributions

Contributions are welcomed, do not hesitate to open new issues and submit Pull Requests through Github.

If you want to take part in active developments, check out our contribution guidelines and hints to navigate this library quicker.

georustrinex's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.