3

我想使用该raster包编写压缩的 netCDF4 文件。 ncdf4rgdal正确安装。

但是,以下内容无法返回 netCDF4 压缩文件:

library(raster)
r <- raster() <- runif(86400)
r[] <- <- runif(86400)
writeRaster(r, "test.nc", options=c("COMPRESS=DEFLATE", "FORMAT=NC4"))

实际上它只是返回一个标准的 netCDF 文件:

bash $ > cdo sinfo test.nc 
   File format : netCDF

不仅未压缩,甚至 netCDF4。

根据 GDAL 文档,这些选项应该可以工作(请参阅此处,在“创建选项”下)。根据光栅手册,在writeRaster

选项:字符。文件格式特定的 GDAL 选项。例如,在编写 geotiff 文件时,您可以使用:options=c("COMPRESS=NONE", "TFW=YES")

有什么问题?

4

1 回答 1

6

ncdf 文件不是通过 GDAL 编写的,因为 rgdal 包(至少是 Windows 上的二进制版本)不附带 ncdf 驱动程序。相反, writeRaster 使用 packagencdf或 (preferably) ncdf4,因此您必须使用 ncdf4 包提供的参数(在ncvar_def函数中)。也就是说,您将执行 eg, compression=7,这会自动将文件转换为 ncdf4 格式。但是,当前版本的raster将忽略这些论点。我已经在 R-Forge 的开发版本(版本 2.4-7)中修复了这个问题,这样你就可以做到:

writeRaster(r, "test.nc", datatype='INT2S', force_v4=TRUE, compression=7)   

force_v4参数被传递给nc_create)。

于 2015-06-03T22:01:23.060 回答