python - 使用 Python For 循环保存来自多个坐标的输出距离

标签 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

最佳答案

在您的 for 循环中,dist 不是列表。将循环替换为:

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

关于python - 使用 Python For 循环保存来自多个坐标的输出距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48039971/

相关文章:

python - 在 Tensorflow 中,如何将张量/数组添加到已包含多个张量/数组的张量/数组中。 tf.concat 和 st.stack 需要相同的形状

Python:在个人 Python 包中包含第三方库

c++ - 如何在 C++ 中反向迭代 map ?

python - 使用 os.walk() 生成包含中间目录的文件名

python - 如何合并两个列表

python - 从 .xlsx 读取数据的最佳 Python 模块

python - 如何从类方法调用全局函数

python - 从数据库传递 URL 参数

python - 使用 python 中的 openpyxl 更新行和列

c - 将排序循环结果传输到另一个数组