Error Reading TLE

Hello dear Orekit team,

I recently faced a misunderstanding while reading a TLE. I wanted to get the sma using orekit but it gave me a wrong answer.

Here is the Orekit code :

tle_obj = TLE(tle[0], tle[1])

propagator = TLEPropagator.selectExtrapolator(tle_obj)

orbit = propagator.getInitialState().getOrbit()

sma = orbit.getA() / 1000

And here is the home made code delivering the right answer :

mu = 398600.4418  # km^3/s^2

line2 = tle[1].split()

n_rev_day = float(line2[7])

n = n_rev_day * 2*np.pi / 86400  # rad/s

sma = (mu / n**2)**(1/3)

Could you tell me why both don’t give the same results ?

(i’m in Orekit 13 by the way)

Thanks a lot

Augustin

This is because one version gives you the osculating value and the other gives you the mean value.
Converting TLE to any other orbit type should not be done on a single point.

1 Like

Hi there,

when you do this, you’re retrrieving the osculating state, not the mean one contained in a TLE.

For what you’re looking for, use computeSemiMajorAxis on the TLE Orekit object.

Cheers,
Romain.

2 Likes

Thank you very much :slight_smile: