Я хочу извлечь указанную широту и долготу из файла 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
.
Затем я заставил tuple
в list
путем изменения us_lat
и us_lon
иметь list(n.ravel(n.where(...))
, но она по-прежнему возвращает ту же ошибку. Раньше я мог индексировать этот путь, и я не совсем уверен, почему он не работает на этот раз.
К сожалению, с этими изменениями оно по-прежнему возвращает такое же сообщение об ошибке. Я также пробовал его без использования ravel или функции списка, но ни одна из них не работала. Другие попытки, которые я попытался, выглядят следующим образом: 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
После исправления ошибки, где в коде возвращается тип