Keplerian elements, in brief
Keplerian elements describe an ideal orbit's size, shape, orientation and the satellite's location along it. GPS broadcast propagation starts from these orbital parameters and applies time evolution and harmonic corrections. An ideal Kepler ellipse alone is not the complete broadcast satellite-position algorithm.
Learning objectives
- Group broadcast navigation fields by their role in the orbit model.
- Separate satellite clock parameters from orbit parameters.
- Recognize which values feed Kepler's equation and which are corrections.
Why this tutorial sits before satellite position
A broadcast navigation record is not a satellite coordinate. It is a compact set of orbital elements, clock parameters, correction coefficients, and time tags.
Before computing a GPS satellite position, you need to know which field controls orbit size, shape, plane orientation, angular motion, clock behavior, and group delay.
Legacy example: G07 record at 2024-01-01 01:59:44
Extracted from `keplerian_elements.html`. Scientific D notation is kept because RINEX NAV files use the same convention.
| Group | Field | Value | Role |
|---|---|---|---|
| Clock | a0 | -2.613384276628D-05 s | Satellite clock offset. |
| Clock | a1 | -9.436007530894D-12 s/s | Satellite clock drift. |
| Orbit size/shape | sqrtA | 5.153683597565D+03 sqrt(m) | Square root of semi-major axis. |
| Orbit size/shape | e | 1.773746171966D-02 | Eccentricity of the orbital ellipse. |
| Anomaly | M0 | 6.239840220677D-01 rad | Mean anomaly at reference time. |
| Time | toe | 9.358400000000D+04 s | Ephemeris reference time. |
| Orientation | Omega0 | 1.512483407131D+00 rad | Right ascension of ascending node. |
| Orientation | i0 | 9.498578426946D-01 rad | Inclination at reference time. |
| Orientation | omega | -2.159927596900D+00 rad | Argument of perigee. |
| Rates | Delta n | 4.854845080927D-09 rad/s | Correction to computed mean motion. |
| Rates | OmegaDot | -8.354633718315D-09 rad/s | Rate of right ascension. |
| Rates | IDOT | 2.221521106700D-10 rad/s | Rate of inclination. |
| Harmonic corrections | Cuc, Cus | 8.177012205124D-07, 8.910894393921D-06 rad | Argument-of-latitude corrections. |
| Harmonic corrections | Crc, Crs | 2.058125000000D+02, 1.200000000000D+01 m | Orbital radius corrections. |
| Harmonic corrections | Cic, Cis | -2.365559339523D-07, 1.322478055954D-07 rad | Inclination corrections. |
| Hardware | TGD | -1.117587000000D-08 s | Group delay correction for code observations. |
Computation step 1
Recover the semi-major axis from sqrtA
Given
sqrtA = 5153.683597565 sqrt(m)
Formula
Substitute
Compute
Result
The orbit size is about 26,560 km from Earth's center, which is the expected GPS orbital scale.
Computation step 2
Keep clock time and orbit time separate
Given
a0, a1, a2 are satellite clock coefficients.
toe is the orbit reference time.
Formula
Result
Use toc with the clock polynomial and toe with the orbit propagation.
The legacy SPP page explicitly warns that mixing these references is a common implementation error.
Which fields go to which part of the algorithm?
| Algorithm step | Fields |
|---|---|
| Satellite clock | a0, a1, a2, toc, relativistic term |
| Mean anomaly | sqrtA, Delta n, M0, toe |
| Kepler equation | M_k, e |
| Corrected argument/radius/inclination | Cuc, Cus, Crc, Crs, Cic, Cis, IDOT |
| ECEF rotation | Omega0, OmegaDot, omega_e, toe |
| Code bias | TGD |
What you should understand now
- Broadcast ephemeris is a parameter set, not a ready-made coordinate.
- The same RINEX NAV record contains both clock and orbit information.
- The next tutorial turns these fields into an ECEF satellite position.
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.
Satellite orbits and ephemerides
SP3 Interpolation
A numerical SP3 tutorial covering header records, epoch position rows, missing clocks, and Lagrange interpolation.
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.