我想用坐标(lat1, lon1
)和(lat2, lon2
)计算两个数组中存储的点之间的大圆距离(角度)rho
):
deg2rad = np.pi/180.0
rho_cos = (np.sin(lat1[:,None]*deg2rad)*np.sin(lat2[None,:]*deg2rad) +
np.cos(lat1[:,None]*deg2rad)*np.cos(lat2[None,:]*deg2rad)*np.cos(np.abs(lon1[:,None] - lon2[None,:])*deg2rad))
rho = np.arccos(rho_cos) / deg2rad
数组lat1
和lon1
包含约70000个数据点的数量级,lat2
和lon2
包含约1200个数据点的数量级。我需要用不同的坐标数组进行多次(~100000)计算。可能的唯一lat1
和lat2
值来自具有450个数据点的数组,可能的唯一lon1
和lon2
值来自具有900个数据点的数组
目前,计算“缓慢”(在约100000次迭代的预期总时间意义上),在单个核心上,每次迭代约需4.5秒。如何加快计算速度?有索引的所有可能的坐标对的巨大查找表?并行化?更快的numpy
或scipy
本机函数
目前没有回答
相关问题 更多 >
编程相关推荐