Skip to content

IERS Conventions (2010): Coordinate Frames

How IERS 2010 Relates to SGP4’s TEME Frame

Section titled “How IERS 2010 Relates to SGP4’s TEME Frame”

SGP4 outputs satellite positions and velocities in a frame called TEME (True Equator, Mean Equinox). TEME is not a standard IAU reference frame. It is a computational artifact of the SGP4 algorithm, defined by:

  • The true equator of date (the CIP equator after applying nutation)
  • A “mean equinox” that is not the standard IAU mean equinox, but an equinox computed using only a truncated 4-term nutation series for the equation of the equinoxes

To convert SGP4 output to standard frames (ITRF for ground positions, GCRS/J2000 for inertial work), the relationship between TEME’s simplified rotation model and the full IAU 2006/2000A model must be understood.

[PEF]=R3(θGASTTEME)[TEME][\text{PEF}] = R_3(\theta_{GAST_{TEME}}) \cdot [\text{TEME}] [ITRF]=W(t)[PEF][\text{ITRF}] = W(t) \cdot [\text{PEF}]

where:

  • θGASTTEME\theta_{GAST_{TEME}} is Greenwich Apparent Sidereal Time computed using the same truncated nutation that SGP4 uses internally
  • W(t)W(t) is the polar motion matrix using observed xpx_p, ypy_p values
[GCRS]=Q(t)R3(θGASTFULL)R3(θGASTTEME)[TEME][\text{GCRS}] = Q(t) \cdot R_3(\theta_{GAST_{FULL}}) \cdot R_3(-\theta_{GAST_{TEME}}) \cdot [\text{TEME}]

Or equivalently, using the two-step approach employed by Skyfield:

  1. Convert TEME to ITRF using the simplified rotation
  2. Convert ITRF to GCRS using the full IERS 2010 model
ModelTermsAccuracyUsed by
1980 IAU (4-term subset)4~1 arcsecSGP4/SDP4 (TEME frame)
1980 IAU (full)106~10 masIERS Conventions 1996
IAU 2000B<80~1 masQuick applications (1995—2050)
IAU 2000A (MHB2000)1365~0.1 masIERS Conventions 2010 (current)

SGP4’s internal nutation computation uses only the four largest terms from the 1980 IAU series. From Vallado et al. (2006):

  1. 18.6-year (Ω\Omega). The Moon’s ascending node regression. Amplitude ~17.2” in longitude, ~9.2” in obliquity. By far the dominant nutation term.
  2. Semi-annual. ~1.3” in longitude.
  3. Fortnightly. ~0.2” in longitude.
  4. Monthly. ~0.1” in longitude.

These four terms capture approximately 98% of the total nutation amplitude but leave systematic errors of ~1 arcsecond (about 30 meters at LEO altitudes when converted to position error). This residual is consistent with TLE accuracy limits of ~1 km.

The IERS 2010 standard adopts IAU 2000A_R06:

  • 678 lunisolar nutation terms (in-phase and out-of-phase)
  • 687 planetary nutation terms
  • Total of 1365 terms
  • Includes time-varying coefficients (Poisson terms)
  • Small adjustments for IAU 2006 precession compatibility (J2J_2 rate effect, obliquity correction)
  • Accuracy limited to ~0.3 mas by the unpredictable Free Core Nutation
PeriodAmplitude (Δψ\Delta\psi)Source
18.613 yr17206.4-17206.4 masLunar node (Ω\Omega)
182.6 days1317.1-1317.1 masSolar semi-annual (2F2D+2Ω2F - 2D + 2\Omega)
13.66 days227.6-227.6 masLunar fortnightly (2F+2Ω2F + 2\Omega)
9.13 days207.5207.5 masLunar (2Ω2\Omega)
365.26 days147.6147.6 masSolar annual (ll')

IAU 2000 Resolution B1.6 adopted:

  • The Celestial Intermediate Pole (CIP) to replace the Celestial Ephemeris Pole
  • The Celestial Intermediate Origin (CIO) to replace the equinox as the origin of right ascension
  • The Earth Rotation Angle (ERA) as the fundamental measure of Earth rotation (replacing sidereal time)
  • The IAU 2000A precession-nutation model (MHB2000) as the standard for the non-rigid Earth

IAU 2006 Resolution B1 adopted:

  • Improved precession polynomial expressions (5th degree in tt) based on dynamical theory
  • The J2J_2 secular rate effect incorporated into precession
  • The mean obliquity value ϵ0=84381.406\epsilon_0 = 84381.406'' (vs. IAU 2000’s 84381.44884381.448'')
  • Small adjustments to the IAU 2000A nutation to maintain consistency with the new precession

IERS 2010 Chapter 5 describes two methods that agree to microarcsecond precision:

[GCRS]C(X,Y,s)[CIRS]R3(ERA)[TIRS]W(xp,yp,s)[ITRS][\text{GCRS}] \xrightarrow{C(X,Y,s)} [\text{CIRS}] \xrightarrow{R_3(-ERA)} [\text{TIRS}] \xrightarrow{W(x_p, y_p, s')} [\text{ITRS}]
  • Uses CIP coordinates (X,Y)(X, Y) directly (no separate precession/nutation angles)
  • Uses Earth Rotation Angle (linear in UT1)
  • Conceptually cleaner: ERA measures pure rotation, precession-nutation is in Q(t)Q(t)
[GCRS]NPB[True equinox]R3(GAST)[TIRS]W(xp,yp,s)[ITRS][\text{GCRS}] \xrightarrow{N \cdot P \cdot B} [\text{True equinox}] \xrightarrow{R_3(-GAST)} [\text{TIRS}] \xrightarrow{W(x_p, y_p, s')} [\text{ITRS}]
  • Uses classical nutation angles (Δψ\Delta\psi, Δϵ\Delta\epsilon) with precession
  • Uses Greenwich Apparent Sidereal Time
  • More familiar to older software and textbooks

The IAU Standards Of Fundamental Astronomy (SOFA) library provides reference implementations in Fortran and C. Key routine families:

RoutinePurpose
XY06 / XYS06ACIP coordinates from IAU 2006/2000A series
ERA00Earth Rotation Angle
NUT06ANutation components
PN06 / PNM06APrecession-nutation matrices
C2TCIO / C2TEQXComplete celestial-to-terrestrial matrices

Skyfield uses a combination approach:

  • Downloads IERS finals2000A data for UT1-UTC and polar motion
  • Uses the de421.bsp (or de440.bsp) JPL ephemeris for planetary positions
  • Implements the full IAU precession-nutation via precomputed tables
  • For SGP4 satellites, correctly handles the TEME intermediate frame by using the truncated nutation for the TEME-to-PEF step and the full model for subsequent frame conversions

Craft uses Skyfield on the backend for all celestial computations. Skyfield correctly handles the TEME-to-GCRS transformation internally. On the frontend, satellite.js outputs TEME directly — the client-side code converts to geodetic coordinates (latitude/longitude/altitude) using the simplified GMST approach, which is adequate for visualization at CesiumJS rendering precision.