Переменная NetCDF поставляется без crs и экстента

Я очень новичок в данных netCDF и пространственных данных в целом, извините, если мой вопрос не очень яркий.

Я использую R, и моя цель - извлечь растр из данных температуры, который может быть скачано здесь.

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

pathname <- ".../"

filename <- "tas_Amon_IPSL-CM6A-LR_ssp126_r1i1p1f1_gr_201501-210012"
file <- nc_open(paste0(pathname, filename, '.nc'))

# get longitude, latitude and time
lon <- ncvar_get(file,"lon")
lat <- ncvar_get(file,"lat")

# get time
time <- ncvar_get(file,"time")
nt <- dim(time)
tunits <- ncatt_get(file,"time","units")

# get the variable and convert as rasterBrick
thevar <- ncvar_get(file, 'tas')
thevar_b <- brick(thevar)

# take a slice of it and plot as image
thevar_slice <- thevar[,,1]
image(lon,lat,thevar_slicev, col=rev(brewer.pal(10,"RdBu")))

Проблема в том, что мне не удается извлечь crs и размер данных netCDF с помощью brick(). image() отображает данные правильно, но когда я использую proj4string для проецирования на +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0, то lon и lat меняются местами, а сетки растягиваются.

Спасибо за вашу помощь !


person Lurog    schedule 28.11.2019    source источник
comment
Привет, Люсиль. Добро пожаловать в SO. Я думаю, что для вопросов ГИС или дистанционного зондирования, особенно проблем с данными, это лучший форум.   -  person Majid    schedule 29.11.2019


Ответы (1)


Я думаю, с твоим файлом все в порядке.

r <- brick("tas_Amon_IPSL-CM6A-LR_ssp126_r1i1p1f1_gr_201501-210012.nc")
plot(r$X2015.01.16)

#r$X2015.01.16
class       : RasterLayer 
band        : 1  (of  1032  bands)
dimensions  : 143, 144, 20592  (nrow, ncol, ncell)
resolution  : 2.5, 1.267606  (x, y)
extent      : -1.25, 358.75, -90.6338, 90.6338  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : C:....
names       : X2015.01.16 
z-value     : 2015-01-16 
zvar        : tas 

Если вы используете NOAA POD: долгота точки записывается как положительное значение от 0 до 360 Вт, либо положительное значение от 0 до 180 Вт и отрицательное значение от 0 до 180 °. Легко конвертировать, но совершенно не вопрос R.

person Majid    schedule 29.11.2019
comment
спасибо большое, еще раз мне очень жаль, что это было так тривиально - person Lurog; 29.11.2019
comment
Не беспокойтесь, мы все так или иначе играли с сложной формой пространственных данных. Пожалуйста, примите этот ответ, если это был правильный ответ на ваш вопрос. - person Majid; 30.11.2019