Unless otherwise stated, all data are obtained from the
TLEs downloaded from
www.space-track.org.
- Before 2021-07-23: all the TLEs was processed with the SGP4/SDP4 library published by 18 SPCS and freely downloadable from www.space-track.org.
- After 2021-07-23: all the TLEs are processed with the SGP4 C++ library v2020-09-10 published by David Vallado and freely downloadable from celestrak.com.
According to 18 SPCS,
their TLE must always be used with the SGP4/SDP4 propagator; see
this link (login required):
"SGP4 is an analytic method based on a general perturbation theory for generating ephemerides for satellites in earth-centered orbits. It is the proper means for correctly propagating a USSPACECOM 18th Space Control Squadron (18 SPCS) Two Line Element (TLE).".
Well, but what's the error when we use TLEs without SGP4? Let's do some calculations for the well-known IRNSS-1H / PSLV-C39 satellite.
All the numbers are presented with an unrealistic accuracy and \(\mu = 398600.8\ km^3\cdot s^{-2}\) (with the TLEs, WGS-72 ellipsoid must be used).
Suppose that we want to calculate the osculating semi-major axis, perigee and apogee of that satellite from the following TLE:
1 42928U 17051A 18272.08593412 .00449873 -94661-5 36430-3 0 9997
2 42928 19.1496 178.1014 1756625 192.5230 162.5249 12.31022939 41414
The wrong way
The easiest (and
the most wrong) way is to use the mean motion (columns 53 to 63 in the line 2) to calculate the semi-major axis with the formula \(a=\sqrt[3]{\mu(\frac{T}{2\pi})^2}\), then we use the eccentricity (columns 27 to 33 in the line 2, decimal point assumed) to calculate the perigee radius vector with \(Rp=a \cdot (1-e)\) and the apogee radius vector with \(Ra=a \cdot (1+e)\).
Since the mean motion is expressed in revolutions per day, we first need to convert 12.31... in seconds: T = 86400 / 12.31022939 = 7018.55320992 s.
Now we can calculate \(a=\sqrt[3]{398600.8\cdot(\frac{7018.55320992}{2\pi})^2} = 7923.02830819\ km\)
, \(Rp=7923.02830819 \cdot (1-0.1756625) =6531.24934800\ km\) and \(Ra=7923.02830819 \cdot (1+0.1756625) =9314.80726838\ km\).
The correct procedure
Now let's do the calculations by following the correct procedure. We first calculate the satellite state (km, km/s) for the TLE epoch with the SGP4 propagator; this can be easily done with the CSpOC's library
Sgp4PropMse() function:
Rx= -9260.27177034, Ry= 306.968939716, Rz= -0.000210324947856
Vx= -0.458859515256, Vy= -5.63117994141, Vz= 1.96073394119
Now we use
PosVelToKep() to obtain a = 7928.27076977 km and e = 0.1745066005, from which we obtain Rp = 6544.7351899 km and Ra = 9311.80634965 km.
To summarize, for that TLE, the wrong way gives the following errors: semi-major axis: 5.2 km, perigee: 13.5 km and apogee: 3 km.
The graph shows the result for the perigee obtained from 421 TLEs.
The red plot is the wrong way, while the green plot is the correct procedure.
The error is the blue plot calculated as wrong_perigee - correct_perigee.
If we use the wrong way, not only we can get very big errors, but we also totally lose the wide perturbation on the perigee.
For a detailed analysis of the errors, please take a look
here.
A widely adopted notation used to describe the size of an orbit is something like 222 x 333 km, but it's a rather ambiguous notation because it's usually not specified what those two numbers exactly represent; they could be: altitudes above an unknown ellipsoid or radius vectors scaled to an unknown sphere. Let's see the differences with the help of a graph:
it shows the magnitude of the Tiangong-2 radius vector scaled to a sphere with a radius of 6371 km (blue plot) and its altitude above the WGS-72 ellipsoid (used by CSpOC). Also shown is the latitude of the station (dashed line).
We see big differences between the magnitude of the radius vector and the altitude; if we consider the former, the orbit is 303.7 x 295.8 km, while if we consider the altitude, the orbit is 305.2 x 291.4 km.
All the radius vectors shown in this site are usually scaled to a surface of a sphere with a radius of 6371 km, the mean Earth's radius used in geodesy, which is obtained from: (2 · Re + Rp) / 3.
For example, if the graph shows: "Radius vector - 6371 [km]", it means that a value equal to 411 km (the approximate ISS altitude) represents a radius vector of 6371 + 411 = 6782 km.