Suppose a satellite is orbiting Earth in a circular orbit, of which I know the inclination $i$, the right ascension of the ascending node $\Omega$, the semi-major axis $a$ (or orbit radius given that it is a circular orbit), the angular velocity of spacecraft in the orbit $n$. Suppose also that I know that at time $t_0$ the spacecraft is located at the ascending node. How can I find its coordinates in the ECI frame? I know that some rotation matrices are used to obtain the ECI coordinates, but I do not understand in which order these matrices have to multiplied and which is their argument.

I apologize for the noob question but I am new to these topics.


2 Answers 2


Start by thinking of it in terms of Euler rotations. Using Ampere's hand / right-hand rule, "start" with your hand aligned with the "origin" ECI frame. Imagine that your right-hand is centered on the Earth, so a spacecraft will be in orbit around your hand. Specifically, its furthest distance from the origin is the semi-major axis, but since we're in a circular orbit, the spacecraft's only distance is the sma. We'll work through finding the correct "destination" frame. You know that you've "reached" the destination frame when the motion of the spacecraft can be represented by a rotation around a single axis. Looking at the right-hand rule diagram below, it means that the motion of your spacecraft corresponds only to a rotation around your thumb.

Think of the right ascension of the ascending node. What does it mean in terms of geometry? It means that spacecraft will always cross the orbital plane at that angle compared to the "origin" of the frame. Looking at the right-hand rule diagram below, that orbital plane is the plane created from the vectors a and b. The RAAN is measured from the origin frame, therefore from the a vector. Therefore, in terms of rotation, the RAAN corresponds to a rotation about the a-cross-b vector (i.e. your thumb). That corresponds to an Euler rotation by the 3rd axis.

Now, imagine what it means for your orbit to have an inclination with respect to your right-hand. It corresponds to a rotation about your index finger, which is the 1st axis. So far, we've done two rotations: by the 3rd and the 1st axis.

The final rotation will be for the true anomaly of your orbit. As discussed in the first paragraph, at this point, the motion of your spacecraft is fully described by a rotation of your thumb, i.e. a rotation around the 3rd axis. This means that, after we've accounted for that rotation, we'll have done a 3-1-3 Euler rotation, where the angles are respectively the RAAN, inclination, and true anomaly.

So what's the starting vector which you need to multiply your direct cosine matrix with? Well, back-tracking to the start of the problem, we've stated that the spacecraft was described as rotating around your hand, and we've done all of the rotations with {index, middle finger, thumb} as the frame. Therefore, the initial vector is [sma; 0; 0].

Further, in a circular orbit, the angular rate is constant. Therefore, you can compute the orbital period from the mean motion and the GM of the Earth: the period is simply 2-pi divided by the mean motion. Finally, you know how long it has been since the spacecraft periapsis passage, so you can fully determine the true anomaly.

You now have all of the bits to create the X, Y, Z state from the data you were given. Let me know if this explanation needs clarification.

Right hand rule


The process of converting between Keplerian / classical orbital elements to ECI state vector is outlined in a number of books, a popular one being "Orbital Mechanics for Engineering Students" by Howard D. Curtis. I'll give a brief summary here:

The orientation of the orbital plane is described by the right ascension, inclination, and argument of periapsis. The semi major axis describes "the size", the eccentricity "the shape" and true anomaly tracks the position vs. time of a body in that orbit.

The 3 angles to describe the orientation of the orbital plane are the angles of a 3-1-3 euler angle sequence describing the orientation of the orbit frame with respect to the ECI frame. This orbit frame is known as the perifocal frame which is defined as follows: x-axis points from the orbit center to the periapsis point in the orbit z-axis points from the orbit center to the direction of the orbit's angular momentum (position cross velocity at any point in the orbit since its constant in a two-body orbit) y-axis completes the right handed system (+z cross +x = +y)

You can calculate the position and velocity vectors of the orbit with respect to the perifocal frame using true anomaly, a, e, and mu, and then once you do that you then use a rotation matrix to convert the coordinates of the position and velocity vectors from the perifocal frame to the ECI frame, and then you have your answer.

It should be noted though that for purely circular orbits, there is technically no periapsis point, but you can still just arbitrarily define it and move on.

As far as software for doing this, you can either write out the function yourself (which I would recommend doing at least once to practice it), or use already written programs. I like to use NASA's SPICE software (called from Python), since its heavily tested, originally written in Fortran but the Python wrapper calls the C version of it, and the SPICE system as a whole is very powerful. MATLAB also has a wrapper to CSPICE, although I haven't used it.

Specifically if you want to see how to write this function yourself in Python, I have a video going over it:

I also have videos on how to use the CSPICE Python wrapper (called spiceypy) which you can also find on the channel, but I'll just leave links here for SpiceyPy and specifically the CSPICE function for converting from orbital elements to state vectors: https://spiceypy.readthedocs.io/en/master/documentation.html https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/conics_c.html

I hope this is helpful!


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.