scipy.spatial.distance:纬度/经度点之间的城市街区:结果的单位是什么?

问题描述 投票:0回答:1
import pandas as pd
from scipy.spatial import distance
from scipy.spatial.distance import cityblock

# Sample dataset with latitude and longitude
patient = {
    'Patient': ['pt1'],
    'lat': [34.0522],
    'lon': [-118.2437]
}

patient = pd.DataFrame(patient)

hospital = {
    'hospital': ['h1'],
    'LATITUDE': [35.0522],
    'LONGITUDE': [-133.2437]
}

hospital = pd.DataFrame(hospital)

distance = cityblock((patient['lat'], patient['lon']), (hospital['LATITUDE'], hospital['LONGITUDE']))

我正在计算经纬度点与曼哈顿距离(城市街区)之间的距离。

但是结果中的测量单位是什么?

编辑添加可重现的示例。

scipy distance spatial
1个回答
0
投票

没有任何合理的单位可以附加到此计算结果。

打个比方:假设您正在测量矩形房屋的周长。在其中两侧,您测量的长度为 20 英尺。在另外两侧,您测量的长度为 10 米。将其加起来:20 + 20 + 10 + 10 = 60。现在,您使用哪个单位来计算结果,英尺还是米?答案是两者都不正确:这是将不同长度的距离单位加在一起。

同样,一定程度的纬度和经度跨越不同的距离。一个纬度跨度约为111公里。 (事实上,这就是米最初的定义方式。)经度更为复杂。在赤道,它与纬度相同。当远离赤道时,经度跨越的距离会更短。更具体地说,经度跨度为 111 km * cos(纬度)。

假设您有 2 位患者,每一位距离医院一公里,一位住在医院的正北面,另一位住在医院的正东面。假设医院位于北纬 34 度,以度为单位测量距离意味着您将计算出北边的患者比东边的患者近 18%。

如果您想要测量两个具有物理意义的纬度/经度对之间的距离,我建议您计算半正弦距离。您可以使用 this packagethis sklearn function 来执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.