0
我想從netCDF
文件中提取指定的經度和緯度。在過去,我從來沒有提取數據的問題。我假設它不工作這一次的原因是因爲我在我的數據不同的閱讀(見下文)提取指定的經度和緯度時的索引問題
data = netCDF4.Dataset('/home/eburrows/metr173/regional_cm/Lab1/air.mon.mean.nc', mode = 'r')
lat = data.variables['lat'][:] #90 through -90
lon = data.variables['lon'][:] #0 through 360
air_temp = data.variables['air'][:] #degrees C
air_temp[air_temp>10000] = n.NaN
此前我已經能夠做到以下幾點:
us_lat = n.ravel(n.where((lat>=___)&(lat<=___)))
us_lon = n.ravel(n.where((lon>=___)&(lon<=___)))
us_annual_temp = n.nanmean(air_temp[:,us_lat, us_lon],0)
這一次但是,它返回Type Error
,指出list indices must be integers, not tuple
。
然後我通過改變us_lat
和us_lon
有list(n.ravel(n.where(...))
迫使tuple
爲list
,但它仍然會返回相同的錯誤。在過去,我可以通過這種方式進行索引,但我不完全確定爲什麼這次不工作。
不幸的是,對於這些修改,它仍然返回相同的錯誤消息。我也試過了,沒有使用ravel或list函數,但兩個選項都不起作用。我嘗試過的其他嘗試如下所示:us_lat = list(n.ravel(n.where((lat> = ____)&(lat <= ___))[0]))或us_lat = n.ravel(n.where ((lat> = ____)&(lat <= ___))[0]) –
'lat_us'和'lon_us'的結果是什麼?他們應該是一系列指數。你可以用'type(lat_us)'來檢查它,它應該返回'' –
N1B4
修復了代碼中的錯誤之後,類型返回