# TLE/SGP4 state vector accuracy assessment

I’m using the Planet Labs state vectors downloadable from http://ephemerides.planet-labs.com/planet.states or http://ephemerides.planet-labs.com/planet_YYYYMMDD.states to assess the TLEs/SGP4 accuracy (this post is related to What is the accuracy / uncertainty of Two Line Elements (TLEs)? and PSLV-C39/IRNSS-1H TLE accuracy).
Planet Labs publish a report with the RMS errors for their satellites (http://ephemerides.planet-labs.com/jspoc_matches.txt), but it doesn’t seem statistically useful to me, so I did my own analysis.

I chose the DOVE PIONEER satellite and in the next days I’ll do the same analysis also for other satellites. The graph shows its perigee, apogee, semi-major axis and eccentricity obtained from TLEs/SGP4:

After all the conversions (TEME to J2000, TDT to UTC), I calculated the TLE error: the distance between the Planet Labs position vector and the position obtained with the TLEs propagated with the SGP4 to the epoch of the Planet Labs state vectors.

The analysis includes the “historical” Planet Labs states from day 40 (of this year, I discarded the first unreliable JSpOC TLEs) to day 232 and 35 additional “latest” states (updated hourly).
The TLE age is calculated as PlanetLab_epoch – TLE_epoch and I only consider the ages in the interval [-1, 1] days; there are a total of 1256 values.

Unfortunately, there are also a few outliers (probably they come from JSpOC satellite identification cross-tagging), but I don’t want to include them in the analysis, because they usually can be easily spotted and hence can be easily discarded.
Since the distribution of the errors is unknown and far from normal, I cannot use the “standard” methods to find the outliers, so I use a simple rule based on the Chebyshev's inequality and I discard all the errors above 10 times the standard deviation (those values are “very rare”).
The discarded errors are: 531.7881 km (for age= 0.089 days) and 188.8319 km (for age= -0.91 days), the next biggest error (not discarded) is 8.4 km for age= 0.9 days. Here’s the graph of the (1254) used values:

We see that the errors for age > 0 are significantly bigger than the errors for age < 0 (as expected, because the JSpOC TLE are fitted to the tracking data).

Since I’m interested in a statistical level of confidence for the TLE/SGP4 derived state vector accuracy, I cannot just take 8.4 km as the biggest possible error.
If I consider the 95th percentile, I get 2.7 km (we could say that the position error given by “most of the TLEs/SGP4” in the [-1, 1] days interval is not bigger than 2.7 km), but a much more robust and conservative upper bound for the error comes from an improved version of the Chebyshev's inequality: https://en.wikipedia.org/wiki/Chebyshev%27s_inequality#Univariate_case (I use the version given by Ata Kaban). From that method I get that the TLE/SGP4 error is less than 5.3 km with a 95% confidence level.

All that said, here’s the questions:

1. is there any way to obtain the hourly historical states?
2. could anyone calculate a narrower statistically valid upper bound?
3. could that 5.3 km error be taken as a “typical” TLE/SGP4 state vector accuracy (in the [-1, 1] interval) for a satellite that orbits at about 400 km altitude?
4. how big could be the radial component of the error wrt the total error?
• I hope you don't mind the small edits. You're asking about the accuracy of the state vectors obtained from SGP4 using TLEs, not TLE accuracy. I have a question how you obtained "perigee, apogee, semi-major axis and eccentricity obtained from TLEs/SGP4" which is not related to state vector accuracy: how did you obtain those values? Do they just come from converting mean motion to semi-major axis using a simple $GM_{Earth}$ and then the TLE's "eccentricity" value to get periapsis and apoapsis? In LEO the Earth's J2 is about a 1 part per thousand effect, so these would then be off by several km. – uhoh Aug 25 '18 at 11:44
• Thank you. If you correct also the grammatical errors it's even better. :-) I propagate the TLEs with the SGP4 for 1 orbit and I find the min, average and max radius vector; e= (apo - peri) / (apo + peri). – Cristiano Aug 25 '18 at 11:48
• I remember hearing this talk at the IAA meeting in Berlin. Might be useful. – Eviatar.E Aug 25 '18 at 11:54
• I, for one, can't wait for TLEs to be set aside as an artefact of the history of astrodynamics. The format is mainly due to the limit space on punch cards! To your general question though, SPG 4 isn't very precise at all. To get a better fidelity of propagation, open GMAT, use a 21 by 21 Earth gravity model, and enable third body perturbations of the Moon, Sun and Jupiter. Also turn on one of the Jacchia Roberts drag models. Propagate that forward, and the error should go sharply down (supposing you have a good idea of the drag coefficient of the spacecraft). – ChrisR Aug 26 '18 at 18:19