1

我正在创建一个主要包含 NaN 值的 NetCDF 文件。有没有办法可以指定它被压缩而不是占用大量磁盘空间?我正在使用 University Corporation for Atmospheric Research C++ NetCDF 库。

谢谢!

4

2 回答 2

0

是的,但这取决于您使用的 netCDF C++ API、旧版 (netcdf-cxx-4.2) C++ API 还是较新的 netcdf-cxx4-4.2 C++ API。

使用此处记录的 netCDF-4 C++ 库,只需使用 NcVar::setCompression 方法。

使用遗留的 netCDF-3 C++ 库,没有 C++ 方法可以直接执行您想要的操作。但是该库是作为 netCDF C 库之上的一个薄层实现的,因此通过添加一个通过调用 C 函数 nc_def_var_deflate 设置压缩级别的 NcVar 构造函数,它应该相当简单。当然,您必须确保构建您的旧 C++ 库以使用以前安装的 netCDF-4 库。

于 2013-04-15T20:42:07.373 回答
0

显然,最好在创建时生成 netcdf4 压缩文件,但我只想补充一点,如果已经编写了以未压缩方式生成文件的代码,则可以在现有文件上使用 CDO 转换为 netcdf4 约定和同时压缩:

cdo -f nc4c -z zip_9 copy in.nc out.nc
于 2018-01-24T10:19:04.677 回答