OpenGNSSLabSPP

Module 3 - Satellite orbits and ephemerides

Keplerian Elements in GPS Navigation Messages

Read broadcast ephemeris parameters before using them in satellite position computation.

Difficulty

Fundamentals

Estimated time

20 minutes

Series position

3 of 10

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.

Prepared by OpenGNSSLabUpdated Sources, reproducibility and corrections

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.

GroupFieldValueRole
Clocka0-2.613384276628D-05 sSatellite clock offset.
Clocka1-9.436007530894D-12 s/sSatellite clock drift.
Orbit size/shapesqrtA5.153683597565D+03 sqrt(m)Square root of semi-major axis.
Orbit size/shapee1.773746171966D-02Eccentricity of the orbital ellipse.
AnomalyM06.239840220677D-01 radMean anomaly at reference time.
Timetoe9.358400000000D+04 sEphemeris reference time.
OrientationOmega01.512483407131D+00 radRight ascension of ascending node.
Orientationi09.498578426946D-01 radInclination at reference time.
Orientationomega-2.159927596900D+00 radArgument of perigee.
RatesDelta n4.854845080927D-09 rad/sCorrection to computed mean motion.
RatesOmegaDot-8.354633718315D-09 rad/sRate of right ascension.
RatesIDOT2.221521106700D-10 rad/sRate of inclination.
Harmonic correctionsCuc, Cus8.177012205124D-07, 8.910894393921D-06 radArgument-of-latitude corrections.
Harmonic correctionsCrc, Crs2.058125000000D+02, 1.200000000000D+01 mOrbital radius corrections.
Harmonic correctionsCic, Cis-2.365559339523D-07, 1.322478055954D-07 radInclination corrections.
HardwareTGD-1.117587000000D-08 sGroup delay correction for code observations.

Computation step 1

Recover the semi-major axis from sqrtA

Given

sqrtA = 5153.683597565 sqrt(m)

Formula

A=(A)2A=(\sqrt{A})^2

Substitute

A=(5153.683597565)2A=(5153.683597565)^2

Compute

A≈26,560,455.9 mA \approx 26,560,455.9\ \text{m}

Result

The orbit size is about 26,560 km from Earth's center, which is the expected GPS orbital scale.

Why it matters: This value feeds the mean-motion term before Kepler's equation.

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

δts,poly=a0+a1(t−toc)+a2(t−toc)2\delta t_{s,poly}=a_0+a_1(t-t_{oc})+a_2(t-t_{oc})^2
tk=temission−toet_k=t_{emission}-t_{oe}

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.

Why it matters: A one-symbol time mistake can move the satellite clock correction and the orbit state in opposite directions.

Which fields go to which part of the algorithm?

Algorithm stepFields
Satellite clocka0, a1, a2, toc, relativistic term
Mean anomalysqrtA, Delta n, M0, toe
Kepler equationM_k, e
Corrected argument/radius/inclinationCuc, Cus, Crc, Crs, Cic, Cis, IDOT
ECEF rotationOmega0, OmegaDot, omega_e, toe
Code biasTGD

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

Help improve this tutorial

Point out numerical ambiguity, missing prerequisites, or a step that needs a fuller derivation.

Primary sources and further reading

The specifications and research below support the model and terminology. Numerical exports and teaching assumptions are documented in the lesson itself.

Browse the scientific reference library →

Continue with the numbers

GNSS terms and units · Report a correction