是否存在一个Python软件包,用于有效地计算数组a
中每个(纬度,经度)点到数组b
中每个(纬度)的最小大圆距离?例如,scipy.spatial.distance.cdist不幸的是,据我所知,它不支持球面距离。
在许多数据点(例如a
和b
分别具有〜70000和〜1200点的情况下),如果使用不同的{{1 }}和a
数组是必需的。
b
答案 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欧几里得距离,可以很容易地将其转换回大圆距。