# Why are Keplerian elements used in TLEs instead of Cartesian state vectors?

Propagating a state vector seems easier, you just account for the gravity, change the velocity and update the position.

It also allows to easily apply perturbations, etc. Additionally, the computation may be faster that way.

So why are Keplerian elements preferred for propagation of orbits?

Propagating a state vector seems easier, you just account for the gravity, change the velocity and update the position.

You described the symplectic Euler method (aka semi-implicit Euler method, Euler–Cromer, Newton–Størmer–Verlet, and other names). This is a rather lousy numerical integrator. It loses accuracy rather quickly. Extremely small time steps are needed to have any semblance of an accurate propagation. The only saving graces of this technique are that it's extremely easy to program and that it conserves angular momentum.

Why are Keplerian elements used in TLEs instead of Cartesian state vectors?

TLEs do not use Keplerian elements. They instead use a mean orbital element set that accounts for the non-spherical shape of the Earth, atmospheric drag, and perturbations from the Moon and the Sun. Four key advantages of using TLEs over a numerical integrator are

• There are multiple free implementations of SGP4, in multiple languages.
• The SGP4 model accounts for the perturbations mentioned above. You'll need to explicitly model these perturbations in a numerical integrator.
• With SGP4, calculating where the satellite will be one week from now has the same computational cost as does calculating where it will be one second from now (the same is not true for a numerical integrator), and
• Epoch states of satellites orbiting the Earth orbit in TLE form are widely available.

It certainly is possible to do better than SGP4. You'll need to use a fairly good numerical integrator (i.e., not symplectic Euler) and models of those perturbations. Finally, you'll need to have a good initial state.

• This question is still unanswered. Has a bounty that will last another day or two. Also this answer has a little demo that demonstrates how poorly the Euler method works for orbits. – uhoh Dec 8 '17 at 15:11
• @uhoh - Your answer that demonstrates the Euler method uses explicit Euler, where position is updated by using the current velocity and velocity is updated using the current acceleration. Symplectic Euler updates velocity using the current acceleration but position using the updated velocity. – David Hammen Dec 8 '17 at 15:43
• OK thanks! I'll do some reading and then give that a try to see what happens. I know that symplectic integrators as a class are better at conserving energy. – uhoh Dec 8 '17 at 23:51

For a body in orbit in 2-body scenario, for Keplerian elements only a single variable (true anomaly) changes over time. For Carthesian the whole state vector is in constant flux.

When working with orbital mechanics in Keplerian coordinates, e.g preparing maneuvers, you don't need to work on a body in motion - 2-degree differential equations of motion all the time, as typical to most of Newtonian mechanics and similar. You just stash time (and true anomaly) temporarily forgetting about them, and work out the completely time-independent, static geometry, finding the needed maneuvers and trajectories. When you have the entire plan ready, just retrieve your time/true anomaly data, substitute values and get the moments of maneuvers.

It also means in Keplerian mechanics, the vector state holds quite explicit history and future of the position, besides position at the moment. Things like eccentricity or inclination tell a lot about the orbit at a glance. Meanwhile, given a velocity and position vector of a satellite, and mass of the central body, telling whether it's nearly on escape trajectory, or in equatorial circular orbit takes a good bit of calculations.