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

时间:2017-12-31 04:24:13

标签: python python-2.7 loops numpy save

我正在寻找如何保存输出的解决方案,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

1 个答案:

答案 0 :(得分:1)

for循环中,dist不是列表。用以下代码替换循环:

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