将 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"
参数没有意义。
我有一个 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"
参数没有意义。