Main Content

netcdf.defVarDeflate

定义 netCDF 变量的压缩参数

说明

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

示例

示例

全部折叠

此示例创建一个维度为 [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.createnetcdf.open 返回的 netCDF 文件标识符,或者由 netcdf.defGrp 返回的 netCDF 组标识符,指定为非负整数标量。

数据类型: double

NetCDF 变量标识符,指定为非负整数标量。变量标识符由 netcdf.defVar 函数返回。

数据类型: double

netCDF 变量的标识符,由 netcdf.defVar 返回,指定为非负整数标量。

数据类型: double

Shuffle 过滤器的状态,指定为数值或逻辑值 0 (false) 或 1 (true)。值 false 表示禁用 Shuffle 过滤器,true 表示启用它。shuffle 过滤器通过改变数据流中的字节顺序来辅助整型数据的压缩。如果 varid 引用类型为 NC_STRINGNC_VLEN 的变量,则无法将 shuffle 设置为 true

数据类型: logical

Deflate 过滤器的状态,指定为数值或逻辑值 0 (false) 或 1 (true)。将 deflate 指定为 true 以启用压缩,然后将 deflateLevel 指定为预期的正压缩级别。将 deflate 指定为 false 以禁用压缩。如果将 deflateLevel 指定为 0,则 deflate 的值会自动设置为 false

数据类型: logical

压缩级别,指定为 09 之间的整数标量值。值 0 表示没有压缩,等效于将 deflate 的值指定为 false。值 1 表示最小压缩,值 9 表示最大压缩。如果 deflatefalse,则忽略 deflateLevel 值。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

局限性

  • 如果 varid 引用类型为 NC_STRINGNC_VLEN 的变量,则无法将 deflate 设置为 true 和将 deflateLevel 设置为正值。

提示

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

版本历史记录

在 R2010b 中推出

全部展开