使用栅格编写压缩的netCDF4文件

时间:2015-06-03 12:04:29

标签: r raster gdal rgdal

我想使用raster包编写压缩的netCDF4文件。 <{1}}和ncdf4已正确安装。

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

rgdal

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

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

不仅没有压缩,甚至没有netCDF4。

根据GDAL文档,这些选项应该有效(参见here,&#34;创建选项&#34;)。 根据光栅手册,在bash $ > cdo sinfo test.nc File format : netCDF

  

选项:角色。文件格式特定的GDAL选项。例如,什么时候   写一个你可以使用的geotiff文件:options = c(&#34; COMPRESS = NONE&#34;,   &#34; TFW = YES&#34)

可能出现什么问题?

1 个答案:

答案 0 :(得分:5)

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

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

force_v4参数传递给nc_create)。