improver.metadata.utilities module

General IMPROVER metadata utilities

improver.metadata.utilities.create_coordinate_hash(cube)[source]

Generate a hash based on the input cube’s x and y coordinates. This acts as a unique identifier for the grid which can be used to allow two grids to be compared.

Parameters

cube (iris.cube.Cube) – The cube from which x and y coordinates will be used to generate a hash.

Returns

A hash created using the x and y coordinates of the input cube.

Return type

str

improver.metadata.utilities.create_new_diagnostic_cube(name, units, coordinate_template, mandatory_attributes, optional_attributes=None, data=None, dtype=<class 'numpy.float32'>)[source]

Creates a template for a new diagnostic cube with suitable metadata.

Parameters
  • name (str) – Standard or long name for output cube

  • units (str or cf_units.Unit) – Units for output cube

  • coordinate_template (iris.cube.Cube) – Cube from which to copy dimensional and auxiliary coordinates

  • mandatory_attributes (dict) – Dictionary containing values for the mandatory attributes “title”, “source” and “institution”. These are overridden by values in the optional_attributes dictionary, if specified.

  • optional_attributes (dict or None) – Dictionary of optional attribute names and values. If values for mandatory attributes are included in this dictionary they override the values of mandatory_attributes.

  • data (numpy.ndarray or None) – Data array. If not set, cube is filled with zeros using a lazy data object, as this will be overwritten later by the caller routine.

  • dtype (numpy.dtype) – Datatype for dummy cube data if “data” argument is None.

Returns

Cube with correct metadata to accommodate new diagnostic field

Return type

iris.cube.Cube

improver.metadata.utilities.generate_hash(data_in)[source]

Generate a hash from the data_in that can be used to uniquely identify equivalent data_in.

Parameters

data_in (any) – The data from which a hash is to be generated. This can be of any type that can be pretty printed.

Returns

A hexadecimal string which is a hash hexdigest of the data as a string.

Return type

str

improver.metadata.utilities.generate_mandatory_attributes(diagnostic_cubes)[source]

Function to generate mandatory attributes for new diagnostics that are generated using several different model diagnostics as input to the calculation. If all input diagnostics have the same attribute use this, otherwise set a default value.

Parameters

diagnostic_cubes (list) – List of diagnostic cubes used in calculating the new diagnostic

Returns

Dictionary of mandatory attribute “key”: “value” pairs.

Return type

dict