Geographic coordinate conversion

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

In geodesy, conversion among different geographic coordinate systems is made necessary by the different geographic coordinate systems in use across the world and over time. Coordinate conversion comprises a number of different types of conversion: format change of geographic coordinates, conversion of coordinate systems, or transformation to different geodetic datums. Geographic coordinate conversion has applications in cartography, surveying, navigation and geographic information systems.

In geodesy, geographic coordinate conversion is defined as translation among different coordinate formats or map projections all referenced to the same geodetic datum.[1] A geographic coordinate transformation is a translation among different geodetic datums. Both geographic coordinate conversion and transformation will be considered in this article.

This article assumes readers are already familiar with the content in the articles geographic coordinate system and geodetic datum.

Coordinate format conversion

Informally, specifying a geographic location usually means giving the location's latitude and longitude. The numerical values for latitude and longitude can occur in a number of different formats:[2]

  • degrees minutes seconds: 40° 26′ 46″ N 79° 58′ 56″ W
  • degrees decimal minutes: 40° 26.767′ N 79° 58.933′ W
  • decimal degrees: 40.446° N 79.982° W

There are 60 minutes in a degree and 60 seconds in a minute. Therefore, to convert from a degrees minutes seconds format to a decimal degrees format, one may use the formula

 \rm{decimal\  degrees} = \rm{degrees} + \rm{minutes}/60 + \rm{seconds}/3600.

To convert back from decimal degree format to degrees minutes seconds format,

 \begin{align}
  \rm{degrees} & = \lfloor\rm{decimal\  degrees}\rfloor \\
  \rm{minutes} & = \lfloor 60*(\rm{decimal\  degrees} - \rm{degrees})\rfloor  \\
  \rm{seconds} & = 3600*[(\rm{decimal\  degrees} - \rm{degrees}) - \rm{minutes}/60] \\
  \end{align}

where the notation \lfloor x \rfloor means take the integer part of x and is called a floor function.

Coordinate system conversion

A coordinate system conversion is a conversion from one coordinate system to another, with both coordinate systems based on the same geodetic datum. Common conversion tasks include conversion between geodetic and ECEF coordinates and conversion from one type of map projection to another.

From geodetic to ECEF coordinates

The length PQ is called Normal (\, N(\phi) ). The length IQ is equal to \, e^2 N(\phi) . R = \, (X,Y,Z) .

Geodetic coordinates (latitude \ \phi, longitude \ \lambda, height h) can be converted into ECEF coordinates using the following formulae:

  \begin{align}
      X & = \left( N(\phi)  + h\right)\cos{\phi}\cos{\lambda} \\
      Y & = \left( N(\phi)  + h\right)\cos{\phi}\sin{\lambda} \\
      Z & = \left( N(\phi)  (1-e^2) + h\right)\sin{\phi}
    \end{align}

where


  N(\phi) = \frac{a}{\sqrt{1-e^2\sin^2 \phi }},

a is the semi-major axis and e is the first numerical eccentricity of the ellipsoid. The normal \, N(\phi) is the distance from the surface to the Z-axis along the ellipsoid normal (see "Radius of curvature on the Earth").

The following equation holds:


  \frac{p}{\cos \phi} - \frac{Z}{\sin \phi} - e^2 N(\phi) = 0,

where  p=\sqrt{X^2+Y^2} .

The orthogonality of the coordinates is confirmed via differentiation:


\begin{align}
\begin{pmatrix}
dX \\
dY \\
dZ \\
\end{pmatrix}  &= 
\begin{pmatrix}
-\sin \lambda & -\sin \phi \cos \lambda & \cos \phi  \cos \lambda \\
\cos \lambda & -\sin \phi \sin \lambda & \cos \phi \sin \lambda \\
0 & \cos \phi & \sin \phi \\
\end{pmatrix} 
\begin{pmatrix}
dE \\
dN \\
dU \\
\end{pmatrix} ,
\\
\begin{pmatrix}
dE \\
dN \\
dU \\
\end{pmatrix} &=
\begin{pmatrix}
\left(N(\phi)+h\right) \cos \phi & 0 & 0 \\
0 & M(\phi)+h & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
d\lambda \\
d\phi \\
dh \\
\end{pmatrix} ,
\end{align}

where


 M(\phi)  = \frac{a(1- e^2)}{\left(1-e^2 \sin^2 \phi\right)^{3/2}}

(see also "Meridian arc on the ellipsoid").

From ECEF to geodetic coordinates

The conversion of ECEF coordinates to geodetic coordinates (such WGS84) involves more trigonometry but is sensitive to small accuracy due to Rn and h being maybe 10^6 apart,[3][4] but longitude is same as geocentric, \,\lambda.

There are several methods that solve the equation; two are shown.

Newton–Raphson method

The following Bowring's irrational geodetic-latitude equation[5] is efficient to be solved by Newton–Raphson iteration method:[6]

\kappa - 1 - \frac{e^2 a \kappa}{\sqrt{p^2+(1-e^2) z^2 \kappa^2 }} = 0,

where \kappa = \frac{p}{z} \tan \phi. The height is calculated as:

h= e^{-2} (\kappa^{-1} - {\kappa_0}^{-1}) \sqrt{p^2+ z^2 \kappa^2 },
\kappa_0= \left( 1-e^2 \right)^{-1} .

The iteration can be transformed into the following calculation:

\kappa_{i+1} = \frac{c_i+\left(1- e^2\right) z^2 \kappa_i ^3 }{c_i- p^2} = 1 + \frac{p^2+\left(1- e^2\right) z^2 \kappa_i ^3 }{c_i- p^2} ,

where  c_i = \frac{\left(p^2+\left(1-e^2\right) z^2 \kappa_i ^2\right)^{3/2}}{a e^2} .

The constant \, \kappa_0 is a good starter value for the iteration when h \approx 0. Bowring showed that the single iteration produces a sufficiently accurate solution. He used extra trigonometric functions in his original formulation.

Ferrari's solution

The quartic equation of \kappa, derived from the above, can be solved by Ferrari's solution[7][8] to yield:


\begin{align}
    \zeta &= (1 - e^2) z^2 / a^2 ,\\[6pt]
    \rho &= (p^2 / a^2 + \zeta - e^4) / 6 ,\\[6pt]
    s &= e^4 \zeta p^2 / ( 4 a^2) ,\\[6pt]
    t &= \sqrt[3]{\rho^3 + s + \sqrt{s (s + 2 \rho^3)}} ,\\[6pt]
    u &= \rho + t + \rho^2 / t ,\\[6pt]
    v &= \sqrt{u^2 + e^4 \zeta} ,\\[6pt]
    w &= e^2 (u + v - \zeta) / (2 v) ,\\[6pt]
    \kappa &= 1 + e^2 (\sqrt{u + v + w^2} + w) / (u + v).
\end{align}
The application of Ferrari's solution

A number of techniques and algorithms are available but the most accurate according to Zhu,[9] is the following 15 step procedure summarised by Kaplan. It is assumed that geodetic parameters \{a, b, e, e'\} are known


\begin{matrix}
r &=& \sqrt{X^2+Y^2}\\
E^2 &=&  a^2 - b^2\\
F &=& 54b^2Z^2\\
G &=& r^2 + (1-e^2)Z^2 - e^2E^2\\
C &=& \frac{e^4Fr^2}{G^3}\\
S &=& \sqrt[3]{1+C+\sqrt{C^2 + 2C}}\\
P &=& \frac{F}{3\left(S+\frac{1}{S}+1\right)^2G^2}\\
Q &=& \sqrt{1+2e^4P}\\
r_0 & =& \frac{-(Pe^2r)}{1+Q} + \sqrt{\frac12 a^2\left(1+1/Q\right) - \frac{P(1-e^2)Z^2}{Q(1+Q)} - \frac12 Pr^2}\\
U &=& \sqrt{(r - e^2r_0)^2 + Z^2} \\
V &=& \sqrt{(r-e^2r_0)^2 + (1-e^2)Z^2}\\
Z_0 &=& \frac{b^2Z}{aV}\\
h &=& U\left(1-\frac{b^2}{aV}\right)\\
\phi & = & \arctan\left[ \frac{Z+e'^2Z_0}{r}\right] \\
\lambda &=& \arctan2[Y,X]
\end{matrix}

Note: arctan2[Y,X] is the four-quadrant inverse tangent function.

Geodetic to/from ENU coordinates

To convert from geodetic coordinates to local ENU coordinates is a two-stage process:

  1. Convert geodetic coordinates to ECEF coordinates
  2. Convert ECEF coordinates to local ENU coordinates

To convert from local ENU coordinates to geodetic coordinates is a two-stage process

  1. Convert local ENU coordinates to ECEF coordinates
  2. Convert ECEF coordinates to geodetic coordinates

From ECEF to ENU

To transform from ECEF coordinates to the local coordinates we need a local reference point, typically this might be the location of a radar. If a radar is located at \{X_r, Y_r, Z_r\} and an aircraft at \{X_p, Y_p, Z_p\} then the vector pointing from the radar to the aircraft in the ENU frame is

\begin{bmatrix}
x \\
y \\
z\\
\end{bmatrix}
=  \begin{bmatrix}
-\sin\lambda_r & \cos\lambda_r & 0 \\
-\sin\phi_r\cos\lambda_r & -\sin\phi_r\sin\lambda_r & \cos\phi_r \\
\cos\phi_r\cos\lambda_r & \cos\phi_r\sin\lambda_r& \sin\phi_r
\end{bmatrix}
\begin{bmatrix}
X_p - X_r \\
Y_p-Y_r \\
Z_p - Z_r
\end{bmatrix}

Note: \ \phi is the geodetic latitude. A prior version of this page showed use of the geocentric latitude (\ \phi^\prime). The geocentric latitude is not the appropriate up direction for the local tangent plane. If the original geodetic latitude is available it should be used, otherwise, the relationship between geodetic and geocentric latitude has an altitude dependency, and is captured by:

\tan\phi^\prime  = \frac{Z_r}{\sqrt{X_r^2 + Y_r^2}} = \frac{ N(\phi) (1 - f)^2 + h}{ N(\phi) + h}\tan\phi

Obtaining geodetic latitude from geocentric coordinates from this relationship requires an iterative solution approach, otherwise the geodetic coordinates may be computed via the approach in the section above labeled "From ECEF to geodetic coordinates."

The geocentric and geodetic longitude have the same value. This is true for the Earth and other similar shaped planets because their latitude lines (parallels) can be considered in much more degree perfect circles when compared to their longitude lines (meridians).

\tan\lambda = \frac{Y_r}{X_r}

Note: Unambiguous determination of \ \phi and \ \lambda requires knowledge of which quadrant the coordinates lie in.


From ENU to ECEF

This is just the inversion of the ECEF to ENU transformation so

\begin{bmatrix}
X\\
Y\\
Z\\
\end{bmatrix}
=  \begin{bmatrix}
 -\sin\lambda &  -\sin\phi\cos\lambda &\cos\phi\cos\lambda \\
\cos\lambda &  -\sin\phi\sin\lambda & \cos\phi\sin\lambda \\
0 &  \cos\phi& \sin\phi
\end{bmatrix}
\begin{bmatrix}
x \\
y \\
z
\end{bmatrix}
+ \begin{bmatrix}
X_r \\
Y_r \\
Z_r
\end{bmatrix}

Conversion across map projections

Conversion of coordinates and map positions among different map projections reference to the same datum may be accomplished either through direct translation formulas from one projection to another, or by first converting from a projection A to an intermediate coordinate system, such as ECEF, then converting from ECEF to projection B. The formulas involved can be complex and in some cases, such as in the ECEF to geodetic conversion above, the conversion has no closed-form solution and approximate methods must be used. References such as the DMA Technical Manual 8358.1[10] and the USGS paper Map Projections: A Working Manual[11] contain formulas for conversion of map projections. It is common to use computer programs to perform coordinate conversion tasks, such as with the DoD and NGA supported GEOTRANS program.[12]

Datum transformations

coordinate transform paths

Transformations among datums can be accomplished in a number of ways. There are transformations that directly convert geodetic coordinates from one datum to another. There are more indirect transforms that convert from geodetic coordinates to ECEF coordinates, transform the ECEF coordinates from one datum to the another, then transform ECEF coordinates of the new datum back to geodetic coordinates. There are also grid-based transformations that directly transform from one (datum, map projection) pair to another (datum, map projection) pair.

Grid-based method

Magnitude of shift in position between NAD27 and NAD83 datum as a function of location.

Grid-based transformations directly convert map coordinates from one (map-projection, geodetic datum) pair to map coordinates of another (map-projection, geodetic datum) pair. An example is the NADCON method for transforming from the North American Datum (NAD) 1927 to the NAD 1983 datum.[13] The High Accuracy Reference Network (HARN), a high accuracy version of the NADCON transforms, have an accuracy of approximately 5 centimeters. The National Transformation version 2 (NTv2) is a Canadian version of NADCON for transforming between NAD 1927 and NAD 1983. HARNs are also known as NAD 83/91 and High Precision Grid Networks (HPGN).[14] Subsequently, Australia and New Zealand adopted the NTv2 format to create grid-based methods for transforming among their own local datums.

Like the multiple regression equation transform, grid-based methods use a low-order interpolation method for converting map coordinates, but in two dimensions instead of three. The NOAA provides a software tool (as part of the NGS Geodetic Toolkit) for performing NADCON transformations.[15][16]

Molodensky transformation

The Molodensky transformation converts directly between geodetic coordinate systems of different datums without the intermediate step of converting to geocentric ECEF coordinates.[17] It requires the three shifts between the datum centers and the differences between the reference ellipsoid semi-major axes and flattening parameters.

The Molodensky transform is used by the National Geospatial-Intelligence Agency (NGA) in their standard TR8350.2 and the NGA supported GEOTRANS program.[18] The Molodensky method was popular before the advent of modern computers and the method is part of many geodetic programs.

Multiple regression equations

Datum transformations through the use of empirical multiple regression methods were created to achieve higher accuracy results over small geographic regions than the standard Molodensky transformations. MRE transforms are used to transform local datums over continent-sized or smaller regions to global datums, such as WGS 84.[19] The standard NIMA TM 8350.2, Appendix D,[20] lists MRE transforms from several local datums to WGS 84, with accuracies of about 2 meters.[21]

The MREs are a direct transformation of geodetic coordinates with no intermediate ECEF step. Geodetic coordinates \phi_B, \lambda_B, h_B in the new datum B are modeled as polynomials of up to the ninth degree in the geodetic coordinates \phi_A, \lambda_A, h_A of the original datum A. For instance, the change in \phi_B could be parameterized as (with only up to quadratic terms shown)[19]:{{{3}}}

\Delta \phi = a_0 + a_1 U + a_2 V + a_3 U^2 + a_4 UV + a_5 V^2 + \cdots

where

\begin{align}
       a_i  & = \rm{parameters\  fitted\  by\  multiple\  regression} \\
       U    & = K(\phi_A - \phi_m) \\

       V    & = K(\lambda_A - \lambda_m) \\
       K    & = \rm{scale\  factor} \\
       \phi_m,\lambda_m & = \rm{origin\  of\  the\  datum\ }A \\
\end{align}

with similar equations for  \Delta\lambda and \Delta h. Given a sufficient number of (A,B) coordinate pairs for landmarks in both datums for good statistics, multiple regression methods are used to fit the parameters of these polynomials. The polynomials, along with the fitted coefficients, form the multiple regression equations.

Helmert transformation

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Use of the Helmert transform in the transformation from geodetic coordinates of datum A to geodetic coordinates of datum B occurs in the context of a three-step process:[22]

  1. Convert from geodetic coordinates to ECEF coordinates for datum A
  2. Apply the Helmert transform, with the appropriate A\to B transform parameters, to transform from datum A ECEF coordinates to datum B ECEF coordinates
  3. Convert from ECEF coordinates to geodetic coordinates for datum B

In terms of ECEF XYZ vectors, the Helmert transform has the form[22]

 \begin{bmatrix} X_B \\ Y_B \\ Z_B \end{bmatrix} = \begin{bmatrix} c_x \\ c_y \\ c_z \end{bmatrix} + (1 + s\times10^{-6}) \cdot \begin{bmatrix} 1&-r_z&r_y \\ r_z&1&-r_x \\ -r_y & r_x & 1 \end{bmatrix} \cdot \begin{bmatrix} X_A \\ Y_A \\ Z_A \end{bmatrix}.

The Helmert transform is a seven-parameter transform with three translation (shift) parameters c_x, c_y, c_z, three rotation parameters r_x, r_y, r_z and one scaling (dilation) parameter s. The Helmert transform is an approximate method that is accurate when the transform parameters are small relative to the magnitudes of the ECEF vectors. Under these conditions, the transform is considered reversible.[23]

A fourteen-parameter Helmert transform, with linear time dependence for each parameter,[23]:{{{3}}} can be used to capture the time evolution of geographic coordinates dues to geomorphic processes, such as continental drift.[24] and earthquakes.[25] This has been incorporated into software, such as the Horizontal Time Dependent Positioning (HTDP) tool from the U.S. NGS.[26]

Molodensky-Badekas transformation

To eliminate the coupling between the rotations and translations of the Helmert transform, three additional parameters can be introduced to give a new XYZ center of rotation closer to coordinates being transformed. This ten-parameter model is called the Molodensky-Badekas transformation and should not be confused with the more basic Molodensky transform.[23]:{{{3}}}

Like the Helmert transform, using the Molodensky-Badekas transform is a three-step process:

  1. Convert from geodetic coordinates to ECEF coordinates for datum A
  2. Apply the Molodensky-Badekas transform, with the appropriate A\to B transform parameters, to transform from datum A ECEF coordinates to datum B ECEF coordinates
  3. Convert from ECEF coordinates to geodetic coordinates for datum B

The transform has the form[27]

 \begin{bmatrix} X_B \\ Y_B \\ Z_B \end{bmatrix} = \begin{bmatrix} X_A \\ Y_A \\ Z_A \end{bmatrix} + \begin{bmatrix} \Delta X_A \\ \Delta Y_A \\ \Delta Z_A \end{bmatrix} + \begin{bmatrix} 1&-r_z&r_y \\ r_z&1&-r_x \\ -r_y & r_x & 1 \end{bmatrix} \cdot \begin{bmatrix} X_A-X^0_A \\ Y_A-Y^0_A \\ Z_A-Z^0_A \end{bmatrix} + \Delta S \begin{bmatrix} X_A-X^0_A \\ Y_A-Y^0_A \\ Z_A-Z^0_A \end{bmatrix}.

where (X^0_A,Y^0_A,Z^0_A) is the origin for the rotation and scaling transforms and \Delta S is the scaling factor.

The Molodensky-Badekas transform is used to transform local geodetic datums to a global geodetic datum, such as WGS 84. Unlike the Helmert transform, the Molodensky-Badekas transform is not reversible due to the rotational origin being associated with the original datum.[23]:{{{3}}}

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. R. Burtch, A Comparison of Methods Used in Rectangular to Geodetic Coordinate Transformations.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found. (Appendix B)
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. J. Zhu, "Conversion of Earth-centered Earth-fixed coordinates to geodetic coordinates," Aerospace and Electronic Systems, IEEE Transactions on, vol. 30, pp. 957–961, 1994.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. 19.0 19.1 Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. 22.0 22.1 Lua error in package.lua at line 80: module 'strict' not found.
  23. 23.0 23.1 23.2 23.3 Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.

External links