在运行此代码的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的数量。我尝试使用上面的代码来解决我的任务的第一部分,以评估特定坐标的tcw,但没有奏效。
提前感谢您的帮助。
答案 0 :(得分:0)
var1, var2 = (1, 2) # = iterable with 2 items
将在var1
中存储1,在var2
中存储2。
此功能称为解包。
因此,代码抛出的错误意味着函数getclosest_ij
返回一个值,而不是将它们解压缩到iy_min
和{{1}所需的2个值}}