1 Purpose of GPSORB16
Kaplan and Hegarty summarize the GPS broadcast orbit algorithm as a short sequence that
converts ephemeris parameters into an Earth-centered Earth-fixed satellite position. IS-GPS-200
provides the normative legacy LNAV equations in Table 20-IV. The preceding GPSORB articles
derived each piece separately. This article now executes the complete chain with one consistent set
of numbers.
The calculation is
Figure 1. The complete legacy LNAV orbit calculation from decoded ephemeris parameters
through ECEF position, velocity, and acceleration.
The numerical values used here are deliberately illustrative rather than copied from one
operational satellite message. They were chosen in GPSORB12–GPSORB15 to be GPS-like and to
make every intermediate step transparent. The purpose is reproducibility of the mathematics, not
reproduction of one historical SV state.
IS-GPS-200 states that the subframe 2 and 3 quantities are Keplerian in appearance but are
generated from a least-squares fit to a propagated Earth-fixed trajectory. The user equations are
therefore best understood as a compact fitted trajectory model rather than as an untouched
six-element Kepler orbit [1].
2 Constants used by the GPS user algorithm
The legacy Table 20-IV computation uses
and
For the acceleration calculation, sheet 4 additionally uses
Because the satellite position is extremely sensitive to small angular errors, IS-GPS-200N also
specifies the value
for use in the broadcast ephemeris calculation [1].
3 Decoded parameters and computation units
The user equations are applied after the navigation bits have been decoded and their LSB scale
factors applied. Some decoded angular quantities are expressed in semicircles, whereas
the trigonometric and differential equations are most naturally evaluated in radians.
Therefore
and
The harmonic coefficients Cuc,Cus,Cic,Cis are already specified in radians and should not receive
another factor of π [1].
Figure 2. Unit conversion should be completed before entering the numerical orbit equations.
For the worked example, all angular quantities below are listed directly in the computation units
used by the equations.
Core ephemeris and timing values
| Parameter | Value used | Computation units |
| 5153.63949069 | |
| e | 0.010000 | dimensionless |
| Δn | 4.5 × 10−9 | rad/s |
| M0 | 1.000000 | rad |
| ω | 0.700000 | rad |
| toe | 345600 | s |
| t | 352800 | s |
| i0 | 0.95993108860 | rad |
| Ω0 | 1.200000 | rad |
| dΩ∕dt | −8.0 × 10−9 | rad/s |
| IDOT | −2.0 × 10−10 | rad/s |
Harmonic correction coefficients
| Parameter | Value used | Units |
| Cus | 8.0 × 10−6 | rad |
| Cuc | 1.0 × 10−6 | rad |
| Crs | 80 | m |
| Crc | 200 | m |
| Cis | −2.0 × 10−7 | rad |
| Cic | 1.0 × 10−7 | rad |
The evaluation epoch was chosen so that
which is comfortably inside the half-week crossover boundary.
4 Sheet 1: time and anomaly propagation
1. Semimajor axis
The message transmits
, so
Numerically,
therefore
2. Computed mean motion
so
3. Time from ephemeris epoch
thus
IS-GPS-200 requires half-week crossover correction if tk exceeds +302400 s or falls below −302400
s. No correction is needed here [1].
4. Corrected mean motion
which yields
5. Mean anomaly
therefore
6. Eccentric anomaly
Kepler’s equation is
Following Table 20-IV, initialize
and apply
The three required refinements give
Hence
7. True anomaly and argument of latitude
A quadrant-safe form is
which gives
Then
so
5 Sheet 2: corrected orbit geometry and ECEF position
The twice-per-revolution phase is
The three harmonic corrections are
Numerically,
and
The corrected quantities become
Thus
and
The corrected orbital-plane coordinates are
so
The Earth-fixed node longitude is
For this example,
The equivalent wrapped angle is
The final WGS 84 ECEF position is
Hence
6 Sheet 3: analytical ECEF velocity
Differentiate Kepler’s equation to obtain
and then
For the example,
The corrected inclination, argument-of-latitude, radius, and node rates are
and
Numerically,
The in-plane velocity components are
which give
Substitution into the full Table 20-IV sheet-3 product-rule equations yields
The ECEF speed is
7 Sheet 4: ECEF acceleration
A useful notation point is important here. Sheet 4 uses the corrected rk already computed on sheet
2. The identity
is therefore best treated as a numerical consistency check, not as a new definition of
rk.
The oblate-Earth acceleration factor is
which gives
The final Table 20-IV acceleration equations are
They produce
The component breakdown is
| Contribution | x (m/s2) | y (m/s2) | z (m/s2) |
| Central gravity | +0.49508547 | +0.20052438 | −0.16741872 |
| J2 gravity | +0.00002539 | +0.00001028 | −0.00003965 |
| Coriolis | −0.11451782 | +0.10375785 | 0 |
| Centrifugal | −0.12549755 | −0.05083025 | 0 |
| Final ECEF | +0.25509549 | +0.25346227 | −0.16745837 |
To keep scalar and vector Earth-rotation notation distinct, the rotating-frame derivation may
write
Then
which is the vector form behind the Coriolis and centrifugal terms above.
8 The complete output state
The entire worked solution may now be summarized as
and
Figure 3. Final position, velocity, and acceleration from the worked broadcast ephemeris. Vector
directions in the sketch are schematic.
9 Intermediate-value audit table
The following condensed table is useful when debugging an independent implementation.
| Stage | Quantity | Numerical value |
| Sheet 1 | A | 2.6560000 × 107 m |
| | n0 | 1.4585684444 × 10−4 rad/s |
| | tk | 7200 s |
| | n | 1.4586134444 × 10−4 rad/s |
| | Mk | 2.05020167997 rad |
| | Ek | 2.05903329214 rad |
| | νk | 2.06784440233 rad |
| | Φk | 2.76784440233 rad |
| Sheet 2 | δuk | −4.70504570 × 10−6 rad |
| | δrk | 92.2942234 m |
| | δik | 2.09300274 × 10−7 rad |
| | uk | 2.76783969728 rad |
| | rk | 2.66846771731 × 107 m |
| | ik | 0.959929857897 rad |
| | Ωk | −24.5266398376 rad |
| Sheet 3 | dEk∕dt | 1.45180347602 × 10−4 rad/s |
| | dνk∕dt | 1.44495304892 × 10−4 rad/s |
| | drk∕dt | 34.1108554 m/s |
| | duk∕dt | 1.44497196899 × 10−4 rad/s |
| | dΩk∕dt | −7.2929151467 × 10−5 rad/s |
| Sheet 4 | F | −5.19334896206 × 10−5 m/s2 |
The companion file GPSORB16_intermediates.csv contains a longer machine-readable version of
this table.
10 Verification: do not trust a long chain without checks
An end-to-end ephemeris calculation has enough trigonometric signs, unit conversions, and frame
conventions that verification should be designed into the implementation.
Figure 4. A practical hierarchy of checks for a broadcast ephemeris implementation.
1. Kepler residual
After the third Newton refinement, evaluate
For the numerical precision shown here,
A non-negligible residual immediately indicates a Kepler-solver problem.
2. Orbital-plane radius check
Because
we must have
3. ECEF radius check
The transformation from corrected orbital-plane coordinates to ECEF is a rotation, so it preserves
length:
This check is particularly effective for detecting sign mistakes in Ωk or inclination.
4. Finite-difference velocity
Evaluate the complete sheet-1/sheet-2 position algorithm at t − h and t + h and form
With
the numerical result is approximately
The difference from the analytic sheet-3 velocity has norm
This is a stringent end-to-end check of the Sheet-2 geometry and Sheet-3 derivatives.
5. Why the Sheet-4 acceleration need not equal a second numerical derivative exactly
There is an important conceptual distinction between sheets 3 and 4. Sheet 3 is obtained by
differentiating the broadcast position expressions. Sheet 4, however, evaluates a separate
central-gravity plus J2 rotating-frame acceleration model from the already computed position and
velocity. The ICD does not obtain sheet 4 by differentiating every fitted harmonic term a second
time.
For the illustrative data set, differentiating the sheet-3 velocity numerically with h = 0.1 s gives
approximately
The difference from the Table 20-IV sheet-4 acceleration has magnitude
This small mismatch is not a sign error. The broadcast parameters are fitted coefficients for an
ECEF trajectory, while sheet 4 is a compact force-model acceleration expression [1]. The two
calculations answer closely related but not algebraically identical questions.
6. Limiting-case checks
Several switches provide useful unit tests:
- Set all six harmonic coefficients to zero. The sheet-2 corrections must disappear.
- Set Δn = 0. Mean motion must reduce to n0.
- Set IDOT = 0 and the inclination harmonic coefficients to zero. Then ik = i0 and the
inclination rate is zero.
- Set J2 = 0. The oblate-Earth term must disappear from sheet 4.
- Set the Earth rotation rate to zero. Coriolis and centrifugal terms must vanish and the
node equation loses Earth-rotation terms.
11 Implementation ordering
A receiver or analysis script can implement the complete orbit calculation in the following
order:
-
1.
- Decode the LNAV ephemeris parameters and apply their LSB scale factors.
-
2.
- Convert semicircle-based angles and angular rates to radians using Equation (6).
-
3.
- Form A = (
)2 and n
0 =
.
-
4.
- Compute tk = t − toe and apply the half-week crossover rule.
-
5.
- Form n = n0 + Δn and Mk = M0 + ntk.
-
6.
- Solve Kepler’s equation for Ek using at least three Newton refinements.
-
7.
- Compute νk with an unambiguous quadrant and form Φk = νk + ω.
-
8.
- Evaluate δuk, δrk, and δik.
-
9.
- Form corrected uk, rk, and ik.
-
10.
- Compute x′k, y′k, and Ωk.
-
11.
- Rotate into xk,yk,zk ECEF coordinates.
-
12.
- Evaluate the sheet-3 rates and obtain the three ECEF velocity components.
-
13.
- Reuse the corrected sheet-2 rk, compute F, and evaluate sheet-4 acceleration.
-
14.
- Run the residual and norm checks before using the state in a navigation solution.
12 Reference implementation and data files
The companion script GPSORB16_reference.py implements the complete worked example using
only the Python standard library. It also writes two CSV files:
- GPSORB16_input_ephemeris.csv, containing the decoded example parameters in
computation units;
- GPSORB16_intermediates.csv, containing the intermediate and final numerical
values.
These files are intended as regression-test data. A new C, C++, MATLAB, Julia, or embedded
receiver implementation should reproduce the same values to the precision appropriate to its
floating-point arithmetic.
13 Connection back to Kaplan’s Table 2.3
Kaplan’s Table 2.3 emphasizes the position calculation. The sequence
is precisely the core GPS broadcast position computation. GPSORB12 and GPSORB13 derived
that chain in the notation of the modern public interface specification. GPSORB14 and
GPSORB15 then continued beyond Kaplan’s position table to the velocity and acceleration
equations now supplied in Table 20-IV.
This completes the conceptual path that motivated GPSORB00:
14 Summary
One legacy LNAV ephemeris data set, after decoding and unit conversion, is sufficient to drive the
complete Table 20-IV calculation. For the illustrative GPS-like parameters used throughout
GPSORB12–GPSORB16, the final Earth-fixed state is
and
The important lesson is not the particular numbers. It is the chain of models behind them:
Newtonian two-body mechanics, orbital elements, anomaly propagation, fitted harmonic
corrections, Earth rotation, analytical differentiation, and finally a compact J2 rotating-frame
acceleration model. That chain is what turns a small set of broadcast coefficients into a satellite
state usable by a GPS receiver.
References
[1] Global Positioning Systems Directorate, IS-GPS-200N: NAVSTAR GPS Space
Segment/Navigation User Interfaces, 1 August 2022, especially Section 20.3.3.4.3 and
Tables 20-III and 20-IV. Available from GPS.gov.
[2] GPS.gov, Interface Control Documents (ICDs) and Interface Specifications (ISs),
current public-document index, accessed September 2026.
[3] E. D. Kaplan and C. J. Hegarty, eds., Understanding GPS: Principles and
Applications, 2nd ed., Artech House, 2006, Chapter 2.
[4] E. D. Kaplan and C. J. Hegarty, eds., Understanding GPS/GNSS: Principles and
Applications, 3rd ed., Artech House, 2017.
[5] D. A. Vallado, Fundamentals of Astrodynamics and Applications, 4th ed., Microcosm
Press, 2013.