Great-circle distance

From Wikipedia, the free encyclopedia
  (Redirected from Great circle distance)
Jump to: navigation, search
This article is about shortest-distance on a sphere. For the shortest distance on an ellipsoid, see geodesics on an ellipsoid.

The great-circle or orthodromic distance is the shortest distance between two points on the surface of a sphere, measured along the surface of the sphere (as opposed to a straight line through the sphere's interior). The distance between two points in Euclidean space is the length of a straight line between them, but on the sphere there are no straight lines. In non-Euclidean geometry, straight lines are replaced with geodesics. Geodesics on the sphere are the great circles (circles on the sphere whose centers coincide with the center of the sphere).

Through any two points on a sphere which are not directly opposite each other, there is a unique great circle. The two points separate the great circle into two arcs. The length of the shorter arc is the great-circle distance between the points. A great circle endowed with such a distance is the Riemannian circle.

Between two points which are directly opposite each other, called antipodal points, there are infinitely many great circles, but all great circle arcs between antipodal points have the same length, i.e. half the circumference of the circle, or \pi r, where r is the radius of the sphere.

The Earth is nearly spherical (see Earth radius) so great-circle distance formulas give the distance between points on the surface of the Earth (as the crow flies) correct to within 0.5% or so.[1]

Formulas[edit]

Let \phi_1,\lambda_1 and \phi_2,\lambda_2 be the geographical latitude and longitude of two points 1 and 2, and \Delta\phi,\Delta\lambda their absolute differences; then \Delta\sigma, the central angle between them, is given by the spherical law of cosines:

\Delta\sigma=\arccos\bigl(\sin\phi_1\sin\phi_2+\cos\phi_1\cos\phi_2\cos\Delta\lambda\bigr).

The distance d, i.e. the arc length, for a sphere of radius r and \Delta\sigma given in radians

d = r \, \Delta\sigma.

Computational formulas[edit]

On computer systems with low floating-point precision, this formula can have large rounding errors if the distance is small (if the two points are a kilometer apart on the surface of the Earth, the cosine of the central angle comes out 0.99999999). For modern 64-bit floating-point numbers, the spherical law of cosines formula, given above, does not have serious rounding errors for distances larger than a few meters on the surface of the Earth.[2] The haversine formula is numerically better-conditioned for small distances:[3]

\Delta\sigma
=2\arcsin\left(\sqrt{\sin^2\left(\frac{\Delta\phi}{2}\right)+\cos{\phi_1}\cos{\phi_2}\sin^2\left(\frac{\Delta\lambda}{2}\right)}\right).\;\!

Historically, the use of this formula was simplified by the availability of tables for the haversine function: hav(θ) = sin2(θ/2).

Although this formula is accurate for most distances on a sphere, it too suffers from rounding errors for the special (and somewhat unusual) case of antipodal points (on opposite ends of the sphere). A more complicated formula that is accurate for all distances is the following special case (a sphere, which is an ellipsoid with equal major and minor axes) of the Vincenty formula (which more generally is a method to compute distances on ellipsoids):[4]

\Delta\sigma=\arctan\left(\frac{\sqrt{\left(\cos\phi_2\sin\Delta\lambda\right)^2+\left(\cos\phi_1\sin\phi_2-\sin\phi_1\cos\phi_2\cos\Delta\lambda\right)^2}}{\sin\phi_1\sin\phi_2+\cos\phi_1\cos\phi_2\cos\Delta\lambda}\right).

When programming a computer, one should use the atan2() function rather than the ordinary arctangent function (atan()), so that \Delta\sigma is placed in the correct quadrant.

The determination of the great-circle distance is just part of the more general problem of great-circle navigation which computes also the azimuths at the end points and intermediate way-points.

Vector version[edit]

Another representation of similar formulas, but using normal vectors instead of latitude/longitude to describe the positions, is found by means of 3D vector algebra, i.e. utilizing the dot product, cross product, or a combination:[5]

\begin{align}
\Delta\sigma &=\arccos( \mathbf n_1\cdot \mathbf n_2 ) \\
\Delta\sigma &=\arcsin\left( \left| \mathbf n_1\times \mathbf n_2 \right| \right) \\
\Delta\sigma &=\arctan\left( \frac{\left| \mathbf n_1\times \mathbf n_2 \right|}{\mathbf n_1\cdot \mathbf n_2} \right) \\
\end{align}\,\!

where \mathbf n_1 and \mathbf n_2 are the normals to the ellipsoid at the two positions 1 and 2. Similarly to the equations above based on latitude and longitude, the expression based on arctan is the only one that is well-conditioned for all angles.

From chord length[edit]

A line through three-dimensional space between points of interest on a spherical Earth is the chord of the great circle between the points. The central angle between the two points can be determined from the chord length. The great circle distance is proportional to the central angle.

The great circle chord length, C_h\,\!, may be calculated as follows for the corresponding unit sphere, by means of Cartesian subtraction:

\begin{align}
\Delta{X}&=\cos\phi_2\cos\lambda_2 - \cos\phi_1\cos\lambda_1;\\
\Delta{Y}&=\cos\phi_2\sin\lambda_2 - \cos\phi_1\sin\lambda_1;\\
\Delta{Z}&=\sin\phi_2 - \sin\phi_1;\\
C&=\sqrt{(\Delta{X})^2+(\Delta{Y})^2+(\Delta{Z})^2}
\end{align}

The central angle is:

\Delta\sigma=2\arcsin\left(\frac C2\right).

The great circle distance is:

d = r \Delta\sigma.

In this last formula, the central angle must be in radians.

Radius for spherical Earth[edit]

Main article: Earth radius

The shape of the Earth closely resembles a flattened sphere (a spheroid) with equatorial radius a of 6378.137 km; distance b from the center of the spheroid to each pole is 6356.752 km. When calculating the length of a short north-south line at the equator, the circle that best approximates that line has a radius of b^2/a (which equals the meridian's semi-latus rectum), or 6335.439 km, while the spheroid at the poles is best approximated by a sphere of radius a^2/b, or 6399.594 km, a 1% difference. So as long as we're assuming a spherical Earth, any single formula for distance on the Earth is only guaranteed correct within 0.5% (though we can do better if our formula is only intended to apply to a limited area). A good choice[6] for the radius is the mean earth radius, R_1 = \frac13(2a+b) \approx 6371\,\mathrm{km} (for the WGS84 ellipsoid); in the limit of small flattening, this choice minimizes the mean square relative error in the estimates for distance.

See also[edit]

References[edit]

  1. ^ Admiralty Manual of Navigation, Volume 1, The Stationery Office, 1987, p. 10, ISBN 9780117728806, "The errors introduced by assuming a spherical Earth based on the international nautical mile are not more than 0.5% for latitude, 0.2% for longitude." 
  2. ^ "Calculate distance, bearing and more between Latitude/Longitude points". Retrieved 10 Aug 2013. 
  3. ^ R.W. Sinnott, "Virtues of the Haversine", Sky and Telescope, vol. 68, no. 2, 1984, p. 159
  4. ^ Vincenty, Thaddeus (1975-04-01). "Direct and Inverse Solutions of Geodesics on the Ellipsoid with Application of Nested Equations" (PDF). Survey Review (Kingston Road, Tolworth, Surrey: Directorate of Overseas Surveys) 23 (176): 88–93. Retrieved 2008-07-21. 
  5. ^ Gade, Kenneth (2010). "A non-singular horizontal position representation" (PDF). The Journal of Navigation (Cambridge University Press) 63 (3): 395–417. doi:10.1017/S0373463309990415. 
  6. ^ McCaw, G. T. (1932). "Long lines on the Earth". Empire Survey Review 1 (6): 259–263. 

External links[edit]