I'm wondering if there is a universal or accepted way to compare orbits.

For example, I have a spacecraft orbiting Earth and it is slowly increasing its altitude every time it passes a local midnight position on Earth.

I created a MATLAB script that takes an entire orbit and splits it into groups, with each group consisting of "one day", but of course, the "day" isn't necessarily a 24-hr period, just whenever it passes its local midnight.

I want to be able to add to this script such that it says: "The third orbit is close enough to the fifth orbit, so lets remove the fifth orbit".

Eventually these orbit positions will go into a thermal analysis software, so I want to limit that number of orbit positions I input into that program.

Currently, I take the first, last, and middle 10 orbit positions of each day, and then compare those 30 positions to another day's orbit. My logic is that at at the beginning, end, or middle of the orbit, relative to Earth the spacecraft will be in the same place (right after local midnight, right before local midnight, and around local noon).

What I'm actually comparing is the x, y, and z unit vectors to Earth, and the x, y, and z unit vectors to the Sun.

Is there a better way to compare orbits? Or is it sort of non-realistic in this sense?

One option I considered was comparing each individual orbit's shape using their eccentricity and/or semi-major axis, although I wasn't sure if this was worth doing since the rate at which the apoapsis, periapsis, etc. is changing is constant, so it won't provide any additional information.

Although since I want to compare entire orbits/periods about Earth, this is now seeming like a logical step, rather than comparing individual locations on the orbit/period.

Regardless, if anyone has anything to add or insight in a way to compare orbits, I'd be happy to hear them.


  • 2
    $\begingroup$ This seems more thermal sensitivity driven, really. As a problem child, consider a sun synchronous orbit chosen to never enter the Earth's shadow. I imagine the thermal conditions for this are quite different from one which eclipses, even if their orbital parameters are quite similar on the surface. Your definition of "close" is likely very tightly coupled to the sensitivities of your thermal analysis. $\endgroup$
    – Cort Ammon
    Dec 19, 2022 at 16:15
  • $\begingroup$ Thank you for your comment. I should add that the script I currently have takes the raw orbit position data for every 60-sec or so and then determines which points are "thermally significant" (i.e. going into/out-of eclipses, big/sudden changes in solar vectors, etc.). For some of the longer orbits, many of these thermally significant points are repetitive and appear to be similar, except for an increasing altitude. $\endgroup$ Dec 19, 2022 at 17:21
  • $\begingroup$ I understand what you're saying though, that even if the orbit is exactly the same or at least comparable, other factors will affect it from a thermal standpoint. $\endgroup$ Dec 19, 2022 at 17:22
  • $\begingroup$ Probably compare the orbital angular momentum of the two orbits? The mean elements also might help to remove J2 $\endgroup$
    – lamont
    Dec 19, 2022 at 22:38

1 Answer 1


You have several options, but you are still required to define what "close enough" means. Here are at least two I can think of, but first we need to address the big problem: since the spacecraft is under thrust, your orbits are not elliptical. Therefore, we need to solve this problem in one of two ways:

  1. Don't worry about it, and figure out a comparison method that doesn't rely on them being ellipses
  2. Approximate them with the best ellipse we can

Let's look at option 1 first.

My orbits aren't elliptical

In this case, things like "eccentricity" are not well defined, and your orbit isn't a closed curve anyway since the altitude is changing. Let us assume that we aren't also dealing with a plane change, since that makes my life much harder and I don't feel like doing the math. You are free to extend the result. Under this assumption, the orbit evolves according to a single parameter. This parameter is either time, $t$, or angle in the plane, $\phi$. Although time is far more natural to think about orbits it is not natural for this analysis because, as the orbit changes, so too does the period. Therefore, you should define your orbit as a function of the angle it sweeps out in the plane. We may now align our orbits and compare them.

Let the orbits evolve according to three functions: $\langle x_i(\phi), y_i(\phi),z_i(\phi)$ in some convenient coordinate system. (coughearthcentriccough). Then we can produce a measure of dissimilarity as such:

$$D(i,j) = \int_{\phi=0}^{\phi=2\pi}((x_i(\tau) - x_j(\tau))^2 + (y_i(\tau) - y_j(\tau))^2+(z_i(\tau) - z_j(\tau))^2)d\tau$$

There are TONS more ways to figure out the dissimilarity. Here I am using the square of the Euclidean distance, summed over the orbit. If this bothers you, feel free to use some other metric, or to scale this one (perhaps it may make sense to normalize so that the results lie in the range of 0 to 1, with 0 being "the same orbit" and 1 being $D(0,N)$ or something).

The problem here is that the threshold for D is problem specific.

My orbits are more or less elliptical

OK, then just compute the orbital parameters of the approximate ellipses and compare them. The problem is that the orbital parameters are not all on the same scale, and some are irrelevant (inclination, say).

  • $\begingroup$ That's interesting, thank you for the comment/answer. In regards to the in-plane aspect, yes the whole trajectory is in plane. This will help with the Euclidean distance as well, so we can get rid of the z components and only focus on x and z. Also, like you mentioned, the ellipses are not closed. However, I was thinking about possibly comparing half-ellipses. Would be just as easy to set up, but doubling the amount of "days" (Now half-days). $\endgroup$ Dec 19, 2022 at 16:19
  • 1
    $\begingroup$ @ScotchJones it can be interpreted as the magnitude of the vector from one orbit to the other for a given $\phi$, yes. In this case though I integrated over an entire $2\pi$ to get something like a "total change" from one orbit to another. Another interesting metric might be the maximum magnitude. The point of the answer is: "make yourself a metric and use it for comparison". If your orbits are so similar that the maximum magnitude is tiny, then integration can help distinguish orbits. Otherwise, if the magnitude is big enough, perhaps a maximum alone is sufficient? $\endgroup$ Dec 19, 2022 at 16:50
  • 1
    $\begingroup$ Yes, that's exactly right $\endgroup$ Dec 19, 2022 at 17:37
  • 2
    $\begingroup$ @ScotchJones The eccentricity vector might be useful. $\endgroup$
    – PM 2Ring
    Dec 19, 2022 at 17:37
  • 1
    $\begingroup$ when doing that magnitude integration, though, make sure that the beginning of both orbits is eg at the same angular location .. Generally I find that advice "make yourself a metric and use that" very sound. I guess though that the original question of "is there an accepted way" targets actually exactly that - if there's a metric that's already commonly used, there's no need to reinvent the wheel (or the orbit :) ) $\endgroup$
    – Apfelsaft
    Dec 20, 2022 at 10:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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