我想使用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)
可能出现什么问题?
答案 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
)。