I was reading this question: Calculation of Eccentricity of orbit from velocity and radius and tried to use the proposed equation to reconstruct the ecco field of TLE by it's R,V vectors. The formula is simple:

$\mathbf{e} = \frac{\mathbf{v} \times \mathbf{h}}{\mu} - \frac{\mathbf{r}}{\|\mathbf{r}\|}$

Where $\mathbf{h} = \mathbf{r} \times \mathbf{v}$

The tested TLE:

1 41386U 16016A   23053.13950576  .00028887  00000-0  32773-3 0  9993
2 41386  97.1800 138.9553 0010664 243.3776 116.6390 15.62259129388863

It's ecco is 0.0010664 while the formula gives me 0.0001432 for TEME/GCRF vectors. And for ITRF vectors it results in 0.0202059.

I've adapted my code for python to print all 3 values:

import numpy as np
from skyfield.api import EarthSatellite, load
from skyfield.framelib import itrs
from sgp4.api import Satrec, WGS84

ts = load.timescale()

line1 = '1 41386U 16016A   23053.13950576  .00028887  00000-0  32773-3 0  9993'
line2 = '2 41386  97.1800 138.9553 0010664 243.3776 116.6390 15.62259129388863'
satrec = Satrec.twoline2rv(line1, line2, WGS84)
print('TLE ecco: ', satrec.ecco)

e, r, v = satrec.sgp4(satrec.jdsatepoch, satrec.jdsatepochF)
res = np.linalg.norm(np.cross(np.cross(v,r), v)/398600.8 - r/np.linalg.norm(r))
print('TEME ecco: ', res)

sat = EarthSatellite.from_satrec(satrec, ts)
geocentric1 = sat.at(sat.epoch)

r = geocentric1.position.km
v = geocentric1.velocity.km_per_s
res = np.linalg.norm(np.cross(np.cross(v,r), v)/398600.8 - r/np.linalg.norm(r))

print('GCRF ecco: ', res)

pos1, vel1 = geocentric1.frame_xyz_and_velocity(itrs)
r = pos1.km
v = vel1.km_per_s
res = np.linalg.norm(np.cross(np.cross(v,r), v)/398600.8 - r/np.linalg.norm(r))

print('ITRF ecco: ', res)

The question is: What frames this formula is valid for? Is it possible at all to get eccentricity of near-circular orbit by RV vectors with at least 1e-5 precession?

  • 2
    $\begingroup$ The data in the TLE aren't really orbital elements, even though many fields have the same name. They are just values generated to reproduce the actual position and velocity within some tolerance when using the SGP algorithm. So it's best to assume anything in a TLE is useless outside of the SGP algorithm. $\endgroup$ Jul 25, 2023 at 19:18
  • $\begingroup$ just curious - you're already posting questions in Space Exploration SE where a TLE/artificial satellite orbit propagation question would be centrally on-topic; was there a reason you asked this in Astronomy SE instead? I don't think it's off-topic here necessarily, just wondering. $\endgroup$
    – uhoh
    Jul 26, 2023 at 12:51
  • 1
    $\begingroup$ @uhoh That's just because the original question was in Astronomy: astronomy.stackexchange.com/questions/29005 I don't mind if someone move my question to a proper place. $\endgroup$
    – truf
    Jul 26, 2023 at 13:31

1 Answer 1


For orbits with non-small eccentricities (say e>0.1) that never get very close to Earth for atmospheric or higher order multipole terms, your biggest error will come from Earth's J2 term, the "oblateness" term meaning gravity feels stronger at the equator than the poles at a given radius.

Your equation works for a point mass or any spherically symmetric mass (i.e. Newton's shell theorem but that big J2 is a roughly 1 part per thousand effect in low Earth orbit and so any equation based on a spherical Earth will always have a ppt sized error; larger for equatorial earth and probably much less for polar where the J2 term results in an oscillating potential centered on zero.

You should get much better results with an orbit in MEO (like GPS et al.) and at least somewhat better by choosing a polar orbit in LEO.

Don't go to high Earth orbit because the gravitational effects of the Sun and Moon perturb them so much that TLE's begin to break down.

update: I see that 41386 is already in a polar orbit, so instead try a LEO orbit that's at a similar (but not too much lower) orbital altitude but closer to equatorial (say i<30°) to see if the disagreement is worse, and the MEO to see that is is better.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .