Запись R растрового стека в NetCDF - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть R файл сетки , содержащий месячные данные о температуре за 1981 год, которые я прочитал и попытался записать в NetCDF, используя следующий код:

library(raster)
library(ncdf4)
library(RNetCDF)

test <- raster('.../TavgM_1981.gri', package = "raster")
rstack = stack(test)

writeRaster(rstack, "rstack.nc", overwrite=TRUE, format="CDF",     varname="Temperature", varunit="degC", 
        longname="Temperature -- raster stack to netCDF", xname="X",   yname="Y",zname="nbands",
        zunit="numeric")

Это записывает файл NetCDF , но, похоже, у него есть только один месяц (я не уверен, какой) вместо 12 месяцев в году, когда я проверяю его с помощью panoply.

Можно ли записать файл NetCDF и сохранить как можно больше данных из файла R-grid? Особенно данные за каждый месяц!

РЕДАКТИРОВАТЬ:

Новый рабочий код:

test <- brick('/TavgM_1981.gri')
writeRaster(test, "rstack.nc", overwrite=TRUE, format="CDF",     varname="Temperature", varunit="degC", 
        longname="Temperature -- raster stack to netCDF", xname="Longitude",   yname="Latitude", zname="Time (Month)")

1 Ответ

0 голосов
/ 25 апреля 2018

Как указывал dww, чтобы получить все слои, это

test <- raster('.../TavgM_1981.gri', package = "raster")

должно быть

test <- brick('TavgM_1981.grd')

Главное заменить raster на brick. Кроме того, три точки .../ не имеют смысла. Это может быть одна или две точки (или ненужные), а аргумент package = "raster" не имеет смысла.

...