Physics Library
 An open source physics library
Encyclopedia | Forums | Docs | Random |  
Login
create new user
Username:
Password:
forget your password?
Main Menu
Sections

Meta

Talkback

Downloads

Information
Deriving IS-GPS-200 Table 20-IV: Harmonic Corrections, Orbital-Plane Coordinates, and ECEF Position (Topic)

1 Where GPSORB13 begins

GPSORB12 derived the first half of the legacy broadcast-position algorithm:

√ --
  A →  A  →  n0 → n →  Mk  →  Ek →  νk →  Φk,
(1)

with

|------------|
Φk--=-νk-+-ω.-
(2)

The quantity Φk is the uncorrected argument of latitude: the angle in the orbital plane from the ascending-node direction to the satellite before the broadcast second-harmonic corrections are applied.

The second sheet of IS-GPS-200 Table 20-IV continues with the sequence

                                      ′  ′
Φk →  (δuk,δrk,δik) → (uk,rk,ik) →  (x k,yk) → Ωk →  (xk,yk, zk)ECEF.
(3)

PIC

Figure 1. Computational flow through the second sheet of the legacy GPS broadcast position algorithm.

The current GPS public-document index identifies IS-GPS-200N as the current base revision of the L1/L2 space-to-user interface specification. This article derives the legacy LNAV Table 20-IV equations in Revision N; an operational implementation should also check any applicable interface-revision notices [21].

2 Broadcast quantities used in this half of the calculation

In addition to A, e, Ek, Φk, tk, and toe already available from GPSORB12, the second-half position calculation uses

Broadcast quantity Meaning LNAV units
Cuc cosine correction to argument of latitude radians
Cus sine correction to argument of latitude radians
Crc cosine correction to orbital radius meters
Crs sine correction to orbital radius meters
Cic cosine correction to inclination radians
Cis sine correction to inclination radians
i0 inclination at reference epoch semicircles
IDOT inclination-rate correction semicircles/s
Ω0 longitude of ascending-node plane at weekly epoch semicircles
node-rate parameter rate of right ascension semicircles/s

IS-GPS-200 denotes the node-rate parameter by  ⋅
Ω. Table 20-III gives the harmonic latitude and inclination coefficients directly in radians, while the radial pair is in meters. The node, inclination, and rate parameters transmitted in semicircles or semicircles per second must be converted to radians or radians per second before being mixed with radian-valued quantities [1].

The GPS user value of the Earth rotation rate is

|⋅-------------------------------|
|Ωe = 7.2921151467 ×  10−5 rad∕s.|
----------------------------------
(4)

3 Step 1: why the correction functions use twice the argument of latitude

GPSORB10 showed that the leading nonspherical Earth-gravity perturbation contains degree-two angular structure. In orbital geometry one encounters terms such as

sin2 u.
(5)

Using

   2     1 −-cos2u-
sin u =      2     ,
(6)

reveals a natural twice-per-revolution harmonic. GPSORB11 then emphasized an important modeling distinction: the broadcast coefficients are not obtained by simply substituting a closed-form J2 solution. They are fitted coefficients in the prescribed broadcast model, but a sine/cosine basis at 2Φk is physically well matched to the dominant degree-two periodic structure.

Over one full revolution of Φ, both sin 2Φ and cos 2Φ complete two cycles.

PIC

Figure 2. The two basis functions used by the broadcast harmonic corrections repeat twice per orbital revolution.

A general second harmonic with arbitrary phase can be written

R cos(2Φ  − α) = R cos αcos 2Φ + R sin αsin 2Φ.
(7)

Therefore a pair of coefficients multiplying sine and cosine can represent both amplitude and phase. If

C  =  R cosα,     C  =  R sin α,
  c                 s
(8)

then

Cs sin 2Φ + Cc cos2Φ  = R cos(2Φ −  α).
(9)

This is why each corrected orbital quantity receives a pair of harmonic coefficients rather than a single amplitude.

4 Step 2: argument-of-latitude correction

The first Table 20-IV correction is

|--------------------------------|
-δuk-=-Cus-sin2Φk-+--Cuccos-2Φk.-|
(10)

Both coefficients have angular units, so

[δuk] = rad.
(11)

The receiver then applies the correction directly to the uncorrected argument of latitude:

|--------------|
uk-=--Φk-+-δuk.-
(12)

The notation is worth preserving carefully:

Φk  = uncorrected argument  of latitude,
(13)

while

uk = corrected argument  of latitude.
(14)

A software implementation that overwrites Φk too early can obscure which angle belongs in the harmonic terms.

5 Step 3: radial correction

The corresponding radial harmonic is

|------------------------------|
δrk-=-Crs-sin2Φk-+--Crccos-2Φk.-
(15)

Because Crs and Crc are measured in meters,

[δrk] = m.
(16)

Before this correction is added, the Keplerian ellipse geometry from GPSORB06 gives

|----------------------|
|rK,k = A (1 − ecos Ek).|
------------------------
(17)

That result follows directly from the focus-centered eccentric-anomaly parameterization of the ellipse.

The GPS broadcast model modifies the radius by

|--------------------------|
|r =  A(1 − ecos E ) + δr .|
--k---------------k------k--
(18)

It is useful to read Equation (18) as

|---------------------------------------------------------------------|
corrected radius = Keplerian radius + fitted periodic radial correction.|
-----------------------------------------------------------------------
(19)

6 Step 4: inclination correction and IDOT

The harmonic inclination correction is

|------------------------------|
|δi =  C  sin 2Φ  + C   cos2Φ  .|
---k----is------k----ic------k--
(20)

Again,

[δik] = rad.
(21)

The complete corrected inclination is

|--------------------------|
|ik = i0 + (IDOT  )tk + δik.|
---------------------------
(22)

This equation contains three distinct pieces:

i0  reference inclination,
(23)

(IDOT   )tk   linear fitted inclination drift,
(24)

and

δik   twice -per -revolution periodic correction.
(25)

As emphasized in GPSORB11, IDOT should not be interpreted as a claim that first-order secular J2 theory predicts a nonzero mean inclination rate. The broadcast value is a fitted coefficient for the complete propagated reference trajectory.

7 Step 5: form the corrected orbital-plane coordinates

After uk and rk are known, the satellite’s coordinates in the corrected orbital plane are ordinary polar-to-Cartesian relations:

|--------------|
|x′k = rk cos uk,
----------------
(26)

|--------------|
|y′ = rk sinuk.|
--k------------
(27)

The xk direction lies along the ascending-node direction in the orbital plane, and the yk axis is 90 ahead within that plane.

PIC

Figure 3. Corrected radius and argument of latitude resolve the satellite position into node-aligned orbital-plane coordinates.

The equations immediately provide a useful invariant:

  ′ 2     ′2    2    2        2
(xk) +  (y k) = rk(cos uk + sin  uk),
(28)

so

∘--------------------|
|  (x′)2 + (y′)2 = r .
-----k------k------k--
(29)

This is an inexpensive software sanity check.

8 Step 6: corrected longitude of the ascending node

GPSORB09 derived the Earth-fixed node equation from the difference between inertial node motion and Earth rotation. Table 20-IV uses

|------------------------------|
|            ⋅    ⋅      ⋅     |
-Ωk-=-Ω0-+--(Ω-−-Ωe)tk-−-Ωetoe.|
(30)

Because

tk = t − toe,
(31)

Equation (30) may be rearranged as

            ⋅           ⋅
Ωk =  Ω0 + Ω (t − toe) − Ωet.
(32)

This alternate form exposes the physics:

  • ⋅Ω(t toe) propagates the fitted orbital-node orientation;
  • ⋅
Ωet accounts for the rotation of the Earth-fixed axes beneath the orbit.

A common implementation concern is the size of Ωk. Trigonometric functions are periodic, so it is mathematically acceptable to use the unwrapped value. In numerical software it is often convenient to reduce it modulo 2π before evaluating sines and cosines.

9 Step 7: derive the final ECEF rotation

The orbital-plane vector is

     ⌊   ⌋
       x′k
r′ = ⌈ y′⌉ .
 k      k
       0
(33)

The geometry is the same rotation structure derived in GPSORB08, but the quantities are now the corrected broadcast quantities and Ωk is already an Earth-fixed node longitude.

First tilt the orbital plane by the corrected inclination ik, then rotate the node direction by Ωk. With the rotation convention used throughout this series,

rECEF  = R3 (Ωk)R1 (ik)r′.
 k                     k
(34)

The combined matrix is

|--------------------------------------------------------|
|         ⌊                                     ⌋ ⌊  ′⌋  |
| ECEF      cosΩk  −  sin Ωk cosik   sin Ωk sinik     xk′   |
|rk     = ⌈ sin Ωk   cos Ωk cosik   − cosΩk sinik⌉ ⌈ yk⌉ .|
|             0         sin ik          cosik        0    |
---------------------------------------------------------
(35)

PIC

Figure 4. The corrected orbital-plane coordinates are tilted by inclination and rotated by the Earth-fixed node longitude.

Because the third component of rk is zero, Equation (35) reduces immediately to the three Table 20-IV equations:

|-------′----------′-------------|
-xk-=-x-k cosΩk-−-yk cos-ik-sin-Ωk,|
(36)

|------′----------′-------------|
yk-=-x-k sin-Ωk-+-y-k cosik cos-Ωk,
(37)

|------′-------|
-zk-=-yk-sin-ik.-|
(38)

IS-GPS-200 identifies these as the satellite antenna phase-center coordinates in the WGS 84 Earth-centered Earth-fixed coordinate system [1].

10 Why there is no extra ECI-to-ECEF rotation afterward

This point deserves emphasis because it is an easy place to double-count Earth rotation.

In a conventional inertial orbital-elements calculation one might first form an inertial position vector

rECI ,
(39)

after which a separate Earth-rotation matrix converts ECI to ECEF. The legacy GPS broadcast algorithm instead uses the already Earth-fixed node longitude Ωk from Equation (30). Therefore Equations (36), (37), and (38) already produce ECEF coordinates.

Thus the broadcast sequence is

|----------------------------|
|       ik,Ωk                 |
|(x ′k,y′k)− →  (xk,yk,zk)ECEF ,|
------------------------------
(40)

not

(x ′k,y′k) → ECI  →  another  Earth rotation →  ECEF.
(41)

Applying an additional Earth-rotation transformation would rotate the answer twice.

11 A complete numerical continuation of GPSORB12

Continue the GPSORB12 example, which ended with

A =  2.6560000  × 107 m,
(42)

e =  0.010000,     Ek  = 2.05903329214  rad,
(43)

and

Φ   = 2.76784440233  rad,    t  = 7200 s.
  k                           k
(44)

For an illustrative GPS-like continuation, choose the decoded correction coefficients

              − 6                       − 6
Cus =  8.0 × 10   rad,     Cuc = 1.0 × 10   rad,
(45)

Crs = 80 m,      Crc = 200 m,
(46)

Cis = − 2.0 × 10− 7 rad,   Cic = 1.0 × 10−7 rad.
(47)

Also take

i =  55∘ = 0.95993108860  rad,
 0
(48)

IDOT   =  − 2.0 × 10− 10 rad∕s,
(49)

                        ⋅
Ω0  = 1.200000 rad,     Ω = − 8.0 × 10−9 rad∕s,
(50)

and

toe = 345600 s.
(51)

All angular parameters in this worked example are already expressed in radians or radians per second after any required broadcast semicircle conversion.

1. Twice-per-revolution angle

The harmonic phase is

2Φk =  5.53568880466  rad.
(52)

2. Argument-of-latitude correction

From Equation (10),

               − 6                    − 6
δuk =  (8.0 × 10   )sin (2 Φk) + (1.0 × 10   )cos(2Φk),
(53)

so

|----------------------------|
-δuk-≈-−-4.70505-×-10−-6 rad.|
(54)

The corrected argument of latitude is therefore

|------------------------------------|
-uk-=-Φk-+-δuk-≈--2.76783969728--rad.-|
(55)

3. Radius correction

Equation (15) gives

|-----------------|
δrk-≈-92.2942-m.--|
(56)

The uncorrected Keplerian radius is

A (1 − ecosEk ) ≈ 2.66845848789 ×  107 m,
(57)

so

|----------------------------|
rk ≈  2.66846771731  × 107 m. |
------------------------------
(58)

Equivalently,

r  ≈ 26684.677 km.
 k
(59)

4. Inclination correction

Equation (20) gives

|--------------------------|
|                  − 7     |
-δik-≈-2.09300-×-10---rad.-
(60)

The linear term is

                       −10                     −6
(IDOT   )tk = (− 2.0 × 10   )(7200) = − 1.44 × 10   rad.
(61)

Hence

|------------------------------------|
-ik-≈-0.95992985790--rad-≈--54.99993-∘.-
(62)

5. Orbital-plane coordinates

Using Equations (26) and (27),

|-′------------------------7---|
x-k ≈-−-2.48424646234--×-10--m,--
(63)

|----------------------------|
y ′k ≈ 9.74289214088  × 106 m. |
------------------------------
(64)

The norm check gives

∘ -------------
  (x′)2 + (y′)2 = r
    k       k     k
(65)

to numerical precision.

6. Earth-fixed node longitude

Equation (30) gives

                      −9                    − 5                            − 5
Ωk = 1.2 + (− 8.0 × 10   − 7.2921151467  × 10   )(7200 ) − (7.2921151467  × 10  )(345600 ),
(66)

so the unwrapped result is

Ωk ≈ − 24.5266398376  rad.
(67)

Reducing modulo 2π gives the equivalent angle

|-------------------------------------|
Ωk-≡--0.60610139116--rad-≈-34.72705∘.-|
(68)

Either form gives the same sine and cosine.

7. Final ECEF coordinates

Substitution into Equations (36), (37), and (38) gives

|--------------------------7---|
xk-≈--−-2.36008802326--×-10--m,--
(69)

|------------------------------|
-yk ≈-− 9.55906026760-×-106-m,--
(70)

|----------------------------|
zk ≈  7.98090313697  × 106 m. |
------------------------------
(71)

In kilometers,

|----------------------------|
|         ⌊− 23600.880 ⌋     |
|ECEF     ⌈            ⌉     |
rk     ≈    − 9559.060   km. |
-------------7980.903---------
(72)

A final norm check gives

∘ ------------
  x2k + y2k + z2k ≈ 26684.677 km  = rk,
(73)

which verifies that the final transformation changed only coordinate orientation, not physical distance from Earth.

12 Sanity checks and implementation traps

1. Keep Φk and uk distinct

The harmonic corrections are evaluated using

2 Φk,
(74)

not 2uk. First compute δuk, then form uk = Φk + δuk.

2. Keep the three correction units distinct

The correction channels have different dimensions:

[δuk ] = rad,    [δrk] = m,     [δik] = rad.
(75)

Adding a radial coefficient to an angle or vice versa is a detectable unit error.

3. Convert semicircle quantities before mixing them

Cuc,Cus,Cic,Cis are already specified in radians, but i0, Ω0,  ⋅
Ω, and IDOT are broadcast in semicircle-based units. Convert them before using Equations (22) and (30).

4. Check both coordinate norms

The two identities

  ′ 2     ′2    2
(xk) +  (y k) = rk
(76)

and

x2k + y2k + z2k = r2k
(77)

should hold to numerical precision. The first tests the polar decomposition; the second tests the rotation into ECEF.

5. Do not apply Earth rotation twice

The node equation already includes the Earth-rate term. The final Table 20-IV coordinates are ECEF, not ECI.

6. Zero-correction limit

If

Cuc = Cus =  Crc = Crs = Cic = Cis = 0,     IDOT   = 0,
(78)

then

uk = Φk,     rk = A (1 − ecosEk ),    ik = i0.
(79)

This recovers the uncorrected Keplerian geometry except for the separately modeled node evolution.

7. Equatorial limit

For

ik → 0,
(80)

Equation (38) gives

zk →  0,
(81)

and the x-y equations reduce to an ordinary planar rotation by Ωk.

13 Compact implementation sequence

Given the outputs of GPSORB12 and the remaining decoded ephemeris parameters:

1.
Evaluate sin 2Φk and cos 2Φk once.
2.
Compute δuk, δrk, and δik.
3.
Form uk = Φk + δuk.
4.
Form rk = A(1 e cos Ek) + δrk.
5.
Form ik = i0 + IDOT tk + δik.
6.
Compute xk = rk cos uk and yk = rk sin uk.
7.
Compute Ωk = Ω0 + ( ⋅
Ω ⋅
Ωe)tk ⋅
Ωetoe.
8.
Compute xk,yk,zk from Equations (36), (37), and (38).
9.
Verify ∘  ------------
   x2k + y2k + z2k rk.

A practical implementation can reduce repeated trigonometric work by caching

sin 2Φk,   cos2Φk,   sinuk,   cosuk,   sin ik,   cosik,  sinΩk,   cosΩk.
(82)

14 How the equations map back to the mechanics

The second half of Table 20-IV is not an arbitrary list of coordinate recipes. Each group has a clear origin:

Broadcast equation

Underlying idea

δuk,δrk,δik

fitted twice-per-revolution departures from the Keplerian baseline

uk,rk,ik

corrected orbital geometry

xk,yk

polar-to-Cartesian coordinates in the node-aligned orbital plane

Ωk

node propagation relative to rotating Earth-fixed axes

xk,yk,zk

rigid rotation from corrected orbital-plane coordinates into WGS 84 ECEF

The full legacy position algorithm can now be read as one continuous chain from Newtonian orbit parameters to an Earth-fixed satellite position:

|------------------------------------------------------------------|
-broadcast-parameters-→--Kepler-propagation--→--periodic-corrections--
(83)

|----------------------------------------------------------------|
-periodic corrections-→-corrected-orbital plane-→-ECEF--position.-|
(84)

15 Summary

Starting with the uncorrected argument of latitude from GPSORB12,

Φk  = νk + ω,
(85)

Table 20-IV forms

|--------------------------------|
-δuk-=-Cus-sin2Φk-+--Cuccos-2Φk,-|
(86)

|------------------------------|
δr  = C   sin2Φ  +  C  cos 2Φ ,|
--k-----rs------k----rc------k--
(87)

|------------------------------|
-δik =-Cissin-2Φk-+-Cic-cos2Φk.--
(88)

The corrected geometry is

|--------------|
uk-=--Φk-+-δuk,-
(89)

|--------------------------|
-rk =-A(1-−-ecos-Ek)-+-δrk,-
(90)

|------------------------|
-ik-=-i0-+-IDOT---tk-+-δik.-
(91)

The node-aligned orbital-plane coordinates are

|--------------------------------|
|x′k = rk cos uk,   y′k = rk sin uk,|
----------------------------------
(92)

and the Earth-fixed node longitude is

|------------------------------|
|            ⋅    ⋅      ⋅     |
-Ωk-=-Ω0-+--(Ω-−-Ωe)tk-−-Ωetoe.|
(93)

Finally,

|--------------------------------|
|xk = x ′k cosΩk − y′k cos ik sin Ωk,|
---------------------------------
(94)

|------′----------′-------------|
yk-=-x-k sin-Ωk-+-y-k cosik cos-Ωk,
(95)

|--------------|
-zk-=-y′k-sin-ik,-|
(96)

which completes the legacy broadcast calculation of the satellite’s WGS 84 ECEF position.

The next article can continue to Table 20-IV sheet 3 and derive the satellite velocity equations analytically by differentiating this complete position chain.

References

[1]   Global Positioning Systems Directorate, IS-GPS-200N: NAVSTAR GPS Space Segment/Navigation User Interfaces, 1 August 2022, especially Tables 20-III and 20-IV and Section 20.3.3.4. 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/GNSS: Principles and Applications, 3rd ed., Artech House, 2017.

[4]   D. A. Vallado, Fundamentals of Astrodynamics and Applications, 4th ed., Microcosm Press, 2013.

[5]   O. Montenbruck and E. Gill, Satellite Orbits: Models, Methods, and Applications, Springer, 2000.


"Deriving IS-GPS-200 Table 20-IV: Harmonic Corrections, Orbital-Plane Coordinates, and ECEF Position" is owned by bloftin.
(view preamble)
View style:
Other names:  GPSORB13
Keywords:  GPS broadcast ephemeris, IS-GPS-200, Table 20-IV, second harmonic corrections, argument of latitude correction, radius correction, inclination correction, corrected argument of latitude, corrected radius, corrected inclination, orbital-plane coordinates, ascending node longitude, ECEF coordinates, WGS 84

Cross-references: velocity, work, identities, norm, position vector, system, matrix, GPSORB08, vector, motion, GPSORB09, relations, GPSORB06, functions, GPSORB11, GPSORB10, parameter, longitude, position, latitude, algorithm

This is version 1 of Deriving IS-GPS-200 Table 20-IV: Harmonic Corrections, Orbital-Plane Coordinates, and ECEF Position, born on 2026-09-22.
Object id is 1268, canonical name is DerivingISGPS200Table20IVHarmonicCorrectionsOrbitalPlaneCoordinatesAndECEFPosition.
Accessed 2 times total.

Classification:
Physics Classification45.50.Pk (Celestial mechanics )
 91.10.Fc (Space geodetic surveys)
 95.10.Ce (Celestial mechanics )
 02.30.Hq (Ordinary differential equations)
 02.60.Cb (Numerical simulation; solution of equations)
Pending Errata and Addenda
None.
Discussion
Style: Expand: Order:

No messages.

Interact
rate | post | correct | update request | add example | add (any)