【发布时间】:2017-07-21 13:57:25
【问题描述】:
我正在处理两组大小相同的三个大型列表,其中包含 UTM 格式的经度、纬度和高度坐标(请参见下面的列表)。数组包含重叠坐标(即经度和纬度值相等)。如果 Lon 中的值等于 Lon2 并且 Lat 中的值等于 Lat2 那么我想计算这些索引处的平均高度。但是,如果它们不相等,则经度、纬度和高度值将保持不变。我只想将重叠数据替换为一组经度和纬度坐标并计算这些坐标的平均值。
这是我目前的尝试
import numpy as np
Lon = [450000.50,459000.50,460000,470000]
Lat = [5800000.50,459000.50,500000,470000]
Alt = [-1,-9,-2,1]
Lon2 = [450000.50,459000.50,460000,470000]
Lat2 = [5800000.50,459000.50,800000,470000]
Alt2= [-3,-1,-20,2]
MeanAlt = []
appendAlt = MeanAlt.append
LonOverlap = []
appendLon = LonOverlap.append
LatOverlap = []
appendLat = LatOverlap.append
for i, a in enumerate(Lon and Lat and Alt):
for j, b in enumerate(Lon2 and Lat2 and Alt2):
if Lon[i]==Lon2[j] and Lat[i]==Lat2[j]:
MeanAltData = (Alt[i]+Alt2[j])/2
appendAlt(MeanAltData)
LonOverlapData = Lon[i]
appendLat(LonOverlapData)
LatOverlapData = Lat[i]
appendLon(LatOverlapData)
print(MeanAlt) # correct ans should be MeanAlt = [-2.0,-5,1.5]
print(LonOverlap)
print(LatOverlap)
我正在使用 jupyter 笔记本电脑,我的笔记本电脑速度很慢,所以我需要让这段代码更有效率。我将不胜感激这方面的任何帮助。谢谢你:)
【问题讨论】:
-
为什么第三个
MeanAlt是-5?Lat[2]!=Lat2[2]等等,根据您的问题表述"...如果它们不相等,则经度、纬度和高度值将保持"。 “高度值将保留” 是什么意思?这对MeanAlt[2]有何影响? -
啊,看来你是丢弃值对应于不相等的经度或纬度。请确认。
-
为什么你在开头有
import numpy as np,而你从不在代码的任何地方使用np?