I am taking a university course named 'satellite navigation' as a part of my master degree in aerospace engineering. For the exam we are required to elaborate the coordinates of a LEO satellite (it really does not depend which one). For this reason, I need the coordinates (the state vector, at least the position) in the Earth Centered - Earth Fixed ECEF frame. However, I cannot find any useful resource/archive.

I would really appreciate some help :)

  • $\begingroup$ @planetmaker I also think that this good question could receive more attention in SpaceExploration. Is it possible to migrate it there? $\endgroup$
    – Prallax
    Jun 18, 2022 at 19:19
  • 2
    $\begingroup$ A useful place to start is space.stackexchange.com/questions/48711/… . That describes briefly where to look for the most complete source of free satellite orbit data, and one of several ways to work with it once you've got some. $\endgroup$
    – Ryan C
    Jun 19, 2022 at 0:22
  • 1
    $\begingroup$ Source code to do the transformation is available on Celestrak: celestrak.com/software/vallado-sw.php . I also believe AstroPy will do it. Both will require some programming. I am unaware of any software or website that will spit out ECEF coordinates. $\endgroup$ Jun 19, 2022 at 1:46
  • 1
    $\begingroup$ The free and non-export restricted code from the US Space Force (the people who make TLEs available to us) does ECI-ECEF conversions, and many related calculations, as you can download once you register for a free account at space-track.org/documentation#/sgp4 $\endgroup$
    – Ryan C
    Jun 19, 2022 at 4:35

1 Answer 1


Where do I find ECEF coordinates of a satellite?

You don't "find it." That information is not published. You'll have to compute it rather than find it.

What is published for many satellites orbiting the Earth is what are called Two Line Elements (TLEs, for short). There are many questions on this site that ask about TLEs. These questions are so common that there is a tag for them: .

A Two Line Element set is designed for use with the Simplified General Perturbations #4 (SGP4) algorithm. The output of this algorithm includes position and velocity in True Equator / Mean Equinox (TEME) of epoch coordinates. One of the inputs to this algorithm is the epoch time.

Note that

  • TLEs are low fidelity; the target is single precision floating point accuracy,
  • TLEs are not intended for use beyond a week or two of the TLE's epoch time, and
  • The outputs of the SGP4 algorithm are position and velocity in TEME of epoch (or perhaps TEME of date; there's a subtle difference between the two).

This means a fairly simple series of calculations can be used to convert the SGP4 output to ECEF:

  1. Optional: Calculate UT1 at the TLE epoch time and at the observation time.
    This is optional because (a) It's not clear whether the TLE epoch time is in UT1 or UTC, and (b) TLEs are not intended for sub-second usage.
  2. Calculate the TEME of epoch coordinates of the vehicle using the TLE for the vehicle.
  3. Calculate GMST at the TLE epoch time. This will directly yield the transformation matrix between TEME (of epoch) and ECEF.
  4. Calculate the time difference in seconds (UT1 or UTC) between the TLE epoch time and observation time. Multiply by $2\pi/86400$. (Alternatively, you may want to use 86400 plus the excess length of day for the epoch time instead of 86400, but once again, SGP4 is not intended for sub-second usage.) This will directly yield the transformation matrix between TEME (of epoch) of epoch and TEME (of observation).
  5. Apply the transformations from steps #2 and #3 to the results of step #4.

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.