使用 Python for 循环保存许多坐标的输出距离



我正在寻找有关如何保存输出的解决方案,来自 Python 的结果,用于从一个位置受制于多个坐标的循环搜索距离。使用的脚本如下:

import gpxpy.geo
import numpy as np
# Reference Point
lat1 = 8.1
lon1 = 108.9
# Range Points for Distance Determination Subject to Reference Point
lat2 = [3.120,5.933,1.490]
lon2 = [113.025,116.048,110.353]
dist = []
for i in range(len(lat2)):
    dist = gpxpy.geo.haversine_distance(lat1, lon1, lat2[i], lon2[i])/1000
    print dist
data=np.zeros((np.size(lon2),3))
#
data[:,0]=lat2
data[:,1]=lon2
data[:,2]=dist
np.savetxt('distant.dat',data,fmt='%9.3f')

我从生成的文件中得到的当前结果是这样的:

3.120   113.025   752.406
5.933   116.048   752.406
1.490   110.353   752.406

实际结果应该迭代到第三列中有几个值,如下所示:

3.120   113.025   717.551
5.933   116.048   824.794
1.490   110.353   752.406

for循环中,dist 不是一个列表。 将循环替换为:

dist = [
    gpxpy.geo.haversine_distance(lat1, lon1, lat2[i], lon2[i]) / 1000
    for i in range(len(lat2))]

最新更新