В вопросе, который вы связывали всю деталь от lat <- rev(lat)
до temp <- t(temp)
, был очень специфичен для этого конкретного набора данных OP и не имеет абсолютно никакого универсального значения.
temp.nc <- open.ncdf("~/Downloads/air.1999.nc")
temp.nc
[1] "file ~/Downloads/air.1999.nc has 4 dimensions:"
[1] "lon Size: 144"
[1] "lat Size: 73"
[1] "level Size: 12"
[1] "time Size: 365"
[1] "------------------------"
[1] "file ~/Downloads/air.1999.nc has 2 variables:"
[1] "short air[lon,lat,level,time] Longname:Air temperature Missval:32767"
[1] "short head[level,time] Longname:Missing Missval:NA"
Как вы можете видеть из этих информаций, в вашем случае, пропущенные значения представлены значениями 32767
поэтому следующий должна быть вашим первым шагом:
temp <- get.var.ncdf(temp.nc,"air")
temp[temp=="32767"] <- NA
цен добавляются в вашем случае у вас есть 4 размеры ваших данных, а не только 2, это долгота, широта, уровень (который я предполагаю, представляют собой высоту) и время.
temp.nc$dim$lon$vals -> lon
temp.nc$dim$lat$vals -> lat
temp.nc$dim$time$vals -> time
temp.nc$dim$level$vals -> lev
Если вы посмотрите на lat
вы видите, что значения в обратном направлении (что image
будет неодобрительно), так что давайте сторнировать их:
lat <- rev(lat)
temp <- temp[, ncol(temp):1, , ] #lat being our dimension number 2
Тогда долгота выражается от 0 до 360 который не является стандартным, он должен быть от -180 до 180, так что давайте менять что:
lon <- lon -180
Итак, теперь давайте построить данные на уровне 1000 (т.е. пихта й один) и первая дата:
temp11 <- temp[ , , 1, 1] #Level is the third dimension and time the fourth.
image(lon,lat,temp11)
А потом давайте наложите карту мира:
library(maptools)
data(wrld_simpl)
plot(wrld_simpl,add=TRUE)

делает этот пример помощи? [rworldmap RJournal paper] (http://journal.r-project.org/archive/2011-1/RJournal_2011-1_South.pdf) стр. 41: Использование 'rworldmap' для сопоставления данных netCDF в тандеме с' ncdf' – Andy
Это идет что-то вроде примера, но я скорее надеялся, что смогу увидеть рабочий пример кода, необходимого для построения данных, о которых я упоминал. Но спасибо за ссылку, изучите ее дальше. – fjd
Быстро посмотрев, что я буду делать, это использовать пакет «растр», который теперь лучше, чем мой, для выполнения растровых и netcdf-операций. Попробуйте это сообщение stackoverflow и ссылки из него: [http://stackoverflow.com/questions/19330710/why-do-i-get-different-results-in-plotting-a-netcdf-layer-with-imagex-yz- an] (http://stackoverflow.com/questions/19330710/why-do-i-get-different-results-in-plotting-a-netcdf-layer-with-imagex-yz-an) – Andy