pythonscipygeographic-distance

Measuring geographic distance with scipy


I fail to use the outcome of scipy's pdist function. I am interested in the real geographic distance (preferred unit: km). Take the following coordinates:

from scipy.spatial.distance import pdist

coordinates = [ (42.057, -71.08), (39.132, -84.5155) ]
distance = pdist(coordinates)
print distance
# [ 13.75021037]

But what's the unit? Google says the distance between these two points is 1179 km. How do I get there from 13.75021037?


Solution

  • Using the latest Python 3, this now gives a deprecation warning. I actually found this answer by @cffk much easier to understand:

    (pasting here for convenience)

    >>> from geopy.distance import geodesic, great_circle
    >>> p1 = (31.8300167,35.0662833) # (lat, lon) - https://goo.gl/maps/TQwDd
    >>> p2 = (31.8300000,35.0708167) # (lat, lon) - https://goo.gl/maps/lHrrg
    >>> geodesic(p1, p2).meters
    429.1676644986777
    >>> great_circle(p1, p2).meters
    428.28877358686776