I'm trying to correlate a behavior on LEO satellites with the position it is over the Earth. The behavior takes place over a period of time. I'm trying to come up with a metric that will identify something about the position relative to the position on the equator, and not vs the actual long/lat at the moment. The reason is that the ground track of the orbit could have put it in a very different position. For instance, here is a few ISS ground tracks from STK. These two ground tracks for my purposes are significantly different, and any metric should give different values for each, despite the lat/long of the ISS being nearly identical in each case.

enter image description here

enter image description here

Any metric I find must be easily computable, either with a python library, or something that can be directly computed. One can assume that I have the TLE files for the satellite. The reason being is that I'm doing statistical data on a lot of these, and I really don't have the time to plop each of these instances in to a stand alone program. Using a web API is acceptable as well.

What I've been thinking about using is some sort of a metric of the longitude of the ascending node, especially if it can be tracked in a smooth manner, but I'm finding it difficult to figure out what could calculate that. Any other suggestions out there?

Basically, anything that would work for the ISS would work for my needs. My satellites are in LEO, occasionally thrust, mostly circular, but are fairly stable overall.

  • $\begingroup$ I'm not sure what you're looking for... if you want to describe the satellite position wrt Earth's surface, then lat/lon/alt would seem to be a natural choice... could you explain some more? $\endgroup$
    – user29
    Oct 23, 2013 at 19:39
  • $\begingroup$ @Chris: Basically, I want a number that can tell the two ground tracks apart, despite having a nearly identical lat/long $\endgroup$
    – PearsonArtPhoto
    Oct 23, 2013 at 19:42
  • $\begingroup$ The main difference I see is that one is an ascending pass while the other is descending - is that what you want to differentiate? $\endgroup$
    – user29
    Oct 23, 2013 at 19:44
  • $\begingroup$ @Chris: Basically I want a metric to measure the ground track it is making. The metric shouldn't be much different if I changed the time 10 minutes in either direction, with the corresponding distance change. $\endgroup$
    – PearsonArtPhoto
    Oct 23, 2013 at 19:45
  • 1
    $\begingroup$ I don't really want it to be tied to time of day. The Longitude of the Ascending node would be of some interest, however. $\endgroup$
    – PearsonArtPhoto
    Oct 23, 2013 at 19:51

1 Answer 1


I think I understand what you're looking for. You mention the longitude of the ascending node, but that you're not sure how to actually implement this. Here's how.

First, the longitude of the ascending node (a.k.a. right ascension of the ascending node) $\Omega$ for an Earth-orbiting satellite is defined as the angle between some reference vector (typically the $X$ axis in an Earth-centered, inertial frame, which in turn typically coincides with a vector from the center of the Earth to the first point of Aries) and the point at which your orbit crosses the equator while ascending (going South to North).


You're in luck, because the two-line element set file type includes this angle directly (columns 18-25 on the second line). Unfortunately, this has no connection (yet) to the orientation with respect to Earth's surface.

For the conversion from an "inertial" $\Omega$ to something relative to the Earth, you'll need to know what time it is. See below

Hour angles

Here, the green vector is pointing towards the object of interest (here, the ascending node), the grey vector is your reference axis (first point of Aries), and the yellow vector is the prime meridian (0 deg. longitude).

So, to get the angle you're interested in (Earth-referenced longitude of the ascending node, or the angle between the yellow and green vectors), you need to subtract GMST from $\Omega$. Your TLE gives you Universal Time (UT) for the epoch, but you may wish to propagate your orbit and calculate this for other times (just remember that in LEO your node will drift). Going from UT to GMST isn't particularly difficult, but since you mentioned Python in the question here is a package that will do that conversion for you. To convert hours to a longitude, it's just $\lambda = \frac{\textrm{GMST}}{24}\cdot360^{\circ}$.

Now, the quantity $\Omega - \lambda$ will be the longitude (with respect to Earth's surface) of your ascending node.

One caveat is that only using GMST here ignores some other effects (precession and nutation of Earth's poles), but generally those effects are very small compared to the GMST correction, and considering you're just using TLEs anyway, it's probably precise enough for what you want.

Another thing to keep in mind - in STK, that ground track is going to "step" over every period, but that's just because of how it's displayed. The actual longitude of the ascending node is going to change continuously in time as the Earth rotates beneath your orbit (and as your plane precesses), so just remember that.

  • $\begingroup$ So all I do is use the RA of the Ascending node, and do a calculation based on the rotation of the earth. Brilliant! Thanks for the help! $\endgroup$
    – PearsonArtPhoto
    Oct 24, 2013 at 15:14

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.