Skip to content

STR#2 — Lane & Hoots (1979): Near-Earth Theory

The second Spacetrack Report provides the theoretical derivation behind the SGP4 subroutine — combining Lane’s 1965 atmospheric drag model with Brouwer’s gravitational perturbation theory for near-earth orbits (period less than 225 minutes).

Lane presented a power-law atmospheric density model:

ρ=ρ0(q0srs)4\rho = \rho_0 \left(\frac{q_0 - s}{r - s}\right)^4

where q0=a(1e)q_0 = a(1-e) was the perigee height of each satellite. This produced a unique atmosphere per satellite — useful for limited-arc fitting, but suboptimal for catalog maintenance.

Lane derived the remaining element rates and computed equinoctial elements to generate the first operational theory, SGP. This was drag-only, with no geopotential.

Two key improvements:

  • Fixed atmosphere model: q0=120 km+aEq_0 = 120\text{ km} + a_E and s=78 km+aEs = 78\text{ km} + a_E for all satellites, eliminating the unique-atmosphere-per-satellite problem
  • Brouwer geopotential: Combined with the complete Brouwer theory (J2J_2 through J5J_5) to produce GP4

Lane and Hoots formalized two variants:

  • AFGP4 (Air Force General Perturbations 4): Complete Brouwer geopotential with four zonal harmonics, second-order secular rates from J22J_2^2 and J4J_4, plus Lane drag
  • SGP4 (Simplified General Perturbations 4): First-order J2J_2 secular rates only, eccentric-anomaly approximations for short-period terms, plus Lane drag

The simplification from AFGP4 to SGP4 proceeds through an intermediate theory (IGP4) and a geopotential simplification. The key insight: replacing u=ω+fu = \omega + f with U=ω+EU = \omega + E in the short-period trigonometric arguments introduces errors of order e(k2/p2)e \cdot (k_2/p^2), negligible for typical LEO orbits.

1. Initialization (computed once per element set)

Section titled “1. Initialization (computed once per element set)”
STR#2 EquationDescriptionsgp4.f Variable
Eqs. 103—108Kozai-to-Brouwer conversion (a1a_1, δ1\delta_1, a0a_0, δ0\delta_0, n0n_0'', a0a_0'')A1, DEL1, AO, DELO, XNODP, AODP
Eq. 3θ=cosi0\theta = \cos i_0COSIO, THETA2, THETA4
Eq. 4Atmospheric parameter ξ\xiTSI
Eq. 5β0=(1e02)1/2\beta_0 = (1-e_0^2)^{1/2}BETAO
Eq. 6η=a0e0ξ\eta = a_0 e_0 \xiETA, ETASQ
Eq. 111Primary drag coefficient C2C_2C2
Eq. 112C1=BC2C_1 = B^* C_2C1, C1SQ
Eq. 113Drag contribution to ω\omega: C3C_3C3
Eq. 114Eccentricity drag coefficient C4C_4C4
Eq. 115Eccentricity oscillatory drag C5C_5C5
Eqs. 116—118Higher-order drag (low perigee): D2D_2, D3D_3, D4D_4D2, D3, D4
Eq. 119Secular mean anomaly rate M˙\dot{M}XMDOT
Eq. 120Secular perigee rate ω˙\dot{\omega}OMGDOT
Eq. 121Secular node rate Ω˙\dot{\Omega}XNODOT

2. Secular Update (at each propagation time)

Section titled “2. Secular Update (at each propagation time)”
STR#2 EquationDescriptionsgp4.f Variable
Eqs. 122—124Updated MM, ω\omega, Ω\OmegaXMD, OMGASM, XNODES
Eq. 125Updated semimajor axis aaA
Eq. 126Updated eccentricity eeE
Eq. 127/135Updated mean longitude L\mathbb{L}XL
Eq. 128Low-perigee drag correction δω\delta\omegaOMGADF
Eq. 129Low-perigee drag correction δM\delta MXMDF
STR#2 EquationDescriptionsgp4.f Variable
Eq. 138axN=ecosωa_{xN} = e \cos \omegaAXN
Eqs. 139—141ayN=esinωa_{yN} = e \sin \omega + J3J_3 correctionAYN, AYNL
Eq. 142Long-period corrected mean longitude LT\mathbb{L}_TXLT
STR#2 EquationDescriptionsgp4.f Variable
Eqs. 146—147Newton-Raphson iteration for (E+ω)(E+\omega)U, EPW
Eqs. 148—149ecosEe\cos E, esinEe\sin EECOSE, ESINE
Eqs. 152—154rr, r˙\dot{r}, rf˙r\dot{f} from Kepler solutionR, RDOT, RFDOT
Eqs. 155—157cosu\cos u, sinu\sin u, uuCOSU, SINU, U
STR#2 EquationDescriptionsgp4.f Variable
Eq. 158Short-period correction Δr\Delta rDR
Eq. 159Short-period correction Δu\Delta uDU
Eq. 160Short-period correction ΔΩ\Delta\OmegaDNODE
Eq. 161Short-period correction Δi\Delta iDI
Eq. 162Short-period correction Δr˙\Delta\dot{r}implicit
Eq. 163Short-period correction Δrf˙\Delta r\dot{f}implicit
STR#2 EquationDescriptionsgp4.f Variable
Eqs. 164—169Osculating rkr_k, uku_k, Ωk\Omega_k, iki_k, r˙k\dot{r}_k, rf˙kr\dot{f}_kRK, UK, XNODEK, XINCK, RDOTK, RFDOTK
Eqs. 170—173Orientation unit vectors M\vec{M}, N\vec{N}, U\vec{U}, V\vec{V}MX/MY/MZ, NX/NY/NZ, UX/UY/UZ, VX/VY/VZ
Eqs. 176—181Cartesian position and velocityX, Y, Z, XDOT, YDOT, ZDOT

The C4C_4 coefficient. A footnote on page 32 states: “The k2k_2 terms of C4C_4 in the operational coding do not agree with this equation. The present equation has been verified as correct with the author.” The FORTRAN implements a slightly different C4C_4 than the derived equation. The discrepancy has been retained in operational code for catalog consistency.

The (1η2)(1-\eta^2) exponent in C2C_2. The report shows (1η2)9/2(1-\eta^2)^{-9/2} as the leading factor, with an additional (1η2)(1-\eta^2) multiplying a0a_0 inside the braces, giving an effective 7/2^{-7/2} for the first term and 9/2^{-9/2} for the k2k_2 correction. Some secondary references incorrectly show 7/2^{-7/2} throughout.

ChapterReport SectionContent
01Title pageBibliographic information
02Section 1Historical context, theory relationships
03Section 2Lane atmospheric drag theory
04Section 3AFGP4: Complete Brouwer + drag
05Section 4IGP4: Intermediate theory (not implemented)
06Section 5Simplification of short-period terms
07Section 6SGP4: Complete computational algorithm
08Section 7Position and velocity computation
09ReferencesBibliography
10AppendixConstants, units, TLE format