RINEX observations, in brief
RINEX is an exchange format for GNSS observations and navigation data. An observation record identifies the satellite, signal and epoch: C1C is a code pseudorange in metres, while L1C is carrier phase in cycles. The header's observation order and time system determine how the numerical fields must be interpreted.
Learning objectives
- Identify the RINEX header and observation section.
- Decode common observation type labels.
- Map epoch rows to satellite measurements.
What a RINEX observation file stores
RINEX is a receiver-independent text format for GNSS observations. Observation files store measurement epochs, receiver and antenna metadata, observation type definitions, and per-satellite measurements.
The same file can contain GPS, GLONASS, Galileo, BeiDou, and other systems.
Important header fields
| Field | Example | Meaning |
|---|---|---|
| RINEX VERSION / TYPE | 3.04 OBSERVATION DATA M | Version, observation file, mixed GNSS. |
| APPROX POSITION XYZ | 1130752.1541 -4831349.1034 3994098.9626 | Approximate receiver ECEF position. |
| SYS / # / OBS TYPES | G 18 C1C L1C S1C ... | Observation columns for each constellation. |
| INTERVAL | 30.000 | Sampling interval in seconds. |
| TIME OF FIRST OBS | 2024 1 1 0 0 0.0000000 GPS | Start time and time scale. |
| LEAP SECONDS | 18 | UTC to GNSS time context. |
Raw data excerpt
Annotated RINEX observation excerpt
1 3.02 OBSERVATION DATA M (MIXED) RINEX VERSION / TYPE5ch151 MARKER NAME11 3246374.5864 4052665.3939 3693176.0609 APPROX POSITION XYZ13G 16 C1C L1C D1C S1C C2W L2W D2W S2W C2S L2S D2S S2S C5Q SYS / # / OBS TYPES22 1.000 INTERVAL23 2024 11 14 08 42 39.0000000 GPS TIME OF FIRST OBS50 END OF HEADER51> 2024 11 14 08 42 39.0000000 0 35 0.00000000000053G04 21026994.340 8 110497599.986 8 -1326.004 8 48.422 8 21026999.531 9 86102041.976 9 -1033.281 9 56.226 9 21026999.777 8 86102046.973 8 -1033.223 8 53.109 8Excerpted from a real RINEX observation file. Only the educational snippet is embedded; the full raw file is not published as a site asset.
Observation type codes
| Code | Meaning |
|---|---|
| C | Code pseudorange |
| L | Carrier phase |
| S | Signal strength |
| 1, 2, 5, 6, 7, 8 | Frequency band |
| C, P, W, X, I, Q, Z | Signal tracking/channel type |
Epoch and satellite rows
> 2024 01 01 00 00 0.0000000 0 34 .000000015974
G01 20888756.039 109771298.977 8 48.750 20888756.369 ...
G02 23201822.669 121926668.150 7 43.250 23201822.179 ...How to read the epoch
The epoch line starts with `>` and gives the timestamp, event flag, number of satellites, and optional receiver clock offset.
Each following satellite row begins with a system letter and PRN, then measurement values in the exact order declared by that system's header observation-type line.
Example measurement columns
| Satellite | C1C | L1C | S1C | C1W | L1W | S1W |
|---|---|---|---|---|---|---|
| G01 | 20888756.039 | 109771298.977 | 48.750 | 20888756.369 | 109771289.968 | 43.000 |
| G02 | 23201822.669 | 121926668.150 | 43.250 | 23201822.179 | 121926528.154 | 34.750 |
Common mistake
Do not assume every satellite row has the same columns across constellations. GPS, GLONASS, Galileo, and BeiDou can each declare a different observation-type list.
What you should understand now
- The header tells you how to interpret every numeric row.
- Epoch rows organize observations by time.
- SPP usually begins by selecting code measurements such as C1C for enough satellites at one epoch.
References
Related tutorials
Foundations
GPS Time Conversion
A step-by-step numerical conversion from GPS-time calendar components to Julian Date and GPS seconds-of-week.
Satellite orbits and ephemerides
Keplerian Elements in GPS Navigation Messages
A numerical map of GPS broadcast ephemeris fields: clock parameters, orbit shape, harmonic corrections, time references, and hardware delays.
Positioning algorithms
SPP from Scratch
Compute GPS single point positioning from RINEX observations: transmission time, satellite clocks, broadcast orbits, Sagnac and atmospheric corrections, iterative WLS, residuals and covariance.
Help improve this tutorial
Point out numerical ambiguity, missing prerequisites, or a step that needs a fuller derivation.