# Is this commonly attributed ECI (Earth-Centered Inertial) to ECEF (Earth-Centered Earth-Fixed) transformation accurate?

As noted in this previous Stack Exchange question, and many others like it, the transformation from ECI to ECEF (or vice versa) is not a simple process, requiring several steps and considerations (precession, nutation, rotation, polar motion) to arrive at the answer.

However, in my research to create my own version of the process (within the golang coding language), I have noticed that a few widely used space simulation software libraries across various langauges commonly make reference to a single document created in 2001, that boils down the entire process into a single matrix transformation as follows:

$$\begin{bmatrix} X \\ Y \\ Z \\ \end{bmatrix}_{ECI} = \begin{bmatrix} C_{\theta g} & -S_{\theta g} & 0 \\ S_{\theta g} & C_{\theta g} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} X' \\ Y' \\ Z' \\ \end{bmatrix}_{ECF}$$

where

$$\theta_g \equiv \text{Greenwich Sidereal Time}$$

$$\theta_g = \theta_{g0} + \omega(t-t_0)$$

$$\theta_{g0} \equiv \text{Greenwich hour angle (Greenwich Sidereal Time at the epoch t_0)}$$

and C and S refer to cosine and sine, respectively. (original screenshots: 1, 2)

I have seen a direct comparison between the two reference frames before framed in a similar way, but wouldn't this process skip the necessary steps of checking precession, nutation, etc? Or is that only necessary for position/velocity vectors?

• By the looks of it the transform here is simply something that shows how it would work if the other issues could be considered small enough to ignore. This (unfortunately) puts the task back to you to evaluate each effect to decide whether its important for your interest. Commented Apr 1, 2020 at 9:10
• @Puffin I believe that is the answer, consider posting it as such. Commented Apr 1, 2020 at 13:52
• @OrganicMarble I would do if it were not that I am actually not that confident of myself. Its a "it makes sense to me" contribution rather than a "I've done this and believe I have some authority". Commented Apr 1, 2020 at 20:14
• I've converted your screenshots to MathJax formatted equations.
– uhoh
Commented Apr 8, 2020 at 2:16
• I removed the coordinate-transform tag since that's what the transform tag is already used to refer to. Commented Apr 9, 2020 at 20:55

This is a low accuracy approximation. You can tell by the bottom row and right column of the transformation matrix. There is no allowance for precession, nutation, or polar motion in this simple model of Earth's rotation. The current angle between the Earth's rotational axis and the J2000 Z axis is currently over a tenth of a degree, and growing, thanks to precession.

Ignoring precession, nutation, and polar motion works fine for some applications. But for other applications (e.g., milliarcsecond astronomy) doing so is a recipe for disaster.

• Thank you for the informative answer. If an ECI value as converted to an ECEF value such as this, and then converted from this to LLA, how large would the error be in terms of metres/kilometres?
– jos
Commented Apr 16, 2020 at 7:48
• @jos - A tenth of a degree is small enough that the small angle approximation is close to valid, so simply convert to radians and multiply by the orbital radius (not altitude). For LEO (450 km altitude), that results in an error of about 12 km; for MEO (GPS), about 46 km; and for GEO, about 74 km. Commented Apr 16, 2020 at 8:36
• I just posted this question to physics SE and was wondering if anyone here could answer it there? The "Greenwich hour angle" seems to be getting close to an answer...physics.stackexchange.com/q/574297/268522 Commented Aug 19, 2020 at 12:27

I believe this constitutes an answer - after acquiring a copy of the Fundamentals of Astrodynamics (1st edition), I've found that the above coordinate transformation is extremely similar to one mentioned in the book that is used for the same purpose, located on page 77:

$$\begin{bmatrix} \text{a}_\text{U} \\ \text{a}_\text{V} \\ \text{a}_\text{W} \\ \end{bmatrix} = \begin{bmatrix} \cos \alpha & \sin \alpha & 0 \\ -\sin \alpha & \cos \alpha & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} \text{a}_\text{I} \\ \text{a}_\text{J} \\ \text{a}_\text{K} \\ \end{bmatrix}$$

(screenshot: 1)

I'm not sure if the difference in sign for the sin terms is of great significance; however, for the purposes of this question, the the matrix mentioned initially DOES come from a reliable source. That being said, this book was made in the 70s, and there have been many things added to account for since then in terms of coordinate transformation. I haven't checked the second edition of this book that came out in 2015.

• The difference in the sign of the sine reverses the direction of the rotation. It has the same effect as changing $\alpha$ to $-\alpha$, so the two matrices are each other's inverse. Therefore, one equation converts ECI to ECEF, and the other converts ECEF to ECI. Commented Feb 2, 2021 at 14:56

A good tool set for obtaining the correct answer without having to type in all the equations yourself is the Standards of Fundamental Astronomy, as described in this answer.

If you insist on implementing from scratch, rather than just wrapping the C and Fortran libraries available from SOFA, I recommend using the International Earth Rotation Service's Tech Note 36, particularly section 5.