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).
Evolution of Lane’s Drag Theory
Section titled “Evolution of Lane’s Drag Theory”1965: The Original
Section titled “1965: The Original”Lane presented a power-law atmospheric density model:
where was the perigee height of each satellite. This produced a unique atmosphere per satellite — useful for limited-arc fitting, but suboptimal for catalog maintenance.
1965—1969: SGP
Section titled “1965—1969: SGP”Lane derived the remaining element rates and computed equinoctial elements to generate the first operational theory, SGP. This was drag-only, with no geopotential.
Late 1960s: GP4
Section titled “Late 1960s: GP4”Two key improvements:
- Fixed atmosphere model: and for all satellites, eliminating the unique-atmosphere-per-satellite problem
- Brouwer geopotential: Combined with the complete Brouwer theory ( through ) to produce GP4
1979: AFGP4 and SGP4
Section titled “1979: AFGP4 and SGP4”Lane and Hoots formalized two variants:
- AFGP4 (Air Force General Perturbations 4): Complete Brouwer geopotential with four zonal harmonics, second-order secular rates from and , plus Lane drag
- SGP4 (Simplified General Perturbations 4): First-order 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 with in the short-period trigonometric arguments introduces errors of order , negligible for typical LEO orbits.
Equation-to-FORTRAN Mapping
Section titled “Equation-to-FORTRAN Mapping”1. Initialization (computed once per element set)
Section titled “1. Initialization (computed once per element set)”| STR#2 Equation | Description | sgp4.f Variable |
|---|---|---|
| Eqs. 103—108 | Kozai-to-Brouwer conversion (, , , , , ) | A1, DEL1, AO, DELO, XNODP, AODP |
| Eq. 3 | COSIO, THETA2, THETA4 | |
| Eq. 4 | Atmospheric parameter | TSI |
| Eq. 5 | BETAO | |
| Eq. 6 | ETA, ETASQ | |
| Eq. 111 | Primary drag coefficient | C2 |
| Eq. 112 | C1, C1SQ | |
| Eq. 113 | Drag contribution to : | C3 |
| Eq. 114 | Eccentricity drag coefficient | C4 |
| Eq. 115 | Eccentricity oscillatory drag | C5 |
| Eqs. 116—118 | Higher-order drag (low perigee): , , | D2, D3, D4 |
| Eq. 119 | Secular mean anomaly rate | XMDOT |
| Eq. 120 | Secular perigee rate | OMGDOT |
| Eq. 121 | Secular node rate | XNODOT |
2. Secular Update (at each propagation time)
Section titled “2. Secular Update (at each propagation time)”| STR#2 Equation | Description | sgp4.f Variable |
|---|---|---|
| Eqs. 122—124 | Updated , , | XMD, OMGASM, XNODES |
| Eq. 125 | Updated semimajor axis | A |
| Eq. 126 | Updated eccentricity | E |
| Eq. 127/135 | Updated mean longitude | XL |
| Eq. 128 | Low-perigee drag correction | OMGADF |
| Eq. 129 | Low-perigee drag correction | XMDF |
3. Long-Period Periodics
Section titled “3. Long-Period Periodics”| STR#2 Equation | Description | sgp4.f Variable |
|---|---|---|
| Eq. 138 | AXN | |
| Eqs. 139—141 | + correction | AYN, AYNL |
| Eq. 142 | Long-period corrected mean longitude | XLT |
4. Kepler’s Equation
Section titled “4. Kepler’s Equation”| STR#2 Equation | Description | sgp4.f Variable |
|---|---|---|
| Eqs. 146—147 | Newton-Raphson iteration for | U, EPW |
| Eqs. 148—149 | , | ECOSE, ESINE |
| Eqs. 152—154 | , , from Kepler solution | R, RDOT, RFDOT |
| Eqs. 155—157 | , , | COSU, SINU, U |
5. Short-Period Periodics
Section titled “5. Short-Period Periodics”| STR#2 Equation | Description | sgp4.f Variable |
|---|---|---|
| Eq. 158 | Short-period correction | DR |
| Eq. 159 | Short-period correction | DU |
| Eq. 160 | Short-period correction | DNODE |
| Eq. 161 | Short-period correction | DI |
| Eq. 162 | Short-period correction | implicit |
| Eq. 163 | Short-period correction | implicit |
6. Position and Velocity
Section titled “6. Position and Velocity”| STR#2 Equation | Description | sgp4.f Variable |
|---|---|---|
| Eqs. 164—169 | Osculating , , , , , | RK, UK, XNODEK, XINCK, RDOTK, RFDOTK |
| Eqs. 170—173 | Orientation unit vectors , , , | MX/MY/MZ, NX/NY/NZ, UX/UY/UZ, VX/VY/VZ |
| Eqs. 176—181 | Cartesian position and velocity | X, Y, Z, XDOT, YDOT, ZDOT |
Known Errata
Section titled “Known Errata”The coefficient. A footnote on page 32 states: “The terms of 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 than the derived equation. The discrepancy has been retained in operational code for catalog consistency.
The exponent in . The report shows as the leading factor, with an additional multiplying inside the braces, giving an effective for the first term and for the correction. Some secondary references incorrectly show throughout.
Chapter Structure
Section titled “Chapter Structure”| Chapter | Report Section | Content |
|---|---|---|
| 01 | Title page | Bibliographic information |
| 02 | Section 1 | Historical context, theory relationships |
| 03 | Section 2 | Lane atmospheric drag theory |
| 04 | Section 3 | AFGP4: Complete Brouwer + drag |
| 05 | Section 4 | IGP4: Intermediate theory (not implemented) |
| 06 | Section 5 | Simplification of short-period terms |
| 07 | Section 6 | SGP4: Complete computational algorithm |
| 08 | Section 7 | Position and velocity computation |
| 09 | References | Bibliography |
| 10 | Appendix | Constants, units, TLE format |