SP3 interpolation, in brief
SP3 files provide sampled precise satellite positions and, when available, clock corrections. Interpolation estimates a state between those samples. File units, time system, interpolation interval and missing-value markers must be respected; interpolating the orbit is only one input to a positioning solution.
Learning objectives
- Identify SP3 header and position records.
- Understand coordinate and clock units.
- Interpolate a satellite coordinate at a non-SP3 epoch.
Why SP3 exists
Broadcast navigation files give Keplerian parameters and meter-level orbit quality. SP3 files provide precise Cartesian satellite coordinates and clocks estimated by analysis centers.
SP3 is essential for PPP and precise geodesy because the satellite position is already expressed in an ECEF reference frame such as IGS20/ITRF.
Raw data excerpt
Annotated SP3 coordinate excerpt
1* 2024 01 01 00 00 00.000000002PG01 12908.438647 -10025.115815 20508.373980 164.997276SP3 coordinates are Cartesian positions in kilometers; most positioning engines convert them to meters.
SP3 position line
PG01 12908.438647 -10025.115815 20508.373980 164.997276Line interpretation
`P` means position record, `G01` means GPS PRN 01, the next three columns are X/Y/Z in kilometers, and the last column is satellite clock in microseconds.
A clock value of `999999.999999` marks missing or invalid clock data.
Lagrange interpolation
Five G01 epochs
| Epoch | tk (s) | X (km) | Y (km) | Z (km) |
|---|---|---|---|---|
| 00:00:00 | 0 | 12908.438647 | -10025.115815 | 20508.373980 |
| 00:05:00 | 300 | 12988.440556 | -9216.822128 | 20838.836691 |
| 00:10:00 | 600 | 13084.429049 | -8398.467123 | 21127.872753 |
| 00:15:00 | 900 | 13196.669424 | -7571.999376 | 21374.927788 |
| 00:20:00 | 1200 | 13325.318847 | -6739.388472 | 21579.534446 |
Step 1
Choose the target time
Assume the receiver observation occurred at 00:07:30 GPST, or 450 seconds after the first SP3 epoch.
Step 2
Build basis polynomials
The first two basis polynomials show the pattern; the remaining bases follow the same product structure.
Result
Interpolated coordinate
(13034.417, -8808.781, 20988.570) km
Evaluating the Lagrange polynomial at 450 s gives X = 13034.417 km, Y = -8808.781 km, and Z = 20988.570 km.
Convert to meters before feeding most positioning software: approximately (1.3034e7, -8.8088e6, 2.0989e7) m.
Migration note
The legacy `interpolation_example.html` is a broadcast ephemeris satellite-position calculation, not an SP3 interpolation page. It is useful as a contrast between broadcast orbit propagation and SP3 interpolation, but it should not be merged blindly.
What you should understand now
- SP3 coordinates are already Cartesian and precise.
- The file sampling interval rarely matches observation epochs exactly.
- Interpolation must be performed independently for each coordinate component.
Related tutorials
Satellite orbits and ephemerides
Satellite Position from Broadcast Ephemeris
A step-by-step numerical satellite-position computation using broadcast ephemeris values from the legacy interpolation example.
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.