使用scipy.spatial.distance.cityblock计算经纬度点的结果单位是什么?
经纬度曼哈顿距离的计量单位说明
你当前用cityblock计算出的结果,计量单位是经纬度的度数。
原因说明:
- 你直接使用原始的十进制经纬度数值(比如纬度34.0522度、经度-118.2437度)进行曼哈顿距离计算,而曼哈顿距离的公式是
|lat1 - lat2| + |lon1 - lon2|,所以结果的单位就是「度」。 - 需要注意:这种基于度数的曼哈顿距离不能直接对应地面实际距离——纬度方向1度大约对应111公里,但经度方向1度的实际距离会随纬度变化(赤道附近约111公里,越靠近两极距离越短)。
你的示例代码:
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']))
内容的提问来源于stack exchange,提问作者Sandra T
相关产品推荐
相关产品推荐

