我想在给定的纬度和经度值之间找到对,以输出温度值。例如,假设这是我可用的数据:
lat1=[0,1,2,3,4,5,6,7,8]
lon2=[0,1,2,3,4,5,6,7,7]
temp=[2,3,4,5,6,7,8,9,10]
这是我必须获得以下时间值的纬度和经度值:
lat2=[0,1,2,3,8]
lon2=[0,1,2,3,7]
在此示例中,我希望代码为每个纬度和经度对输出温度值。因此,对于给定的纬度和经度值,它将输出以下温度:
temp=[2,3,4,10]
以下是我的尝试。我的想法是找到从所需的纬度和经度值中减去的数据纬度和经度值等于0的任何位置,这意味着它们是相同的。然后,我将获得发生这种情况的位置,并使用温度数据进一步打印该位置。但是,此代码输出以下错误:
TypeError: unsupported operand type(s) for -: 'list' and 'list'
我当前代码的任何帮助或其他建议将不胜感激!非常感谢。
'''
import numpy as np
def findpairs(lat1,lat2,lon1,lon2,a,b,c,d):
for i in range (0,a):
for j in range (0,b):
for k in range (0,c):
for l in range (0,d):
if ((lat1[0:]-lat2[0:]==0) and (lon1[0:]-lon2[0:]==0)):
print (np.where(lat2[j]))
#driver code
lat1 = [1, 2, 7, 5, 3]
lon1 = [ 7, 4, 3, 2, 1,0]
lat2=[1,2,3,7,5,3]
lon2=[7,4,3,2,1,9,0]
a=len(lat1)
b=len(lon1)
c=len(lat2)
d=len(lon2)
findpairs(lat1,lat2,lon1,lon2,a,b,c,d)
'''
您可以创建一个将坐标映射到温度的字典,以便可以使用它将请求的坐标映射到相应的温度:
def get_temp(lat1, lat2, lon1, lon2, temp):
return list(map(dict(zip(zip(lat1, lon1), temp)).get, zip(lat2, lon2)))
因此,给定:
lat1 = [0, 1, 2, 3, 4, 5, 6, 7, 8]
lon1 = [0, 1, 2, 3, 4, 5, 6, 7, 7]
temp = [2, 3, 4, 5, 6, 7, 8, 9, 10]
lat2 = [0, 1, 2, 3, 8]
lon2 = [0, 1, 2, 3, 7]
get_temp(lat1, lat2, lon1, lon2, temp)
会返回:
[2, 3, 4, 5, 10]
请注意,您的预期输出缺少a,5
因为这是(3, 3)
要映射的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句