# cfdm.core.CoordinateReference¶

class cfdm.core.CoordinateReference(coordinates=None, datum=None, coordinate_conversion=None, source=None, copy=True)[source]

Bases: cfdm.core.abstract.container.Container

A coordinate reference construct of the CF data model.

A coordinate reference construct relates the coordinate values of the coordinate system to locations in a planetary reference frame.

The domain of a field construct may contain various coordinate systems, each of which is constructed from a subset of the dimension and auxiliary coordinate constructs. For example, the domain of a four-dimensional field construct may contain horizontal (y-x), vertical (z), and temporal (t) coordinate systems. There may be more than one of each of these, if there is more than one coordinate construct applying to a particular spatiotemporal dimension (for example, there could be both latitude-longitude and y-x projection coordinate systems). In general, a coordinate system may be constructed implicitly from any subset of the coordinate constructs, yet a coordinate construct does not need to be explicitly or exclusively associated with any coordinate system.

A coordinate system of the field construct can be explicitly defined by a coordinate reference construct which relates the coordinate values of the coordinate system to locations in a planetary reference frame and consists of the following:

• References to the dimension coordinate and auxiliary coordinate constructs that define the coordinate system to which the coordinate reference construct applies. Note that the coordinate values are not relevant to the coordinate reference construct, only their properties.

• A definition of a datum specifying the zeroes of the dimension and auxiliary coordinate constructs which define the coordinate system. The datum may be implied by the metadata of the referenced dimension and auxiliary coordinate constructs, or explicitly provided.

• A coordinate conversion, which defines a formula for converting coordinate values taken from the dimension or auxiliary coordinate constructs to a different coordinate system. A coordinate reference construct relates the coordinate values of the field to locations in a planetary reference frame.

New in version (cfdm): 1.7.0

Initialisation

Parameters
coordinates: sequence of str, optional

Identify the related dimension and auxiliary coordinate constructs by their construct identifiers.

The coordinates may also be set after initialisation with the set_coordinates and set_coordinate methods.

Parameter example:

coordinates=['dimensioncoordinate2']

Parameter example:

coordinates=('dimensioncoordinate0', 'dimensioncoordinate1')

datum: Datum, optional

Set the datum component of the coordinate reference construct.

The datum may also be set after initialisation with the set_datum method.

coordinate_conversion: CoordinateConversion, optional

Set the coordinate conversion component of the coordinate reference construct.

The coordinate conversion may also be set after initialisation with the set_coordinate_conversion method.

source: optional

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

All other parameters, apart from copy, are ignored and their values are instead inferred from source by assuming that it has the CoordinateReference 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 CoordinateReference instance then cfdm.core.CoordinateReference(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¶

Attributes

 construct_type Return a description of the construct type.

## Coordinates¶

Methods

 del_coordinate Remove a reference to a coordinate construct. has_coordinate Whether a reference to a coordinate construct has been set. set_coordinate Set a reference to a coordinate construct. coordinates Return all references to coordinate constructs. clear_coordinates Remove all references to coordinate constructs. set_coordinates Set references to coordinate constructs.

## Datum¶

Methods

 del_datum Remove the datum component. get_datum Return the datum component. set_datum Set the datum component.

Attributes

 datum Return the datum component.

## Coordinate conversion¶

Methods

 del_coordinate_conversion Remove the coordinate conversion component. get_coordinate_conversion Get the coordinate conversion component. set_coordinate_conversion Set the coordinate conversion component.

Attributes

 coordinate_conversion Return the coordinate conversion component.

## Miscellaneous¶

Methods

 copy Return a deep copy.

## Special¶

Methods

 __deepcopy__ Called by the copy.deepcopy function.

## Docstring substitutions¶

Methods

 _docstring_special_substitutions Return the special docstring substitutions. _docstring_substitutions Returns the substitutions that apply to methods of the class. _docstring_package_depth Returns the class {{package}} substitutions package depth. _docstring_method_exclusions Returns method names excluded in the class substitutions.