/
auxiliarycoordinate.py
133 lines (103 loc) · 3.85 KB
/
auxiliarycoordinate.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
from . import core, mixin
class AuxiliaryCoordinate(
mixin.NetCDFVariable,
mixin.NetCDFNodeCoordinateVariable,
mixin.Coordinate,
mixin.Files,
core.AuxiliaryCoordinate,
):
"""An auxiliary coordinate construct of the CF data model.
An auxiliary coordinate construct provides information which
locate the cells of the domain and which depend on a subset of the
domain axis constructs. Auxiliary coordinate constructs have to be
used, instead of dimension coordinate constructs, when a single
domain axis requires more then one set of coordinate values, when
coordinate values are not numeric, strictly monotonic, or contain
missing values, or when they vary along more than one domain axis
construct simultaneously. CF-netCDF auxiliary coordinate variables
and non-numeric scalar coordinate variables correspond to
auxiliary coordinate constructs.
The auxiliary coordinate construct consists of a data array of the
coordinate values which spans a subset of the domain axis
constructs, an optional array of cell bounds recording the extents
of each cell (stored in a `Bounds` object), and properties to
describe the coordinates. An array of cell bounds spans the same
domain axes as its coordinate array, with the addition of an extra
dimension whose size is that of the number of vertices of each
cell. This extra dimension does not correspond to a domain axis
construct since it does not relate to an independent axis of the
domain. Note that, for climatological time axes, the bounds are
interpreted in a special way indicated by the cell method
constructs.
**NetCDF interface**
{{netCDF variable}}
{{netCDF UGRID node coordinate}}
.. versionadded:: (cfdm) 1.7.0
"""
def __init__(
self,
properties=None,
data=None,
bounds=None,
geometry=None,
interior_ring=None,
source=None,
copy=True,
_use_data=True,
):
"""**Initialisation**
:Parameters:
{{init properties: `dict`, optional}}
*Parameter example:*
``properties={'standard_name': 'latitude'}``
{{init data: data_like, optional}}
{{init bounds: `Bounds`, optional}}
{{init geometry: `str`, optional}}
{{init interior_ring: `InteriorRing`, optional}}
{{init source: optional}}
{{init copy: `bool`, optional}}
"""
super().__init__(
properties=properties,
data=data,
bounds=bounds,
geometry=geometry,
interior_ring=interior_ring,
source=source,
copy=copy,
_use_data=_use_data,
)
self._initialise_netcdf(source)
self._initialise_original_filenames(source)
def dump(
self,
display=True,
_omit_properties=None,
_key=None,
_level=0,
_title=None,
_axes=None,
_axis_names=None,
):
"""A full description of the auxiliary coordinate construct.
Returns a description of all properties, including those of
components, and provides selected values of all data arrays.
.. versionadded:: (cfdm) 1.7.0
:Parameters:
display: `bool`, optional
If False then return the description as a string. By
default the description is printed.
:Returns:
{{returns dump}}
"""
if _title is None:
_title = "Auxiliary coordinate: " + self.identity(default="")
return super().dump(
display=display,
_key=_key,
_level=_level,
_title=_title,
_omit_properties=_omit_properties,
_axes=_axes,
_axis_names=_axis_names,
)