2014-10-23 3 views
0

У меня есть файл netcdf в R с 14 переменными, которые я хотел бы подмножать с использованием границ широты и долготы, т. Е. Извлечь некоторые из переменных для конкретных океанских областей. До сих пор я пытался использовать южную часть Тихого океана (от -150 Вт до -90 Вт и от -60 до 0С).Подмножество подмножества netcdf в R с использованием границ lat/lon

следует Файл деталь, как (код ниже только показывает детали первого переменный «bio1»):

"File oceandata.nc (NC_FORMAT_CLASSIC):" 
14 variables (excluding dimension variables):" 
float bio1[lon,lat] " 
standard_name: air_temperature" 
long_name: bio1: Annual Mean Temp" 
units: C" 
_FillValue: 1.00000001504747e+30" 
valid_max: 307.259399414062" 
valid_min: 226.706176757812" 

Я использовал следующий код:

require(ncdf4) 
oceana = nc_open("oceandata.nc") 
LatIdx = which (oceana$dim$lat$vals < 0 & oceana$dim$lat$vals < -60) 
LonIdx = which (oceana$dim$lon$vals > -150 & oceana$dim$lon$vals < -90) 
myvariable <- ncvar_get(oceana, "bio1")[ LonIdx, LatIdx] 
lon <- ncvar_get(oceana, "lon") 
lat <- ncvar_get(oceana, "lat") 

Однако, когда я пытаюсь участок с помощью:

image(lon,lat, myvariable) 

Я получаю следующее сообщение об ошибке:

Error in image.default(lon, lat, myvariable) : 

ПОВЫШЕНИЯ «х» и «у» значения ожидается

Любые комментарии/предложения о том, где я буду неправильно здесь были бы оценены!

+1

Можете ли вы включить ссылку, чтобы загрузить файл netcdf, если он общедоступен? Это сделает ваш код повторяемым и, следовательно, будет легче диагностировать. – CephBirk

+0

Можете ли вы включить отображение 'lon' и' lat'? – CephBirk

ответ

0

image требует, чтобы параметры x и y имели увеличивающиеся значения. Я подозреваю, что ваши значения lat и lon уменьшаются (от -90 до -150 Вт). Если да, рассмотрите возможность переключения порядка.

+0

спасибо за ваш ответ, я попытался изменить синтаксис «LonIdx» на: – user3493038

+0

LonIdx = который (oceana $ dim $ lon $ vals> -90 & oceana $ dim $ lon $ vals <-150), но все же возвращает то же сообщение об ошибке. Это то, что вы имели в виду, переключая порядок или, скорее, переключая порядок самих «лон» и «лат»? Большое спасибо за помощь, Эми – user3493038