点集之间的Python(最小)大圆距离

时间:2019-07-15 15:14:32

标签: python arrays performance distance spherical-coordinate

是否存在一个Python软件包,用于有效地计算数组a中每个(纬度,经度)点到数组b中每个(纬度)的最小大圆距离?例如,scipy.spatial.distance.cdist不幸的是,据我所知,它不支持球面距离。

在许多数据点(例如ab分别具有〜70000和〜1200点的情况下),如果使用不同的{{1 }}和a数组是必需的。

b

1 个答案:

答案 0 :(得分:1)

由于大圆的长度与弦长成正比,所以最小大圆的距离等于嵌入在欧氏3D空间中的点的最小距离。

因此,我建议计算与每个纬度和经度对等效的x,y,z坐标,并使用提到的scipy函数

voltage_bus_value = [f"^V_BS({n})" for n in bus_values]
voltage_values = df[df['V_BS'].isin(voltage_names)]['V_BS_Values'].values
#output
array([0.98974069])

找到最小的3D欧几里得距离,可以很容易地将其转换回大圆距。

相关问题