With the proliferation of GPS tagging in data sets, a useful calculation to that allows to derive the distance between two points is possible using the Haversine formula. The law of havershines is a more general formula within spherical trigonometry which relates to sides and angles or spherical triangles. On the surface of a sphere the ‘straight line’ connecting two points is actually the arc of a curve on the sphere surface. This curve arc is a arc along a great circle on the sphere and is mathematically called the spherical distance.

In the haversine calculation, the radius of the earth varies around 6356.752 km to 6378.137 km so choosing a value will result in a error that can not be less than 0.5%.

From wikipedia, the calculation is defined as:

so using this formula, the distance of the great circle arc between two points on earths surface in python is:

```
from math import asin, cos, radians, sin, sqrt
def arclen(lat_a,lon_a,lat_b,lon_b):
r = 6370 #note this is for KM distance
a1,a2, = (radians(lat_a),radians(lon_a))
b1,b2 = (radians(lat_b),radians(lon_b))
delta_lat = b1-a1
delta_lon = b2-a2
n = abs(sin(delta_lat/2) **2
+ cos(a1)*cos(a2)*(sin(delta_lon/2) **2))
if n >1:
n = 1
return 2*r*asin(sqrt(n))
```

A Jupiter notebook with an more extensive example is available.