将 R 栅格堆栈写入 NetCDF

Writing R raster stack to NetCDF

我有一个 R grid file 包含 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 file,但它似乎只有一个月(我不确定是哪一个月),而不是我使用 panoply 检查它时一年中的 12 个月。

是否可以编写 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)")

正如 dww 指出的那样,要获得所有层,这个

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

应该是

test <- brick('TavgM_1981.grd')

主要是把raster换成brick。此外,三个点 .../ 没有意义。它可以是一个或两个点(或不必要的),并且 package = "raster" 参数没有意义。