Запись R растрового стека в NetCDF
У меня есть файл сетки 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 ответ
Решение
Как указывало dww, чтобы получить все слои, это
test <- raster('.../TavgM_1981.gri', package = "raster")
должно быть
test <- brick('TavgM_1981.grd')
Главное заменить raster
с brick
, Кроме того, три точки .../
не имеет смысла. Это может быть одна или две точки (или ненужные), и package = "raster"
аргумент не имеет смысла.