2

我有一个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 文件,但它似乎只有一个月(我不确定是哪个月),而不是我使用 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)")
4

1 回答 1

2

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

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

应该

test <- brick('TavgM_1981.grd')

主要是替换rasterbrick. 另外,这三个点.../没有意义。它可能是一两个点(或不必要的),并且package = "raster"争论是没有意义的。

于 2018-04-25T17:56:33.060 回答