批量经纬度距离计算优化
在处理海量经纬度数据集的距离计算时,遇到处理时间过长的问题,可以通过以下方法进行优化:
问题核心在于需要找出 a 表内各点 2km 范围内的 b 表经纬度。原始代码采用逐行遍历的方法,通过筛选和计算距离,效率较低。
要优化性能,可以将经纬度数据转换成矩阵形式,利用距离矩阵计算库计算出 a、b 表之间所有点的距离。这样,可以避免重复繁琐的距离计算,大大提高效率。
具体代码如下:
from scipy.spatial import distance_matrix # 假设 df1、df2 数据包含经纬度数据 # 转换为经纬度坐标对 df1[['Longitude', 'Latitude']] df2[['Longitude', 'Latitude']] # 求出距离矩阵 tmp = distance_matrix(df1[['Longitude', 'Latitude']], df2[['Longitude', 'Latitude']]) # 比对距离边界,获取原始数据索引 min_distance = 2000 # 2 公里 idx = np.where(tmp < min_distance) # 根据索引提取满足条件的经纬度 df_result = df2.iloc[idx[0]]
以上就是海量经纬度数据距离计算如何优化?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号