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