将R栅格堆栈写入NetCDF

时间:2018-04-25 15:48:32

标签: r netcdf r-raster netcdf4 ncdf4

我有一个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,但它似乎只有一个月(我不确定是哪一个),而不是一年中的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 :(得分:1)

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

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

应该是

test <- brick('TavgM_1981.grd')

主要是将raster替换为brick。此外,三个点.../毫无意义。它可能是一个或两个点(或不必要的),package = "raster"参数毫无意义。