在python中运行以下代码时:
lat, lon = f.variables['latitude'], f.variables['longitude']
latvals = lat[:]; lonvals = lon[:]
def getclosest_ij(lats,lons,latpt,lonpt):
dist_sq = (lats-latpt)**2 + (lons-lonpt)**2
minindex_flattened = dist_sq.argmin()
return np.unravel_index(minindex_flattened, lats.shape)
iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)
它得到以下错误:
ValueError Traceback(最近一次通话)
模块()中的ipython-input-104-3ba92bea5d48
11 return np.unravel_index(minindex_flattened, lats.shape) 12 iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)
ValueError:需要超过1个值才能打开
这是什么意思?我该怎么修?我会读一个NetCDF文件,它由总的秋季水数据组成,维度为:时间(124)、纬度(15)和经度(15)。我会为特定的点(lat,lon)和时间调整tcw的数量。我试图使用上面的代码来解决任务的第一部分,即评估特定coorinates的tcw,但没有成功。
提前感谢您的帮助。
在python中,您可以编写
var1, var2 = (1, 2) # = iterable with 2 items
其将在CCD_ 1中存储1并且在var2
中存储2。此功能称为拆包。
因此,您的代码抛出的错误意味着,函数getclosest_ij
返回一个值,而不是您需要将它们解压缩到iy_min
和ix_min