Skip to content

WGS-72: SGP4's Geodetic Constants

By the late 1960s, the Department of Defense maintained multiple geodetic datums — NAD 27 for North America, ED 50 for Europe, Tokyo Datum for the Pacific, and dozens of regional systems. Intercontinental ballistic missile targeting, satellite tracking, and global navigation all required a single, unified, geocentric reference frame. The World Geodetic System program was DMA’s answer.

SystemYearEquatorial radius (m)Flattening (1/f)Key data sources
WGS-6019606,378,165298.3Astro-geodetic, early Vanguard satellite obs.
WGS-6619666,378,145298.25Transit Doppler data
WGS-7219726,378,135298.26Improved Doppler, Baker-Nunn, radar altimetry
WGS-8419846,378,137298.257223563GPS, SLR, VLBI (current standard)

The Defense Mapping Agency (DMA) was established in 1972 by consolidating the mapping functions of the Army Map Service, the Naval Oceanographic Office, and the Air Force Aeronautical Chart and Information Center. DMA was renamed the National Imagery and Mapping Agency (NIMA) in 1996, and again renamed the National Geospatial-Intelligence Agency (NGA) in 2003. NGA continues to maintain WGS-84 today.

The chain of custody from WGS-72 to every SGP4 implementation in the world:

graph TD
    A["Seppelin (1974)<br/>DMA report defining WGS-72<br/>4 defining parameters + zonal harmonics"] --> B["NORAD / AFSPC<br/>Adopted WGS-72 for satellite catalog<br/>Used J2, J3, J4 for perturbation models"]
    B --> C["Hoots & Roehrich (1980)<br/>Spacetrack Report No. 3<br/>Codified SGP4 in FORTRAN"]
    C --> D["FORTRAN driver.f DATA statement<br/>XJ2, XJ3, XJ4, XKE, XKMPER"]
    D --> E["Kelso (1988)<br/>Pascal and C translations<br/>Preserved exact constant values"]
    E --> F["Vallado et al. (2006)<br/>C++ / Python / MATLAB<br/>Added wgs72 and wgs84 constant modes"]
    F --> G["Modern implementations<br/>satellite.js, python-sgp4, sgp4-rs<br/>All carry the same WGS-72 constants"]

The consequences of this coupling:

  1. TLE elements absorb WGS-72 biases. The fitted mean motion, eccentricity, and inclination compensate for the specific J2/J3/J4 values used during orbit determination.
  2. WGS-84 constants produce systematic errors. Propagating a TLE with WGS-84 constants introduces position errors of typically 1—3 km over 24 hours.
  3. Every TLE consumer must use WGS-72. This is why SGP4 has never been updated to WGS-84, even though WGS-84 has been the DoD geodetic standard since 1984.

This is the canonical comparison table for the SGP4 theory archive. The WGS-84 page discusses the modern datum but refers back here for the detailed constant comparison.

ParameterWGS-72WGS-84DeltaNotes
aa (m)6,378,1356,378,137+2 m
1/f1/f298.26298.257223563~0.003WGS-84 uses derived ff
GMGM (m3^3/s2^2)3.986005×10143.986005 \times 10^{14}3.986004418×10143.986004418 \times 10^{14}5.82×108-5.82 \times 10^{8}
ω\omega (rad/s)7.292115147×1057.292115147 \times 10^{-5}7.292115×1057.292115 \times 10^{-5}1012\sim 10^{-12}
J2J_21.0826158×1031.0826158 \times 10^{-3}1.08262982×1031.08262982 \times 10^{-3}+1.4×107+1.4 \times 10^{-7}
J3J_32.53881×106-2.53881 \times 10^{-6}2.53215×106-2.53215 \times 10^{-6}+6.66×109+6.66 \times 10^{-9}
J4J_41.65597×106-1.65597 \times 10^{-6}1.61999×106-1.61999 \times 10^{-6}+3.6×108+3.6 \times 10^{-8}

The differences are small in absolute terms but significant when accumulated over multiple orbit revolutions in a precision propagator.

The Vallado et al. (2006) SGP4 revision defined three gravity constant modes:

  • wgs72 — Original STR#3 constants from Seppelin/WGS-72. This is the correct mode for all operational TLE processing.
  • wgs84 — Updated constants from WGS-84. Exists solely for academic comparison and is not operationally valid with standard TLEs.
  • wgs72old — Constants from early Kelso implementations with minor rounding differences. Preserved for backward compatibility testing.

SGP4 uses Earth radii (er) for distance and minutes for time. The gravitational parameter must be converted from SI units to this internal system.

Starting from the WGS-72 value:

GM=3.986005×1014  m3/s2GM = 3.986005 \times 10^{14} \;\text{m}^3/\text{s}^2

Convert meters to Earth radii (1  er=6,378,135  m1 \;\text{er} = 6{,}378{,}135 \;\text{m}):

GM=3.986005×1014(6.378135×106)3=3.986005×10142.59273×1020=1.53768×106  er3/s2GM = \frac{3.986005 \times 10^{14}}{(6.378135 \times 10^6)^3} = \frac{3.986005 \times 10^{14}}{2.59273 \times 10^{20}} = 1.53768 \times 10^{-6} \;\text{er}^3/\text{s}^2

Convert seconds to minutes (1  min=60  s1 \;\text{min} = 60 \;\text{s}):

GM=1.53768×106×3600=5.53566×103  er3/min2GM = 1.53768 \times 10^{-6} \times 3600 = 5.53566 \times 10^{-3} \;\text{er}^3/\text{min}^2 XKE=GM=5.53566×103=0.0743669161  er3/2/minXKE = \sqrt{GM} = \sqrt{5.53566 \times 10^{-3}} = 0.0743669161 \;\text{er}^{3/2}/\text{min}

This is the value hardcoded in the FORTRAN DATA statement as .743669161E-1.

Derivation: How C2,0C_{2,0} Becomes J2J_2

Section titled “Derivation: How C2,0C_{2,0}C2,0​ Becomes J2J_2J2​”

The WGS-72 defining parameter is the normalized spherical harmonic coefficient:

Cˉ2,0=484.166×106\bar{C}_{2,0} = -484.166 \times 10^{-6}

The unnormalized zonal harmonic is obtained by applying the normalization factor:

J2=22+1    Cˉ2,0=5×(484.166×106)J_2 = -\sqrt{2 \cdot 2 + 1} \;\cdot\; \bar{C}_{2,0} = -\sqrt{5} \times (-484.166 \times 10^{-6}) J2=2.2360680×484.166×106=1.0826158×103J_2 = 2.2360680 \times 484.166 \times 10^{-6} = 1.0826158 \times 10^{-3}

The STR#3 FORTRAN truncates this to 1.082616E-3 (7 significant figures), introducing a rounding difference at the 6th decimal place. The WGS-84 value of 1.08262982×1031.08262982 \times 10^{-3} comes from the higher-resolution EGM96 gravitational model and differs by 1.4×1071.4 \times 10^{-7} — small in isolation, but consequential when the propagator expects the WGS-72 value.