Introduction
Raw GNSS data from receivers arrives in proprietary binary formats that are specific to each manufacturer. To perform analysis, post-processing, or archive data for future use, these proprietary formats must be converted to open, standardised formats - most importantly RINEX. Understanding the major GNSS data formats and the tools used to convert and work with them is an advanced but essential skill for serious GNSS analysis.
RINEX: The Universal Standard
The Receiver Independent Exchange Format (RINEX) was developed in 1989 and has become the universal standard for GNSS data exchange and post-processing. RINEX is an ASCII-based format, making it human-readable and editable with standard text tools. A RINEX dataset for a single session typically consists of two primary files:
- Observation File (.yyO or .obs): Contains the raw measurements - pseudoranges, carrier phases, Doppler, and SNR - for each satellite at each epoch. Each measurement is tagged with the satellite system identifier (G=GPS, R=GLONASS, E=Galileo, C=BeiDou) and signal code.
- Navigation File (.yyN, .yyG, .yyL, .yyP, or mixed .yyP): Contains the broadcast satellite ephemeris - the orbital parameters and clock coefficients that allow computation of satellite positions and clock corrections. RINEX 3 uses a mixed navigation file supporting all constellations.
RINEX 3 (current standard, versions 3.03–3.05) extends RINEX 2 to support all modern GNSS constellations and multi-frequency signals. RINEX 4, introduced in 2022, adds improved support for high-precision clock and orbit products. The RINEX file header section contains critical metadata including the antenna type, antenna height, approximate receiver position, and the signal types observed - errors in header metadata can propagate into processed results.
Converting Proprietary Formats to RINEX
Several tools handle binary-to-RINEX conversion:
- RTKCONV (part of RTKLIB): A free, open-source conversion tool supporting u-blox UBX, NovAtel OEM formats, Septentrio SBF, and RTCM. RTKCONV provides a graphical interface and a command-line version (convbin) for batch processing. It is the most widely used tool for open-hardware GNSS receivers.
- teqc (UNAVCO): The Translation, Editing, and Quality Checking tool was the industry standard for RINEX conversion and quality checking for decades. Its final version (2019) does not support RINEX 3 fully, making it increasingly deprecated for modern multi-constellation data.
- Anubis (GOP/ESA): A modern RINEX quality checking and editing tool that supports RINEX 3 and provides comprehensive quality statistics. Anubis can also perform format conversion and data editing.
- Manufacturer tools: u-blox provides u-center; NovAtel provides Convert4; Septentrio provides RxTools. These tools are optimised for their respective receiver formats.
RTCM 3.x Decoding
RTCM 3.x is the dominant format for real-time correction streams (via NTRIP) and is also used for raw data logging in some systems. The Multiple Signal Message (MSM) series within RTCM 3 carries complete raw observations in a receiver-independent format:
- MSM4: Pseudorange and carrier phase measurements (compact precision)
- MSM5: MSM4 plus Doppler measurements
- MSM7: Highest resolution pseudorange and carrier phase - the preferred format for precision post-processing
RTCM messages use variable-length binary encoding with CRC checks. RTKLIB''s str2str utility can receive and decode RTCM streams, and RTKCONV can convert RTCM files to RINEX.
NMEA Sentence Parsing
Despite its limitations for post-processing, NMEA data is often the only output available from embedded systems. Key sentences and their contents:
| Sentence | Key Fields | Precision Limitation |
|---|---|---|
| GGA | Time, lat/lon, fix quality, altitude, HDOP, age of differential | 0.0001 min lat/lon (~18 mm) |
| RMC | Time, status, lat/lon, speed, course, date | Same as GGA |
| GSA | Fix mode, satellite IDs used, PDOP, HDOP, VDOP | DOP to 2 decimal places |
| GSV | Satellites in view, elevation, azimuth, SNR per satellite | 1 dB SNR resolution |
| GNS | Multi-constellation position fix (modern alternative to GGA) | Same as GGA |
Precise Orbit and Clock Files
Standard GNSS broadcast ephemeris is accurate to roughly 1 metre for satellite positions and 1–2 ns for clocks. For Precise Point Positioning (PPP), far more accurate orbit and clock products are required:
- SP3 files (Standard Product 3): Provide precise satellite positions in an ECEF frame at 15-minute intervals (or 5-minute for ultra-rapid products). IGS provides final SP3 products with ~2.5 cm orbit accuracy, available ~13 days after observation.
- CLK files (RINEX Clock Format): Provide precise satellite clock corrections at 30-second (or 5-second) intervals with sub-100 ps accuracy. Combined SP3 and CLK products from IGS or commercial providers enable PPP solutions at the sub-decimetre level.
Practical Tools
RTKLIB is the most important open-source toolkit for GNSS data processing and format conversion. It includes RTKCONV (format conversion), RTKPOST (post-processing position computation), RTKPLOT (visualisation), and RTKNAVI (real-time processing). For advanced users, GNSS-SDR provides a software-defined GNSS receiver that can process raw RF samples and output RINEX data - enabling research into signal processing at the lowest level. Python libraries such as georinex and hatanaka simplify reading and writing RINEX files programmatically, enabling custom analysis pipelines.