I got the latest TLE from www.celestrak.com for a satellite. How could I convert it to osculating elements?

Please, share some links/references.

  • $\begingroup$ Then I don't understand what you are asking at all. Those have almost nothing to do with TLEs. Also I think you are just asking about a Keplerian orbit, not an osculating orbit. There are answers here already about nodal precession, and getting the mean anomaly vs time. I'd recommend you check existing answers. $\endgroup$
    – uhoh
    Commented Mar 9, 2018 at 15:04
  • $\begingroup$ @uhoh I mentioned TLEs because that data is available in satellite database (celestrak, space-track). I didn't find Keplerian elements for on-orbit satellites, just TLEs $\endgroup$ Commented Mar 9, 2018 at 15:40
  • $\begingroup$ I think it would be a good idea to explain with more detail what kind of data you have to start with, and what kind of values you would like to calculate from it. $\endgroup$
    – uhoh
    Commented Mar 9, 2018 at 16:19
  • 1
    $\begingroup$ "...the changes in Keplerian elements with time." is a textbook definition of perturbations, so saying "ignoring perturbations" does not make sense. According to Wikipedia's article Orbital perturbation analysis: "In reality, there are several factors that cause the conic section to continually change. These deviations from the ideal Kepler's orbit are called perturbations." The orbital perturbation equations you now show are given in there as well. Also I still think you mean *Keplerian" orbit, not "osculating" orbit. $\endgroup$
    – uhoh
    Commented Mar 10, 2018 at 3:05
  • 1
    $\begingroup$ @uhoh Thanks. Sorry for confusing question. I accepted the answer here, and asked another question, explaining what I'm trying to do. space.stackexchange.com/q/25964/19219 $\endgroup$ Commented Mar 10, 2018 at 12:00

1 Answer 1


Spacetrack Report #3 provides the equations in readable mathematical format and FORTRAN code to propagate TLEs. The final output of the algorithm, denoted by X, Y, Z, XDOT, YDOT and ZDOT are the position and velocity in inertial frame, which can be converted to osculating elements by traditional methods.

  • $\begingroup$ I need also to propagate the orbit, considering the changes in Keplerian elements. Added some details to question $\endgroup$ Commented Mar 9, 2018 at 19:10
  • 2
    $\begingroup$ FORTRAN! Now we're talking! $\endgroup$ Commented Mar 9, 2018 at 19:57
  • 1
    $\begingroup$ If you want to ignore all perturbations, use SGP4 (the code described in report #3) with time since epoch set to zero to obtain "initial" position and velocity, then use a keplerian propagation (also known as Two-body), this propagation however keeps all elements but the mean anomaly constant. SGP4 considers at least J2 and drag, which causes all (osculating) elements to evolve over time. I would point out however that SGP4's TLE propagation is fairly accurate and does not take that long to run, thus it could probably more adequate than Keplerian propagation for your application. $\endgroup$
    – Mefitico
    Commented Mar 9, 2018 at 20:16
  • $\begingroup$ @Mefitico Does SGP4 consider Sun, Moon, Jupiter, Venus? $\endgroup$ Commented Mar 9, 2018 at 20:27
  • 1
    $\begingroup$ @TarlanMammadzada yes, but only for the Air Force's definition of "deep space", which is "Earth orbits with a period > 225 minutes". $\endgroup$
    – Chris
    Commented Mar 9, 2018 at 20:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.