Английская Википедия:Geographic coordinate conversion
Шаблон:Short description 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 is composed of 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.
Change of units and format
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 units or formats:[2]
- sexagesimal degree: degrees, minutes, and seconds : 40° 26′ 46″ N 79° 58′ 56″ W
- degrees and decimal minutes: 40° 26.767′ N 79° 58.933′ W
- decimal degrees: +40.446 -79.982
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
- <math>\rm{decimal\ degrees} = \rm{degrees} + \frac{\rm{minutes}}{60} + \frac{\rm{seconds}}{3600}</math>.
To convert back from decimal degree format to degrees minutes seconds format,
- <math> \begin{align}
\rm{absDegrees} & = | \rm{decimal\ degrees} | \\ \rm{floorAbsDegrees} & = \lfloor \rm{absDegrees} \rfloor \\ \rm{degrees} & = \sgn ( \rm{decimal\ degrees} ) \times \rm{floorAbsDegrees} \\ \rm{minutes} & = \lfloor 60 \times (\rm{absDegrees} - \rm{floorAbsDegrees})\rfloor \\ \rm{seconds} & = 3600 \times (\rm{absDegrees} - \rm{floorAbsDegrees}) - 60 \times \rm{minutes} \\
\end{align} </math> where <math>\rm{absDegrees}</math> and <math>\rm{floorAbsDegrees}</math> are just temporary variables to handle both positive and negative values properly.
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 earth-centered, earth-fixed (ECEF) coordinates and conversion from one type of map projection to another.
From geodetic to ECEF coordinates
Geodetic coordinates (latitude <math>\ \phi</math>, longitude <math>\ \lambda</math>, height <math>h</math>) can be converted into ECEF coordinates using the following equation:[3]
- <math>\begin{align}
X & = \left( N(\phi) + h\right)\cos{\phi}\cos{\lambda} \\ Y & = \left( N(\phi) + h\right)\cos{\phi}\sin{\lambda} \\ Z & = \left( \frac{b^2}{a^2} N(\phi) + h\right)\sin{\phi} \\ & = \left( (1 - e^2) N(\phi) + h\right)\sin{\phi} \\ & = \left( (1 - f)^2 N(\phi) + h\right)\sin{\phi}
\end{align}</math>
where
- <math>
N(\phi) = \frac{a^2}{\sqrt{a^2 \cos^2 \phi + b^2 \sin^2 \phi }} = \frac{a}{\sqrt{1 - e^2\sin^2\phi}},
</math>
and <math>a</math> and <math>b</math> are the equatorial radius (semi-major axis) and the polar radius (semi-minor axis), respectively. <math>e^2 = 1 - \frac{b^2}{a^2}</math> is the square of the first numerical eccentricity of the ellipsoid. <math>f = 1 - \frac{b}{a}</math> is the flattening of the ellipsoid. The prime vertical radius of curvature <math>\, N(\phi) </math> is the distance from the surface to the Z-axis along the ellipsoid normal.
Properties
The following condition holds for the longitude in the same way as in the geocentric coordinates system:
- <math>\frac{X}{\cos\lambda} - \frac{Y}{\sin\lambda} = 0.</math>
And the following holds for the latitude:
- <math>\frac{p}{\cos\phi} - \frac{Z}{\sin\phi} - e^2 N(\phi) = 0,</math>
where <math>p = \sqrt{X^2 + Y^2}</math>, as the parameter <math>h</math> is eliminated by subtracting
- <math>\frac{p}{\cos\phi} = N + h</math>
and
- <math>\frac{Z}{\sin\phi} = \frac{b^2}{a^2}N + h.</math>
Furthermore:
- <math>\tan \phi = (Z / p)/((1 - e^2 )N+h) / (N + h)).</math>
Orthogonality
The orthogonality of the coordinates is confirmed via differentiation:
- <math>\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}, \\[3pt] \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}</math>
where
- <math>
M(\phi) = \frac{a\left(1 - e^2\right)}{\left(1 - e^2 \sin^2 \phi\right)^\frac{3}{2}}
</math>
(see also "Meridian arc on the ellipsoid").
From ECEF to geodetic coordinates
The conversion of ECEF coordinates to longitude is:
- <math>\lambda = \operatorname{atan2}(Y,X)</math>.
where atan2 is the quadrant-resolving arc-tangent function. The geocentric longitude and geodetic longitude have the same value; this is true for Earth and other similar shaped planets because they have a large amount of rotational symmetry around their spin axis (see triaxial ellipsoidal longitude for a generalization).
The conversion for the latitude and height involves a circular relationship involving N, which is a function of latitude:
- <math>\phi = \arctan\left( (Z / p)/((1 - e^2) N + h)/ (N + h)) \right)</math>,
- <math>h=\frac{p}{\cos\phi} - N</math>.
It can be solved iteratively,[4][5] for example, starting with a first guess h≈0 then updating N. More elaborate methods are shown below. The procedure is, however, sensitive to small accuracy due to <math>N</math> and <math>h</math> being maybe 10Шаблон:Sup apart.[6][7]
Newton–Raphson method
The following Bowring's irrational geodetic-latitude equation,[8] derived simply from the above properties, is efficient to be solved by Newton–Raphson iteration method:[9][10]
- <math>\kappa - 1 - \frac{e^2 a\kappa}{\sqrt{p^2 + \left(1 - e^2\right) Z^2 \kappa^2}} = 0,</math>
where <math>\kappa = \frac{p}{Z} \tan \phi</math> and <math>p = \sqrt{X^2 + Y^2}</math> as before. The height is calculated as:
- <math>\begin{align}
h &= e^{-2} \left(\kappa^{-1} - {\kappa_0}^{-1}\right) \sqrt{p^2 + Z^2 \kappa^2}, \\ \kappa_0 &= \left(1 - e^2\right)^{-1}.
\end{align}</math>
The iteration can be transformed into the following calculation:
- <math>\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},</math>
where <math>c_i = \frac{\left(p^2 + \left(1 - e^2\right) Z^2 \kappa_i ^2\right)^\frac{3}{2}}{ae^2} .</math>
The constant <math>\,\kappa_0</math> is a good starter value for the iteration when <math>h \approx 0</math>. 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 <math>\kappa</math>, derived from the above, can be solved by Ferrari's solution[11][12] to yield:
- <math>
\begin{align}
\zeta &= \left(1 - e^2\right)\frac{z^2}{a^2} ,\\[4pt] \rho &= \frac{1}{6}\left(\frac{p^2}{a^2} + \zeta - e^4\right) ,\\[4pt] s &= \frac{e^4 \zeta p^2}{4\rho^3 a^2} ,\\[4pt] t &= \sqrt[3]{1 + s + \sqrt{s(s + 2)}} ,\\[4pt] u &= \rho \left(t + 1 + \frac{1}{t}\right) ,\\[4pt] v &= \sqrt{u^2 + e^4 \zeta} ,\\[4pt] w &= e^2 \frac{u + v - \zeta}{2v} ,\\[4pt] \kappa &= 1 + e^2 \frac{\sqrt{u + v + w^2} + w}{u + v}.
\end{align} </math>
The application of Ferrari's solution
A number of techniques and algorithms are available but the most accurate, according to Zhu,[13] is the following procedure established by Heikkinen,[14] as cited by Zhu. It is assumed that geodetic parameters <math>\{a,\, b,\, e\}</math> are known
- <math>\begin{align}
a &= 6378137.0 \text{ m. Earth Equatorial Radius} \\[3pt] b &= 6356752.3142 \text{ m. Earth Polar Radius} \\[3pt] e^2 &= \frac{a^2-b^2}{a^2} \\[3pt] e'^2 &= \frac{a^2 - b^2}{b^2} \\[3pt] p &= \sqrt{X^2 + Y^2} \\[3pt] F &= 54b^2 Z^2 \\[3pt] G &= p^2 + \left(1 - e^2\right)Z^2 - e^2\left(a^2 - b^2\right) \\[3pt] c &= \frac{e^4 Fp^2}{G^3} \\[3pt] s &= \sqrt[3]{1 + c + \sqrt{c^2 + 2c}} \\[3pt] k &= s + 1 + \frac{1}{s}\\[3pt] P &= \frac{F}{3 k^2 G^2} \\[3pt] Q &= \sqrt{1 + 2e^4 P} \\[3pt] r_0 &= \frac{-Pe^2 p}{1 + Q} + \sqrt{\frac{1}{2} a^2\left(1 + \frac{1}{Q}\right) - \frac{P\left(1 - e^2\right)Z^2}{Q(1 + Q)} - \frac{1}{2}Pp^2} \\[3pt] U &= \sqrt{\left(p - e^2 r_0\right)^2 + Z^2} \\[3pt] V &= \sqrt{\left(p - e^2 r_0\right)^2 + \left(1 - e^2\right)Z^2} \\[3pt] z_0 &= \frac{b^2 Z}{aV} \\[3pt] h &= U\left(1 - \frac{b^2}{aV}\right) \\[3pt] \phi &= \arctan\left[\frac{Z + e'^2 z_0}{p}\right] \\[3pt] \lambda &= \operatorname{arctan2}[Y,\, X]
\end{align}</math>
Note: arctan2[Y, X] is the four-quadrant inverse tangent function.
Power series
For small Шаблон:Math the power series
- <math>\kappa = \sum_{i\ge 0} \alpha_i e^{2i}</math>
starts with
- <math>\begin{align}
\alpha_0 &= 1; \\ \alpha_1 &= \frac{a}{\sqrt{Z^2 + p^2}}; \\ \alpha_2 &= \frac{aZ^2\sqrt{Z^2 + p^2} + 2a^2 p^2}{2\left(Z^2 + p^2\right)^2}.
\end{align}</math>
Geodetic to/from ENU coordinates
To convert from geodetic coordinates to local tangent plane (ENU) coordinates is a two-stage process:
- Convert geodetic coordinates to ECEF coordinates
- Convert ECEF coordinates to local ENU 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 <math>\left\{X_r,\, Y_r,\, Z_r\right\}</math> and an aircraft at <math>\left\{X_p,\, Y_p,\, Z_p\right\}</math>, then the vector pointing from the radar to the aircraft in the ENU frame is
- <math>
\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}
</math>
Note: <math>\ \phi</math> is the geodetic latitude; the geocentric latitude is inappropriate for representing vertical direction for the local tangent plane and must be converted if necessary.
From ENU to ECEF
This is just the inversion of the ECEF to ENU transformation so
- <math>
\begin{bmatrix}X_p \\ Y_p \\ Z_p\end{bmatrix} = \begin{bmatrix} -\sin\lambda_r & -\sin\phi_r\cos\lambda_r & \cos\phi_r\cos\lambda_r \\ \cos\lambda_r & -\sin\phi_r\sin\lambda_r & \cos\phi_r\sin\lambda_r \\ 0 & \cos\phi_r & \sin\phi_r \end{bmatrix} \begin{bmatrix}x \\ y \\ z\end{bmatrix} + \begin{bmatrix}X_r \\ Y_r \\ Z_r\end{bmatrix}
</math>
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 <math>A</math> to an intermediate coordinate system, such as ECEF, then converting from ECEF to projection <math>B</math>. 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[15] and the USGS paper Map Projections: A Working Manual[16] 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.[17]
Datum transformations
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 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.
Helmert transformation
Use of the Helmert transform in the transformation from geodetic coordinates of datum <math>A</math> to geodetic coordinates of datum <math>B</math> occurs in the context of a three-step process:[18]
- Convert from geodetic coordinates to ECEF coordinates for datum <math>A</math>
- Apply the Helmert transform, with the appropriate <math>A\to B</math> transform parameters, to transform from datum <math>A</math> ECEF coordinates to datum <math>B</math> ECEF coordinates
- Convert from ECEF coordinates to geodetic coordinates for datum <math>B</math>
In terms of ECEF XYZ vectors, the Helmert transform has the form (position vector transformation convention and very small rotation angles simplification)[18]
- <math>
\begin{bmatrix} X_B \\ Y_B \\ Z_B \end{bmatrix} = \begin{bmatrix} c_x \\ c_y \\ c_z \end{bmatrix} + \left(1 + s \times 10^{-6}\right) \begin{bmatrix} 1 & -r_z & r_y \\ r_z & 1 & -r_x \\ -r_y & r_x & 1 \end{bmatrix} \begin{bmatrix} X_A \\ Y_A \\ Z_A \end{bmatrix}.
</math>
The Helmert transform is a seven-parameter transform with three translation (shift) parameters <math>c_x,\, c_y,\, c_z</math>, three rotation parameters <math>r_x,\, r_y,\, r_z</math> and one scaling (dilation) parameter <math>s</math>. 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.[19]
A fourteen-parameter Helmert transform, with linear time dependence for each parameter,Шаблон:R can be used to capture the time evolution of geographic coordinates dues to geomorphic processes, such as continental drift[20] and earthquakes.[21] This has been incorporated into software, such as the Horizontal Time Dependent Positioning (HTDP) tool from the U.S. NGS.[22]
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.Шаблон:R
Like the Helmert transform, using the Molodensky-Badekas transform is a three-step process:
- Convert from geodetic coordinates to ECEF coordinates for datum <math>A</math>
- Apply the Molodensky-Badekas transform, with the appropriate <math>A\to B</math> transform parameters, to transform from datum <math>A</math> ECEF coordinates to datum <math>B</math> ECEF coordinates
- Convert from ECEF coordinates to geodetic coordinates for datum <math>B</math>
The transform has the form[23]
- <math>
\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} \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}.
</math>
where <math>\left(X^0_A,\, Y^0_A,\, Z^0_A\right)</math> is the origin for the rotation and scaling transforms and <math>\Delta S</math> 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.Шаблон:R
Molodensky transformation
The Molodensky transformation converts directly between geodetic coordinate systems of different datums without the intermediate step of converting to geocentric coordinates (ECEF).[24] 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.[25] The Molodensky method was popular before the advent of modern computers and the method is part of many geodetic programs.
Grid-based method
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.[26] 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).[27] 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.[28][29]
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.[30] The standard NIMA TM 8350.2, Appendix D,[31] lists MRE transforms from several local datums to WGS 84, with accuracies of about 2 meters.[32]
The MREs are a direct transformation of geodetic coordinates with no intermediate ECEF step. Geodetic coordinates <math>\phi_B,\, \lambda_B,\, h_B</math> in the new datum <math>B</math> are modeled as polynomials of up to the ninth degree in the geodetic coordinates <math>\phi_A,\, \lambda_A,\, h_A</math> of the original datum <math>A</math>. For instance, the change in <math>\phi_B</math> could be parameterized as (with only up to quadratic terms shown)Шаблон:R
- <math>\Delta \phi = a_0 + a_1 U + a_2 V + a_3 U^2 + a_4 UV + a_5 V^2 + \cdots</math>
where
- <math>a_i,</math> parameters fitted by multiple regression
- <math>\begin{align}
U &= K(\phi_A - \phi_m) \\ V &= K(\lambda_A - \lambda_m) \\ \end{align}</math>
- <math>K,</math> scale factor
- <math>\phi_m,\, \lambda_m,</math> origin of the datum, <math>A.</math>
with similar equations for <math> \Delta\lambda</math> and <math>\Delta h</math>. Given a sufficient number of <math>(A,\, B)</math> 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.
See also
- Gauss–Krüger coordinate system
- List of map projections
- Spatial reference system
- Topocentric coordinate system
- Universal polar stereographic coordinate system
- Universal Transverse Mercator coordinate system
References
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite book
- ↑ A guide to coordinate systems in Great Britain. This is available as a pdf document at Шаблон:Cite web Appendices B1, B2
- ↑ Osborne, P (2008). The Mercator Projections Шаблон:Webarchive Section 5.4
- ↑ R. Burtch, A Comparison of Methods Used in Rectangular to Geodetic Coordinate Transformations.
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal (Appendix B)
- ↑ Шаблон:Cite book
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite journal
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite book
- ↑ Шаблон:Cite web
- ↑ 18,0 18,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite book
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite report
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web