# Nuances of the terms (mean / osculating / Keplerian / orbital) elements

I've been assuming that osculating, Keplerian, and orbital elements are all synonyms, with mean orbital elements just being these averaged over some time. However occasional comments make me suspect that there are some subtleties I'm missing. Could someone clarify the differences (if any) between these terms:

• Orbital elements

• Keplerian elements

• Osculating elements

• Mean orbital elements

– uhoh
Apr 14 '16 at 11:40

Your assumption is a good starting place and its good to be cautious about it. Many of us are guilty of abbreviation or outright misuse of the terms for convenience. Here's my rough guide, not meant to be precise but rather to address the overlapping usage. I've spent a bit more time on the basic definitions as this is probably where variations in usage arises.

Orbital elements: the 6 parameters a, e, RAAN, argument of perigee, and mean anomaly. This describes the shape of an orbit and the position of an object in it, plus a 7th parameter, the time (epoch) at which this situation exists. This is the most general term, all the others in the OP's question are subsets of this term.

Keplerian elements: This specifically refers to the same 6 elements + time that apply to a Keplerian orbit. This means different things according to the context.

1. Limited context: orbits that are ideal ellipses. The term thus separates such hypothetical orbits from reality.
2. Common usage: the idea of using the six orbital parameters to describe a real orbit, see Osculating below. In this context using the term "Keplerian" could be simply to distinguish an element set as a way of presenting the information rather than presenting the instantaneous position and velocity.
3. Much broader definition: referring to item 2 above and distinguishing from a "non-keplerian" orbit, where the latter could refer to an orbit in a 3 body problem or continually under the influence of propulsion or a solar sail.

Osculating elements: the same 6 elements + time but referring to a real orbit, where all the rest of the features of a real orbit such as the non-spherical Earth, atmosphere, solar radiation pressure and the effects of the Sun and the Moon are acknowledged implicitly. Such an orbit is not elliptical, it is lumpy and evolves continually so that the satellite path is different for every revolution.

For this concept to make sense the context has to be that these features are modelled, just not explicitly announced at this moment. Thus the element set might be numerically indistinguishable from a keplerian set (ellipse definition) but would describe a different orbit by virtue of the propagator that is implicitly referenced.

In practice osculating elements are likely to include some additional parameters reference to an object's area/mass ratio in order to support calculation of the effects of atmospheric drag or solar radiation pressure, where the latter will probably roll-in the effects of surface reflectance.

Its a feature of the community that people rarely go out of their way to describe the ins and outs of their model as its assumed as a given. If you wanted to use osculating elements solved by a different satellite operator, for perhaps for co-operation in collision avoidance, it would be up to you to learn about their orbit determination propagator and do comparisons on a mutually known object. I suspect many don't have the budget for such things.

Mean orbital elements: The 6 elements plus time. I have only seen this term in the context of SGP4 TLEs though in principle it could apply to other approaches. There is a public definition of this system and the additional parameters it requires such as for addressing atmospheric drag.

I understand that the lumpiness of the orbit developed from osculating elements is smoothed out. Whilst the name "mean" suggests that this smoothed orbit could be an ideal ellipse, as per Keplerian definition 1 above, the SGP 4 model propagates orbits that are not elliptical, they just have less bumps than modern osculating orbits.

Edit: I found this quote which helps with the "mean elements" concept.

The elements in the two-line element sets are mean elements calculated to fit a set of observations using a specific model—the SGP4/SDP4 orbital model. Just as you shouldn't expect the arithmetic and geometric means of a set of data to have the same value, you shouldn't expect mean elements from different element sets—calculated using different orbital models—to have the same value. The short answer is that you cannot simply reformat the data unless you are willing to accept predictions with unpredictable errors.

• Excellent answer! So "Keplerian elements" and "Osculating elements" refer to exactly the same seven numbers, and the only difference is what you intend to do to with those numbers?
– uhoh
Apr 13 '16 at 3:06
• Yes, where "the only difference" as you refer to it could render the answer meaningless (depending on the application) if you take a set intended to be mean elements and use them in an osculating propagator. I'd prefer to say "refer to seven parameters with the same names...". I can see this could cause a lot of confusion so it was a good original question. There is a related question on this topic here space.stackexchange.com/questions/14730/… Apr 13 '16 at 19:41
• Oh my head is spinning (or maybe it is osculating). OK I see! Same seven parameters, but quite possibly different values! The values are calculated for a specific propagator in mind. OK I'm getting I finally. The punch line seems to be: iI you take the values of the elements intended for one propagator, and use then with a different propagator, it will be close, but possibly not as close as you might expect or hope. Thanks!
– uhoh
Apr 13 '16 at 23:03

I find these terms easiest to explain using an analogy. Let’s take these 5 points in the x,y plane:

(1,1) (2,3) (3,4) (4,4) (5,3)

We can perform the following operations on them in a Jupyter Notebook and produce a simple plot:

%pylab inline

x = array([1, 2, 3, 4, 5])
y = array([1, 3, 4, 4, 3])
fig, ax = plt.subplots()
ax.plot(x, y, 'ko')
ax.set(xlim=[0,6], ylim=[0,5])

# Osculating elements touch the input
# curve exactly, but only in one place.
# Here we intersect point [2], with the
# slope of points [1] and [3].

dx = x[3] - x[1]
dy = y[3] - y[1]
m = dy / dx
c = y[2] - m*x[2]
print(m, c)
ax.plot(x, m*x + c, 'b', label='osculating')

# Mean elements take into account all
# the input positions, but may not
# exactly intersect any of them.

A = np.vstack([x, np.ones_like(x)]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]
print(m, c)
ax.plot(x, m*x + c, 'r', label='mean')

fig.legend()


The code and plot illustrate four concepts:

1. A regression curve is any scheme that produces a formula for not only modeling our points themselves (with more or less accuracy, depending on the scheme) but for extrapolating a curve in the gaps between the points themselves. Many such schemes are possible.

2. A linear regression is any scheme that commits to using the specific regression curve y = mx + c and that comes up with values for m and c that somehow model the input points.

3. One possible (though quite primitive) linear regression is to generate an osculating line that (a) just barely comes tangent to the data at one point, and (b) whose slope is determined by the two points around it. This regression will ignore the rest of the data beyond those three points.

4. Another possibility is to perform ordinary least squares to choose the line, which tries to keep the line from straying too far from any of the data points, but will perhaps not pass directly through any of them.

With these concepts in hand, we can now draw sharp analogies to the corresponding four concepts that you have asked about:

• Orbital elements are, strictly speaking, any set of numbers with an accompanying scheme that turns those numbers into a continuous curve representing an orbit.

• Keplerian elements are specifically the six parameters e, a, i, Ω, ω, and one of the anomalies, that when supplied to a Keplerian 2-body propagation routine will produce a position.

• Osculating elements are a set of elements (whether Keplerian or not!) that are specifically chosen so that at one exact moment in a body’s real-life travel, the elements exactly reproduce its position and velocity. Given that the universe is an n-body problem, never before and never again will the elements exactly match the body’s position and velocity, but they tend to be very good for a brief time right around that moment.

• Mean orbital elements are, by contrast, a set of elements (whether Keplerian or not!) that are chosen to pass relatively close to a whole series of observations of a body. In exchange for trying to not stray too far from any of the positions, the mean elements will not, alas, pass exactly through any of them.

In discussions of comet and asteroid orbits, these concepts operate in a fairly pure form: usually such bodies are modeled with strict Keplerian 2-body elements, so that any element set for them is going to be either an “osculating Keplerian orbit” or a “mean Keplerian orbit”.

Planetary orbits are complicated enough that I rarely see discussion of mean elements for them. Typically astronomers will either use a full n-body simulation (or a JPL ephemeris that results from such a simulation run on JPL computers), or else they will use osculating elements — for example, to draw a planet’s orbit in a planetarium program as a closed curve, instead of drawing the real orbit that never returns to the exact same place after each revolution.

Finally, earth satellite orbits are most complex, because a set of Kepler-like parameters are supplied to an algorithm called SGP4 — which is a noticeably non-Keplerian attempt to model how real satellite orbits are warped by influences like the Moon’s gravity and by decay from atmospheric friction. I call SGP4 merely “Kepler-like” because if you give SGP4 the orbital elements that you would normally expect to produce a given position and velocity, you’ll get a somewhat different position and velocity out! Whether you want to produce osculating SGP4 elements, or mean SGP4 elements, you are going to have to start with approximate elements then use an optimizer to tweak them until the output of SGP4 is either the osculating position and velocity, or the mean solution, that you want.

These are the strict definitions. You will usually find that in any particular discussion or context, any one term might imply several of the others, depending on the community in which the discussion is taking place.

• Great answer! Some astronomers do indeed use mean elements and their secular changes when doing some types of long term propagation/evolution i.e. millions or billions of years (cf. Gallardo 2017 as discussed in this answer). Others of course do use straight n-body numerical integration.
– uhoh
Mar 4 at 22:53
• for the latter cf. The Random Walk of Cars and Their Collision Probabilities with Planets (arXiv)) cited in Ars Technica's Starman is out there, but we probably won’t see him again until 2047 cited here and here.
– uhoh
Mar 4 at 23:07
• +1, good description. However, strictly, there are always residuals to any orbit determination effort so even the best osculating elements will still be a mean of the points - just on a much smaller scale than the "mean elements" in your diagram. (e.g imagine the osculating curve goes through the central three points very well, but deviates outside of that) Mar 6 at 23:38