用scipy测量地理距离

时间:2015-07-25 23:44:41

标签: python scipy geographic-distance

我未能使用scipy pdist函数的结果。我对真实的地理距离感兴趣(首选单位:km)。采取以下坐标:

from scipy.spatial.distance import pdist

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

但是这个单位是什么?谷歌表示,这两点之间的距离是1179公里。我如何从13.75021037到达那里?

2 个答案:

答案 0 :(得分:3)

来自pdist的{​​{1}}方法不支持scipylon坐标的距离,如评论中所述。

但是,如果您想获得lat返回的距离矩阵,可以使用pdist方法和pdist包中提供的距离方法。为此,geopy允许使用带有两个参数的自定义函数(lambda函数)计算距离。

以下是一个例子:

pdist

答案 1 :(得分:2)

使用最新的Python 3,现在会发出弃用警告。我实际上更容易理解this answer@cffk

(为方便起见,粘贴在这里)

>>> from geopy.distance import great_circle
>>> from geopy.distance import geodesic
>>> 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