class cf.Quantization(parameters=None, source=None, copy=True)[source]

A quantization variable.

A quantization variable describes a quantization algorithm via a collection of parameters.

The algorithm parameter names a specific quantization algorithm via one of the keys in the algorithm_parameters dictionary.

The implementation parameter contains unstandardised text that concisely conveys the algorithm provenance including the name of the library or client that performed the quantization, the software version, and any other information required to disambiguate the source of the algorithm employed. The text must take the form software-name version version-string [(optional-information)].

The retained precision of the algorithm is defined with either the quantization_nsb or quantization_nsd parameter.

For instance, the following parameters describe quantization via the BitRound algorithm, retaining 6 significant bits, and implemented by libnetcdf:

>>> q = cf.Quantization(
...         parameters={'algorithm': 'bitround',
...                     'quantization_nsb': 6,
...                     'implementation': 'libnetcdf version 4.9.4'}
... )
>>> q.parameters()
{'algorithm': 'bitround',
 'quantization_nsb': 6,
 'implementation': 'libnetcdf version 4.9.4'}

See CF section 8.4. “Lossy Compression via Quantization”.

NetCDF interface

The netCDF variable name may be accessed with the nc_set_variable, nc_get_variable, nc_del_variable, and nc_has_variable methods.

The netCDF variable group structure may be accessed with the nc_set_variable, nc_get_variable, nc_variable_groups, nc_clear_variable_groups, and nc_set_variable_groups methods.

The netCDF group attributes may be accessed with the nc_group_attributes, nc_clear_group_attributes, nc_set_group_attribute, and nc_set_group_attributes methods.

Added in version 3.18.0.

Initialisation

Parameters:
parameters: dict, optional

Set parameters. The dictionary keys are parameter names, with corresponding values.

Parameters may also be set after initialisation with the set_parameters and set_parameter methods.

Parameter example:

parameters={'earth_radius': 6371007.}

source: optional

Convert source, which can be any type of object, to a Quantization instance.

All other parameters, apart from copy, are ignored and their values are instead inferred from source by assuming that it has the Quantization API. Any parameters that can not be retrieved from source in this way are assumed to have their default value.

Note that if x is also a Quantization instance then cf.Quantization(source=x) is equivalent to x.copy().

copy: bool, optional

If True (the default) then deep copy the input parameters prior to initialisation. By default the parameters are not deep copied.

Inspection

Methods

Parameter terms

Methods

del_parameter

Delete a parameter.

get_parameter

Get a parameter value.

has_parameter

Whether a parameter has been set.

set_parameter

Set a parameter-valued term.

parameters

Return all parameters.

set_parameters

Set parameters.

clear_parameters

Remove all parameters.

Miscellaneous

Methods

NetCDF

Methods

nc_del_variable

Remove the netCDF variable name.

nc_get_variable

Return the netCDF variable name.

nc_has_variable

Whether the netCDF variable name has been set.

nc_set_variable

Set the netCDF variable name.

nc_group_attributes

Returns properties to write as netCDF group attributes.

nc_clear_group_attributes

Removes properties to write as netCDF group attributes.

nc_set_group_attribute

Select a property to be written as a netCDF group attribute.

nc_set_group_attributes

Set properties to be written as netCDF group attributes.

Groups

Methods

Special

Methods

Docstring substitutions

Methods