Distances on a curved earth

GIS in Water Resources

Prepared by David G. Tarboton,
Utah State University, Updated September 2009

A common task working with geographic data is the calculation of the distance between two points on the surface of the earth.  For points close together the earth surface may be approximated as a plane using a convenient projection, but as points get further apart the approximation involved with a projection becomes less accurate and it is better to calculate the distance along an arc around the surface of the earth.  In performing this calculation the earth may be approximated as a spheroid, or if more precise results are required as an ellipsoid.  We will illustrate some of these methods to calculate the distance between points along the Hurricane Katrina track.  The following table gives locations of the center of Hurricane Katrina as it moved from the Atlantic, across Florida, the Gulf of Mexico then over New Orleans and into the US in August 2005.

Date

Latitude

Longitude

Lat rad

Long Rad

d

j

Wed Aug 24 10AM

24.7000

-76.7000

0.43110

-1.33867

Wed Aug 24 10PM

26.0000

-78.0000

0.45379

-1.36136

Thur Aug 25 10AM

26.2000

-79.3000

0.45728

-1.38405

Thur Aug 25 10PM

25.5000

-80.7000

0.44506

-1.40848

Fri Aug 26 10AM

25.1000

-82.2000

0.43808

-1.43466

Fri Aug 26 10PM

24.6000

-83.6000

0.42935

-1.45910

Sat Aug 27 10AM

24.5000

-85.0000

0.42761

-1.48353

Sat Aug 27 10PM

25.0000

-86.2000

0.43633

-1.50447

Sun Aug 28 10AM

26.0000

-88.1000

0.45379

-1.53764

Sun Aug 28 10PM

27.6000

-89.4000

0.48171

-1.56032

Mon Aug 29 10AM

30.2000

-89.6000

0.52709

-1.56382

Mon Aug 29 10PM

33.5000

-88.5000

0.58469

-1.54462

Tues Aug 30 10AM

36.3000

-87.5000

0.63355

-1.52716

1.  Distance using a projection on to a flat plane.  A feature class KatrinaPath was created using the above coordinates and displayed together with US States in Arcmap:

Note that in the coordinate display at the bottom coordinates are expressed in latitude and longitude.  This lets you know that this map display is in terms of geographic coordinates.  This can be verified by right clicking on  the table of contents "Layers" label referred to as a data frame and selecting properties.

In the Properties dialog that appears select the coordinate system tab to see that the coordinate system is GCS_North_American_1983.

This means a Geographic Coordinate system using latitude and longitude coordinates relative to the North American Datum of 1983 (NAD83).  Click on Predefined/Projected/Continental/North America and select "USA Contiguous Equidistant Conic".  From the name "Equidistant" this is a projection that preserves distances well.  Click OK.

Your Map display should now adjust itself so that meters are shown in the coordinate display at the bottom.  The map is now being displayed using projected coordinates.

In projected coordinates it is meaningful to select the Measure tool and measure distances between points as shown above.  The distance between two points on the Hurricane track, such as the 8/28 10 pm and 8/29 10 am points shown can be read as 288117 m, or 288 km.  This distance is somewhat approximate due to inaccuracy in positioning the Measure tool precisely over the points.

To more precisely calculate this distance we need the coordinates of each of these points in projected coordinates.  To achieve this we first need to create a new feature class that is in projected coordinates.  Right click on Katerina path and select Data/Export data as shown below

Click on use the same coordinate system as the data frame and browse to output a feature class in the geodatabase named 'katrina.mdb' giving the new feature class the name KatrinaProj.  Click OK and click Yes to add the features to the map.

The new feature class now displayed on the map has its coordinates saved internally in projected coordinates rather than geographic coordinates.  To retrieve these coordinates so that distance calculations can be performed the "Add XY Coordinates" tool will be used.  Select Data Management|Features|Add XY Coordinates from ArcToolbox

Select the input fueature class as KatrinaProj and click OK

Open the attribute table for KatrinaProj and see that two fields named Point_X and Point_Y have been added.

Now, geometry can be used to more precisely calculate the distances between the points.  Between the points of 8/28 10 pm and 8/29 10 am the distance is:

m = 288.8 km.  This is a bit more precise than the measure distance obtained above.

2.  Distance on a curved earth represented as a spheroid.

Refer to http://en.wikipedia.org/wiki/Spherical_distance  or (Longley et al., 2001) (see Google Books http://books.google.com/books?id=-FbVI-2tSuYC&pg=PA114#v=onepage&q=&f=false, pages 114-123) for a discussion of this.

Longley et al. give the following formula for calculating the "Great Circle" distance between two points with latitude di and longitude ji.

Wikipedia gives the following formula

This formula is equivalent to the formula given by Longley et al., but is reported to be less prone to rounding errors for small distances.

Implementing both of these formula's in Excel for the two points above I get a distance of 289.58 km.  The radius of the earth was taken as 6367 km in the below and angles were converted to radians.  (This is an embedded Excel object so you can see the formula's if you download the Word document).

This verifies that these formula's are equivalent

3.  Distance on a curved earth represented as an ellipsoid.

The earth is better approximated as an ellipsoid than a spheroid.  MATLAB script exchange includes an implementation of a function for calculating distances on the WGS84 reference ellipsoid.  This is given at http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=5379&objectType=FILE.  Evaluating this function in MATLAB I get

vdist(27.6, -89.4, 30.2, -89.6)

ans =  2.8883e+005

This reports the distance between the two points as 288.83 km.  I believe this ellipsoid distance to be the most precise.  This is quite close to the projected coordinate distance, but not as close to the great circle distance.  Therefore I conclude that distances calculated in projected coordinates are more precise at this scale than great circle distances.

There is an updated MATLAB script at http://www.mathworks.com/matlabcentral/fileexchange/8607 that I have not tested yet, but should be equivalent/superior to the script referenced above.

References

Longley, P. A., M. F. Goodchild, D. J. Maguire and D. W. Rind, (2001), Geographic Information Systems and Science, Wiley, 454 p.