If you wish to contribute or participate in the discussions about articles you are invited to contact the Editor

Transformations between ECEF and ENU coordinates

From Navipedia
Revision as of 20:11, 26 January 2012 by Jaume.Sanz (talk | contribs)
Jump to navigation Jump to search


FundamentalsFundamentals
Title Transformations between ECEF and ENU coordinates
Author(s) J. Sanz Subirana, J.M. Juan Zornoza and M. Hernández-Pajares, Technical University of Catalonia, Spain.
Level Advanced
Year of Publication 2011
Logo gAGE.png

The relation between the the local East, North, Up (ENU) coordinates and the [math]\displaystyle{ (x,y,z) }[/math] Earth Centred Earth Fixed (ECEF) coordinates are illustrated in the next figure:


Figure 2:: Transformations between ENU and ECEF coordinates.


From the figure 1 it follows that the [math]\displaystyle{ (x,y,z) }[/math] ECEF coordinates can be transformed to the ENU by two rotations:


1. An anticlockwise rotation over East-west direction (i.e., the "E" axis of ENU coordinates) by an angle [math]\displaystyle{ 90-\varphi }[/math] to align the [math]\displaystyle{ Z }[/math]-axis with the Zenith direction (i.e., the "U" axis of ENU coordinates). That is [math]\displaystyle{ {\mathbf R}_1[-(\pi/2-\varphi)] }[/math].


2. An anticlockwise rotation over the Up-Down direction (i.e., the "U" axis of ENU coordinates) by and angle [math]\displaystyle{ 90+\lambda }[/math] to align the [math]\displaystyle{ x }[/math]-axis with the East direction. That is [math]\displaystyle{ {\mathbf R}_3[-(\pi/2+\lambda)] }[/math].


That is:

[math]\displaystyle{ \left [ \begin{array}{l} x\\ y\\ z\\ \end{array} \right ] = {\mathbf R}_3[-(\pi/2+\lambda)]\,{\mathbf R}_1[-(\pi/2-\varphi)] \left [ \begin{array}{l} E\\ N\\ U\\ \end{array} \right ] \qquad \mbox{(1)} }[/math]


where, according to the expressions (2) (see Transformation between Terrestrial Frames)


[math]\displaystyle{ \begin{array}{l} \mathbb{\mathbf R_{1}}[\theta]=\left [ \begin{array}{ccc} 1 & 0 & 0\\ 0 & \cos \theta & \sin \theta \\ 0 & -\sin \theta & \cos \theta \\ \end{array} \right ] \;;\;\; \mathbb{\mathbf R}_2[\theta]=\left [ \begin{array}{ccc} \cos \theta & 0 & -\sin \theta \\ 0 & 1 & 0\\ \sin \theta &0 & \cos \theta \\ \end{array} \right ]\\ \\ \mathbb{\mathbf R}_3[\theta]=\left [ \begin{array}{ccc} \cos \theta & \sin \theta &0\\ -\sin \theta & \cos \theta & 0\\ 0 & 0 & 1\\ \end{array} \right ] \end{array} \qquad \mbox{(2)} }[/math]


yields:

[math]\displaystyle{ {\mathbf R}_3[-(\pi/2+\lambda)]\,{\mathbf R}_1[-(\pi/2-\varphi)]= \left ( \begin{array}{ccc} -\sin \lambda & -\cos \lambda \sin \varphi &\cos \lambda \cos \varphi\\ \cos \lambda & -\sin \lambda \sin \varphi & \sin \lambda \cos \varphi\\ 0 & \cos \varphi & \sin \varphi\\ \end{array} \right ) \qquad \mbox{(3)} }[/math]


The unit vectors in local East, North and Up directions as expressed in ECEF cartesian coordinates are given by the columns of matrix (3). That is:

[math]\displaystyle{ \begin{array}{l} \hat{\mathbf e}=\left ( -\sin \lambda \,,\,\cos \lambda\,,\, 0 \right )\\ \hat{\mathbf n}=\left ( - \cos \lambda \sin \varphi \,,\,- \sin \lambda \sin \varphi\,,\, \cos \varphi \right)\\ \hat{\mathbf u}=\left ( \cos \lambda \cos \varphi \,,\,\sin \lambda\ \cos \varphi\,,\, \sin \varphi \right) \qquad \mbox{(4)} \end{array} }[/math]


Note: If [math]\displaystyle{ (\lambda,\varphi) }[/math] are ellipsoidal coordinates, thence, the vector [math]\displaystyle{ \hat{\mathbf u} }[/math] is orthogonal to the tangent plane to the ellipsoid, which is defined by [math]\displaystyle{ (\hat{\mathbf e}, \hat{\mathbf n}) }[/math]. If [math]\displaystyle{ (\lambda,\varphi) }[/math] are taken as the spherical latitude and longitude, thence, the vector [math]\displaystyle{ \hat{\mathbf u} }[/math] is in the radial direction and [math]\displaystyle{ (\hat{\mathbf e}, \hat{\mathbf n}) }[/math] defines the tangent plane to the sphere.


From ECEF to ENU coordinates

Taking into account the properties of the rotation matrices [math]\displaystyle{ {\mathbf R}_i(\alpha) }[/math],i.e., [math]\displaystyle{ {\mathbf R}_i^{-1}(\alpha)= {\mathbf R}_i(-\alpha)={\mathbf R}_i^T(\alpha) }[/math], thence, the inverse transformation of (1) is given by:

[math]\displaystyle{ \left [ \begin{array}{l} E\\ N\\ U\\ \end{array} \right ] = {\mathbf R}_1[\pi/2-\varphi]\,{\mathbf R}_3[\pi/2+\lambda] \left [ \begin{array}{l} x\\ y\\ z\\ \end{array} \right ] \qquad \mbox{(5)} }[/math]


where the transformation matrix of (5) is the transpose of matrix (3):


[math]\displaystyle{ {\mathbf R}_1[\pi/2-\varphi]\,{\mathbf R}_3[\pi/2+\lambda]= \left ( \begin{array}{ccc} -\sin \lambda & \cos \lambda &0\\ - \cos \lambda \sin \varphi & -\sin \lambda \sin \varphi & \cos \varphi\\ \cos \lambda \cos \varphi & \sin \lambda \cos \varphi & \sin \varphi\\ \end{array} \right ) \qquad \mbox{(6)} }[/math]


The unit vectors in the ECEF [math]\displaystyle{ \hat{\mathbf x} }[/math], [math]\displaystyle{ \hat{\mathbf y} }[/math] and [math]\displaystyle{ \hat{\mathbf z} }[/math] directions, as expressed in ENU coordinates, are given by the columns of matrix (6). That is:

[math]\displaystyle{ \begin{array}{l} \hat{\mathbf x}=\left ( -\sin \lambda \,,\,-\cos \lambda \sin \varphi\,,\, \cos \lambda \cos \varphi \right )\\ \hat{\mathbf y}=\left (\cos \lambda\,,\,- \sin \lambda \sin \varphi\,,\, \sin \lambda \cos \varphi \right)\\ \hat{\mathbf z}=\left ( 0 \,,\, \cos \varphi \,,\,\sin \varphi \right) \end{array} \qquad \mbox{(7)} }[/math]


Elevation and azimuth computation

Given the line of sight unit vector

[math]\displaystyle{ \hat {\boldsymbol \rho}=\displaystyle \frac{{\mathbf r}^{sat}-{\mathbf r}_{rcv}}{\| {\mathbf r}^{sat}-{\mathbf r}_{rcv} \|} \qquad \mbox{(8)} }[/math]


where [math]\displaystyle{ {\mathbf r}^{sat} }[/math] and [math]\displaystyle{ {\mathbf r}_{rcv} }[/math] are the geocentric position of the satellite and receive, respectively, the elevation and azimuth in the local system coordinates (ENU), defined by the unit vectors [math]\displaystyle{ \hat{\mathbf e} }[/math], [math]\displaystyle{ \hat{\mathbf n} }[/math] and [math]\displaystyle{ \hat{\mathbf u} }[/math] can be computed from (see figure 2):

[math]\displaystyle{ \begin{array}{l} \hat {\boldsymbol \rho}\cdot \hat{\mathbf e} =\cos E \sin A\\ \hat {\boldsymbol \rho}\cdot \hat{\mathbf n}=\cos E \cos A\\ \hat {\boldsymbol \rho}\cdot \hat{\mathbf u} = \sin E \end{array} \qquad \mbox{(9)} }[/math]


Thence the elevation and azimuth of satellite in the local coordinates system are given by:

[math]\displaystyle{ E=\arcsin(\hat {\boldsymbol \rho}\cdot \hat{\mathbf u}) \qquad \mbox{(10)} }[/math]
[math]\displaystyle{ A=\arctan \left (\frac{\hat {\boldsymbol \rho}\cdot \hat{\mathbf e}}{\hat {\boldsymbol \rho}\cdot \hat{\mathbf n}}\right ) \qquad \mbox{(11)} }[/math]


Figure 2:: Local coordinate frame showing the elevation ([math]\displaystyle{ E }[/math]) and azimuth ([math]\displaystyle{ A }[/math]).


Note: If [math]\displaystyle{ (\lambda,\varphi) }[/math] are ellipsoidal coordinates, thence, the vector [math]\displaystyle{ \hat{\mathbf u} }[/math] is orthogonal to the tangent plane to the ellipsoid, which is defined by [math]\displaystyle{ (\hat{\mathbf e}, \hat{\mathbf n}) }[/math]. If [math]\displaystyle{ (\lambda,\varphi) }[/math] are taken as the spherical latitude and longitude, thence, the vector [math]\displaystyle{ \hat{\mathbf u} }[/math] is in the radial direction and [math]\displaystyle{ (\hat{\mathbf e}, \hat{\mathbf n}) }[/math] defines the tangent plane to the sphere.