Transformations between ECEF and ENU coordinates

Note:本文假设ecef和enu坐标原点相同,则两者之间只有旋转关系。

若ecef坐标原点和enu坐标原点不同,则两个坐标系之间还要加上平移量。

The relation between the local East, North, Up (ENU) coordinates and the (x,y,z) Earth Centred Earth Fixed (ECEF) coordinates is illustrated in the next figure:


Transformations between ECEF and ENU coordinates_第1张图片
Figure 2:: Transformations between ENU and ECEF coordinates.



(补充两张图,便于理解地心维度、大地维度以及下面的从enu到ecef的旋转关系)

From the figure 2 it follows that the ENU coordinates can be transformed to the (x,y,z) ECEF by two rotations:


1. A clockwise rotation over east-axis by an angle  90-\varphi to align the up-axis with the  z-axis. That is  {\mathbf R}_1[-(\pi/2-\varphi)].


2. A clockwise rotation over the  z-axis by and angle  90 + λ to align the east-axis with the  x-axis. That is  {\mathbf R}_3[-(\pi/2+\lambda)].


That is:

\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)}


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


Transformations between ECEF and ENU coordinates_第2张图片


yields:

{\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)}


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:

\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}


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


From ECEF to ENU coordinates

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

\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)}


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


{\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)}


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

\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)}


Elevation and azimuth computation

Given the line of sight unit vector

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


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

\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)}


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

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


Transformations between ECEF and ENU coordinates_第3张图片
Figure 2:: Local coordinate frame showing the elevation ( E) and azimuth ( A).


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


From:http://www.navipedia.net/index.php/Transformations_between_ECEF_and_ENU_coordinates

你可能感兴趣的:(computer,vision)