What is SGP4, and how does this site turn a TLE into a position?

SGP4 is the standard mathematical model that carries a TLE forward in time to give a satellite's estimated position and velocity at any moment.

A TLE tells you the orbit at one moment, the epoch. To know where the satellite is now, you have to carry that orbit forward in time. That step is called propagation, and the model used with TLEs is SGP4 (Simplified General Perturbations 4).

SGP4 was developed in 1970 and published, with computer code, in the US report Spacetrack Report No. 3 in December 1980. It does not simply move the satellite around a perfect ellipse. It adds the main real-world effects: the Earth's bulge at the equator, and the drag of the thin upper atmosphere. Its partner model SDP4 adds the pull of the Moon and Sun for distant orbits. Since that 1980 report, using its code has been the common practice for anyone working with TLEs.

Near-Earth or deep-space

The report sorts every object by its orbital period. Below 225 minutes it is near-Earth and uses SGP4; at 225 minutes or more it is deep-space and uses SDP4.

  • The ISS (period 92.95 minutes) and Cartosat-3 (94.78 minutes) are near-Earth.
  • EOS-05 (GISAT-1A), in geostationary orbit with a period of 1,436.03 minutes, is deep-space.

Software picks the right branch automatically from the mean motion in the TLE.

What this site does every second

This site runs SGP4 inside your browser using the open-source satellite.js library. For the satellite you have selected, it recalculates the position every second; for the other dots on the globe, every ten seconds.

Each calculation goes: read the TLE → propagate to the current time → get a position in space → rotate that into Earth-fixed coordinates using the Earth's spin → convert to latitude, longitude and height. The Estimated Latitude, Estimated Longitude, Estimated Altitude and Estimated Velocity rows on each satellite page come straight out of that chain. If a TLE is broken and SGP4 cannot produce a position, the site shows N/A rather than a guess.

See it live

Select the ISS and watch its estimated latitude and longitude change every second as SGP4 is re-run in your browser. Open the live globe

Key facts

  • SGP4 was developed by Ken Cranford in 1970 and published in Spacetrack Report No. 3 (December 1980).
  • Near-Earth: period under 225 minutes (SGP4). Deep-space: 225 minutes or more (SDP4).
  • SGP4 uses the WGS-72 Earth constants: μ = 398,600.8 km³/s², equatorial radius 6,378.135 km.
  • SGP4 output is in the TEME (true equator, mean equinox) frame.
  • This site re-propagates the selected satellite every second and the rest every 10 seconds.

Go deeper

SGP4 is analytical: it evaluates closed-form expressions for any time instead of integrating forces step by step. That is why it can place 10,000 satellites in a browser. Spacetrack Report No. 3 describes SGP4 as a simplification of Lane and Cranford's 1969 theory, using Brouwer's 1959 solution for gravity and a power-density function for the atmosphere; SDP4's deep-space equations (Hujsak, 1979) add lunar and solar gravity and the resonance effects that matter for half-day and one-day orbits.

The outline of one SGP4 call:

  • recover the original mean motion and semi-major axis from the TLE's Kozai-style mean motion;
  • apply secular (steadily growing) changes from J2 and drag to mean anomaly, argument of perigee and RAAN, as functions of time since epoch;
  • apply long-period periodic terms, solve Kepler's equation, then add short-period terms to get the osculating (instantaneous) position and velocity.

The output is a position vector in kilometres in the TEME frame. To find latitude and longitude, this site computes the Greenwich Mean Sidereal Time with satellite.js's gstime(), rotates TEME into Earth-fixed coordinates (eciToEcf), and converts to geodetic coordinates (eciToGeodetic).

Worked check: propagate the ISS TLE with epoch 26308.88559265 forward by tsince = 0. The orbit radius from its mean motion is about 6,797 km, so the reported height should sit near 6,797 − 6,378 ≈ 419 km, and the speed near √(μ/a) = √(398,600.8 / 6,797) ≈ 7.66 km/s — the figures you see on the ISS page.

Check yourself

A satellite's TLE shows a mean motion of 1.0027 revolutions per day. Will software use SGP4 or SDP4?

Its period is 1440 / 1.0027 ≈ 1,436 minutes, well above 225 minutes, so it is deep-space and SDP4 is used.

Why does SGP4 include atmospheric drag?

Satellites in low orbits are slowed by the thin upper atmosphere, which lowers and speeds up their orbit; ignoring it would make predictions drift quickly.

Why is SGP4 fast enough to run for thousands of satellites in a browser?

It is an analytical model: it calculates the position directly from formulas for any time, rather than stepping through the forces numerically.

Sources

  1. Spacetrack Report No. 3: Models for Propagation of NORAD Element Sets (Hoots & Roehrich, 1980) — CelesTrak
  2. Revisiting Spacetrack Report #3 (AIAA 2006-6753; Vallado, Crawford, Hujsak & Kelso) — CelesTrak
  3. SATCAT record: ISS (ZARYA) (25544) — CelesTrak
  4. SATCAT record: CARTOSAT-3 (44804) — CelesTrak
  5. SATCAT record: EOS-05 (GISAT-1A) (100607) — CelesTrak
  6. Frequently Asked Questions: Two-Line Element Set Format — CelesTrak (T.S. Kelso)