Main Content

netcdf.defVarDeflate

定义 NetCDF 变量的压缩参数

语法

netcdf.defVarDeflate(ncid,varid,shuffle,deflate,deflateLevel)

说明

netcdf.defVarDeflate(ncid,varid,shuffle,deflate,deflateLevel) 设置 NetCDF 变量的压缩参数,此处的 NetCDF 变量是由 ncid 所指定位置中的 varid 确定的。

输入参数

ncid

netcdf.createnetcdf.open 返回的 NetCDF 文件标识符,或者由 netcdf.defGrp 返回的 NetCDF 组标识符。

varid

netcdf.defVar 返回的 NetCDF 变量标识符。

shuffle

布尔值。要打开 shuffle 过滤器,需将该参数设置为 true。shuffle 过滤器可以通过改变数据流中的字节顺序来辅助整型数据的压缩。

deflate

布尔值。要打开压缩,需将该参数设置为 true 并将 deflateLevel 参数设置为需要压缩的级别。

deflateLevel

指定压缩量的 09 之间的数值,其中 0 表示无压缩,9 表示最大压缩。

示例

本例创建一个维度为 [1800 3600],压缩级别为 5 的变量。这会形成 10×10 网格的分块布局。使用 netcdf.defVarChunking 定义您自己的分块,否则 netcdf.defVarDeflate 使用库默认值。

ncid = netcdf.create('myfile.nc','NETCDF4');
latdimid = netcdf.defDim(ncid,'lat',1800);
londimid = netcdf.defDim(ncid,'col',3600);
varid = netcdf.defVar(ncid,'earthgrid','double',[latdimid londimid]);
netcdf.defVarChunking(ncid,varid,'CHUNKED',[180 360]);
netcdf.defVarDeflate(ncid,varid,true,true,5);
netcdf.close(ncid);

参考

此函数对应于 netCDF 库 C API 中的 nc_def_var_deflate 函数。