我正在创建一个主要是NaN值的NetCDF文件。有没有办法可以指定它进行压缩而不是占用大量磁盘空间?我正在使用大学大气研究公司C ++ NetCDF库。
谢谢!
答案 0 :(得分:0)
是的,但这取决于您使用的netCDF C ++ API,旧版(netcdf-cxx-4.2)C ++ API或更新的netcdf-cxx4-4.2 C ++ API。
使用netCDF-4 C ++库,记录here,只需使用NcVar :: setCompression方法。
使用传统的netCDF-3 C ++库,没有C ++方法可以直接执行您想要的操作。但是该库是作为netCDF C库上的薄层实现的,因此通过添加NcVar构造函数来通过调用C函数nc_def_var_deflate来设置压缩级别,它应该是相当简单的。当然,您必须确保构建旧的C ++库以使用以前安装的netCDF-4库。
答案 1 :(得分:0)
显然,最好在创建时生成netcdf4压缩文件,但我只是想补充说,如果已经编写了一个以非压缩方式生成文件的代码,就可以在现有文件上使用CDO转换为netcdf4约定和压缩同时:
cdo -f nc4c -z zip_9 copy in.nc out.nc