Tutorial Series · Part 14 of 27
Working with Real GNSS Data: RINEX, Observations and Orbits
Introduce observation data, navigation data, RINEX concepts and simple visualisation.
Navigation from First Principles
This article is part of an ordered course. Use the previous and next links to stay in sequence.
After the conceptual GNSS posts, it helps to see what real receiver data looks like. The International GNSS Service describes GNSS data as receiver observation data, broadcast orbit information for tracked satellites, and supporting data from co-located instruments.1 RTKLIB is a useful open-source reference because it supports RINEX observation and navigation formats along with multiple GNSS positioning modes.2
What real data contains
A GNSS receiver does not simply output “latitude, longitude”. Under the hood it may record observations by satellite and epoch: code pseudorange, carrier phase, Doppler, signal strength, loss-of-lock indicators, and more.
A simplified observation record
A simple observation row can be thought of as:
where:
- is code pseudorange.
- is carrier phase.
- is Doppler.
- is carrier-to-noise density ratio.
For a single satellite, you can plot observation values over time and inspect gaps, jumps, and noise.
Interactive demo
The demo below uses that simplified, site-friendly observation structure. It is not a full browser RINEX parser. It is a compact observation explorer for understanding epochs, satellites, observables, and quality changes.
Mini RINEX Observation Viewer
This viewer uses a compact site-friendly dataset that mirrors the core ideas in a RINEX observation file: epochs, satellites, observables, and tracking quality changes over time.
The orange dashed markers flag epochs where the selected satellite loses lock.
Satellite Availability
Sample observation rows
What to watch
- Switching satellites changes the observable history and visibility pattern.
- Carrier phase and C/N_0 tell different stories about data quality.
- Gaps and lock-loss events are highlighted directly on the plot.
- The raw snippet makes the idea of epoch-indexed observations concrete without overwhelming the article with full-format parsing details.
Try it
Select a satellite and plot carrier phase over time. Then switch to C/N_0. Look for times when signal quality drops and whether the observation becomes noisier or discontinuous.
Limits of this post
This post is not a full GNSS processing tutorial. It prepares the reader for later work by showing that real data is time-indexed, satellite-indexed, and quality-dependent.
Footnotes
-
International GNSS Service, “Data”. https://igs.org/data/ - Reference for GNSS receiver observation data, broadcast orbits, and supporting data from a global station network. Accessed 2026-06-11. ↩
-
RTKLIB, “An Open Source Program Package for GNSS Positioning”. https://rtklib.com/ - Open-source GNSS processing package supporting single, DGNSS, RTK, PPP, and RINEX formats. Accessed 2026-06-11. ↩