Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
42074db
Testing ideas for cube data/dtype/fill_value interaction (not passing…
pp-mo Mar 13, 2017
bb972e5
Add checks for realisation; fix dtype tests; use 'lazy' keyword inste…
pp-mo Mar 13, 2017
338f8d9
With test failures to investigate.
bjlittle Mar 13, 2017
0b80591
Fixed tests for new code from #2433.
pp-mo Mar 13, 2017
db1f7e1
Fix tests
bjlittle Mar 14, 2017
60344ca
Merge pull request #15 from pp-mo/data_dtype_fillvalue_tests
bjlittle Mar 14, 2017
8686da5
Pep8 fix.
pp-mo Mar 14, 2017
de1f83e
Fixed data_dtype_fillvalue test fails (other things now failing).
pp-mo Mar 14, 2017
6bf80a7
Fix bug in clearing _dask_array when assigning real data.
pp-mo Mar 14, 2017
e0b5609
Merge pull request #16 from pp-mo/pp_fix__datadtypefillvalue
bjlittle Mar 14, 2017
9b6636d
Keep fill value of cube when resetting the cube's data
lbdreyer Mar 14, 2017
385cdb9
Merge pull request #17 from lbdreyer/fix_fill_value
bjlittle Mar 14, 2017
cf2af09
Fix concatenate tests.
bjlittle Mar 14, 2017
445b4e6
Keep fill values during stats operations; cast cml fill values to flo…
lbdreyer Mar 14, 2017
2b77106
Keep fill values during regrid test.
lbdreyer Mar 14, 2017
479dad9
Merge pull request #19 from lbdreyer/fix_fill_val_analysis
bjlittle Mar 15, 2017
cc14ab7
Fix basic maths tests.
bjlittle Mar 15, 2017
b27917c
Merge pull request #18 from bjlittle/fix-test-concatenate
bjlittle Mar 15, 2017
0a80c37
Merge pull request #20 from bjlittle/fix-basic-maths
bjlittle Mar 15, 2017
f4fd7a0
Tidy cube.__init__ for dtype setting.
bjlittle Mar 15, 2017
2306a86
Review actions.
bjlittle Mar 15, 2017
d3b4212
Rename concatenate unit tests.
bjlittle Mar 15, 2017
c74dc10
Review actions.
bjlittle Mar 15, 2017
149a3be
pep8
bjlittle Mar 15, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 36 additions & 4 deletions lib/iris/_concatenate.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

import dask.array as da
import numpy as np
import numpy.ma as ma

import iris.coords
import iris.cube
Expand Down Expand Up @@ -329,6 +330,16 @@ def __init__(self, cube):

self.defn = cube.metadata
self.data_type = cube.dtype
# Concatenation will generate resultant cubes that contain lazy data.
# We need to deal with the special case of preserving the dtype of a
# candidate cube with concrete masked integral data by ensuring that
# the cube metadata has the correct target dtype.
kwargs = self.defn._asdict()
if kwargs['dtype'] is None and not cube.has_lazy_data() and \
isinstance(cube.data, ma.masked_array) and \
cube.data.dtype.kind == 'i':
kwargs['dtype'] = self.data_type
self.defn = iris.cube.CubeMetadata(**kwargs)

#
# Collate the dimension coordinate metadata.
Expand Down Expand Up @@ -402,6 +413,20 @@ def _coordinate_differences(self, other, attr):
', '.join(diff_names))
return result

def promote_defn(self):
"""
Update the metadata definition to match that of a similar but lazy
cube. A cube with lazy masked integral data must have its
:attr:`metadata.dtype` set appropriately.

"""
defn = self.defn
kwargs = defn._asdict()
if kwargs['dtype'] is None and self.data_type.kind == 'i':
kwargs['dtype'] = self.data_type
defn = iris.cube.CubeMetadata(**kwargs)
return defn
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I should have some unit tests for this really ...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, I'm not going to do that here as this might all change given conversations with @pp-mo

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created the following issue #2439 for this


def match(self, other, error_on_mismatch):
"""
Return whether this _CubeSignature equals another.
Expand Down Expand Up @@ -433,10 +458,17 @@ def match(self, other, error_on_mismatch):

# Check cube definitions.
if self.defn != other.defn:
# Note that the case of different phenomenon names is dealt with
# in :meth:`iris.cube.CubeList.concatenate_cube()`.
msg = 'Cube metadata differs for phenomenon: {}'
msgs.append(msg.format(self.defn.name()))
# Attempt to match metadata for the lazy masked integral
# dtype case.
promoted = self.promote_defn()
if promoted != other.promote_defn():
# Note that the case of different phenomenon names is dealt
# with in :meth:`iris.cube.CubeList.concatenate_cube()`.
msg = 'Cube metadata differs for phenomenon: {}'
msgs.append(msg.format(self.defn.name()))
else:
# Persist the promoted metadata dtype match case.
self.defn = promoted
# Check dim coordinates.
if self.dim_metadata != other.dim_metadata:
differences = self._coordinate_differences(other, 'dim_metadata')
Expand Down
2 changes: 2 additions & 0 deletions lib/iris/analysis/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,9 @@ def post_process(self, collapsed_cube, data_result, coords, **kwargs):
The collapsed cube with its aggregated data payload.

"""
cube_fill_value = collapsed_cube.fill_value
collapsed_cube.data = data_result
collapsed_cube.fill_value = cube_fill_value
return collapsed_cube

def aggregate_shape(self, **kwargs):
Expand Down
57 changes: 49 additions & 8 deletions lib/iris/cube.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ class CubeMetadata(collections.namedtuple('CubeMetadata',
'units',
'attributes',
'cell_methods',
'fill_value',
'dtype'])):
'dtype',
'fill_value'])):
"""
Represents the phenomenon metadata for a single :class:`Cube`.

Expand Down Expand Up @@ -751,10 +751,12 @@ def __init__(self, data, standard_name=None, long_name=None,
# Cell Measures
self._cell_measures_and_dims = []

# We need to set the dtype before the fill_value,
# as the fill_value is checked against self.dtype.
self._dtype = None
self.dtype = dtype
self.fill_value = fill_value

self._dtype = dtype

identities = set()
if dim_coords_and_dims:
dims = set()
Expand Down Expand Up @@ -798,7 +800,7 @@ def metadata(self):
"""
return CubeMetadata(self.standard_name, self.long_name, self.var_name,
self.units, self.attributes, self.cell_methods,
self.fill_value, self._dtype)
self._dtype, self.fill_value)

@metadata.setter
def metadata(self, value):
Expand All @@ -813,7 +815,10 @@ def metadata(self, value):
if missing_attrs:
raise TypeError('Invalid/incomplete metadata')
for name in CubeMetadata._fields:
setattr(self, name, getattr(value, name))
alias = name
if name in ['dtype', 'fill_value']:
alias = '_{}'.format(name)
setattr(self, alias, getattr(value, name))

def is_compatible(self, other, ignore=None):
"""
Expand Down Expand Up @@ -1632,7 +1637,38 @@ def dtype(self):

@dtype.setter
def dtype(self, dtype):
self._dtype = dtype
if dtype != self.dtype:
Copy link
Member

@pp-mo pp-mo Mar 13, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we not always allow cube.dtype = None, to reset the dtype to the underlying data ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see the case that you might want to unset the dtype for lazy data to None, which you can't at the moment given the current implementation ... I've no argument against that.

if dtype is not None:
if not self.has_lazy_data():
emsg = 'Cube does not have lazy data, cannot set dtype.'
raise ValueError(emsg)
dtype = np.dtype(dtype)
if dtype.kind != 'i':
emsg = ('Can only cast lazy data to integral dtype, '
'got {!r}.')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why?

Copy link
Member Author

@bjlittle bjlittle Mar 15, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to be strict here. We're only allowing the dtype to be of integral type to support the masked case. If we didn't do this, then users would abuse this to perform casting of their data.

If we do want to support casting of data, for the sake of it, then we should support that properly, say with cube.astype(...) or whatever. Hence, that's why we nail this dtype change down to only being applied to the lazy, integral (masked) data case. HTH.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a note: if you're visiting this bit, I've found that this test should also be allowing 'u' type data, i.e. unsigned ints. E.G. if dtype.kind not in ('i', 'u'): ?
If not it can wait -- I think it could do with a more general code search anyway, as I think we may have missed this possibility elsewhere in the code too.

Copy link
Member Author

@bjlittle bjlittle Mar 15, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm good point @pp-mo ... See this concatenate change and here also ... is there a generic numpy kind to catch all integral kinds instead of i and u ?

Copy link
Member Author

@bjlittle bjlittle Mar 15, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This numpy scalars link was handy ... also see Array-protocol type strings section of numpy docs ...

And this pattern seems to work:

>>> integral = [np.arange(10, dtype=np.int8),
... np.arange(10, dtype=np.int16),
... np.arange(10, dtype=np.int32),
... np.arange(10, dtype=np.int64),
... np.arange(10, dtype=np.uint8),
... np.arange(10, dtype=np.uint16),
... np.arange(10, dtype=np.uint32),
... np.arange(10, dtype=np.uint64)]
>>> for i in integral:
...     print(isinstance(i[0], np.integer))
... 
True
True
True
True
True
True
True
True
>>> f = np.arange(10, dtype=np.float)
>>> isinstance(f[0], np.integer)
False

Don't know if it's preferable over value.dtype.kind in ('i', 'u') though ...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're only allowing the dtype to be of integral type to support the masked case

It might be worth putting a comment in the code about this

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only mentioned the kind=u/i thing for completeness..
Let's not get hung up on this, please.
It will be much simpler to fix it later as I'm sure it needs doing in unrelated bits of the code.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do prefer np.integer.
It will also need to be fixed in iris/_concatenate.py e.g. https://github.com/SciTools/iris/pull/2433/files#diff-5fa4649482766af96ae11aead017e334R340

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pp-mo can you make an issue for this please

raise ValueError(emsg.format(dtype))
self._fill_value = None
self._dtype = dtype

@property
def fill_value(self):
return self._fill_value

@fill_value.setter
def fill_value(self, fill_value):
if fill_value is not None:
# Convert the given value to the dtype of the cube.
fill_value = np.asarray([fill_value])[0]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about

fill_value, = np.asarray([fill_value])

Copy link
Member Author

@bjlittle bjlittle Mar 15, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm tending to steer away from the fill_value, = np.asarray([fill_value]) pattern to unpack a scalar value, as it's quite subtle i.e. it's pretty easy for the eye to miss.

However, we could opt for [fill_value] = np.asarray([fill_value]) instead ... ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll make this change ...

target_dtype = self.dtype
if fill_value.dtype.kind == 'f' and target_dtype.kind == 'i':
# Perform rounding when converting floats to ints.
fill_value = np.rint(fill_value)
try:
[fill_value] = np.asarray([fill_value], dtype=target_dtype)
except OverflowError:
emsg = 'Fill value of {!r} invalid for cube {!r}.'
raise ValueError(emsg.format(fill_value, self.dtype))
self._fill_value = fill_value

@property
def ndim(self):
Expand Down Expand Up @@ -1731,12 +1767,17 @@ def data(self, value):
raise ValueError('Require cube data with shape %r, got '
'%r.' % (self.shape, value.shape))

# Set lazy or real data, and reset the other.
if is_lazy_data(value):
self._dask_array = value
self._numpy_array = None

else:
self._numpy_array = value
self._dask_array = None

# Cancel any 'realisation' datatype conversion, and fill value.
self.dtype = None
self.fill_value = None

def has_lazy_data(self):
return self._numpy_array is None
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/FF/air_temperature_1.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float32" dtype="float32" fill_value="-1073741824.0" standard_name="air_temperature" units="K">
<cube core-dtype="float32" dtype="float32" fill_value="-1.07374e+09" standard_name="air_temperature" units="K">
<attributes>
<attribute name="STASH" value="m01s03i236"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/FF/air_temperature_2.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float32" dtype="float32" fill_value="-1073741824.0" standard_name="air_temperature" units="K">
<cube core-dtype="float32" dtype="float32" fill_value="-1.07374e+09" standard_name="air_temperature" units="K">
<attributes>
<attribute name="STASH" value="m01s03i236"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/FF/soil_temperature_1.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float32" dtype="float32" fill_value="-1073741824.0" standard_name="soil_temperature" units="K">
<cube core-dtype="float32" dtype="float32" fill_value="-1.07374e+09" standard_name="soil_temperature" units="K">
<attributes>
<attribute name="STASH" value="m01s08i225"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/FF/surface_altitude_1.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float32" dtype="float32" fill_value="-1073741824.0" standard_name="surface_altitude" units="m">
<cube core-dtype="float32" dtype="float32" fill_value="-1.07374e+09" standard_name="surface_altitude" units="m">
<attributes>
<attribute name="STASH" value="m01s00i033"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/addition_coord_x.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1e+30" units="K">
<cube core-dtype="float64" dtype="float64" fill_value="-1e+30" units="K">
<coords>
<coord>
<dimCoord bounds="[[-28083.0, 6477.0]]" id="1d45e087" points="[6477]" shape="(1,)" standard_name="forecast_period" units="Unit('hours')" value_type="int32"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/addition_coord_y.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1e+30" units="K">
<cube core-dtype="float64" dtype="float64" fill_value="-1e+30" units="K">
<coords>
<coord>
<dimCoord bounds="[[-28083.0, 6477.0]]" id="1d45e087" points="[6477]" shape="(1,)" standard_name="forecast_period" units="Unit('hours')" value_type="int32"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/apply_ifunc_frompyfunc.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="object" dtype="float32" fill_value="-1e+30" units="kelvin^2">
<cube core-dtype="object" dtype="object" fill_value="-1e+30" units="kelvin^2">
<coords>
<coord>
<dimCoord bounds="[[-28083.0, 6477.0]]" id="1d45e087" points="[6477]" shape="(1,)" standard_name="forecast_period" units="Unit('hours')" value_type="int32"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/apply_ufunc_frompyfunc.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="object" dtype="float32" fill_value="-1e+30" units="unknown">
<cube core-dtype="object" dtype="object" fill_value="-1e+30" units="unknown">
<coords>
<coord>
<dimCoord bounds="[[-28083.0, 6477.0]]" id="1d45e087" points="[6477]" shape="(1,)" standard_name="forecast_period" units="Unit('hours')" value_type="int32"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1e+30" units="kelvin">
<cube core-dtype="float64" dtype="float64" fill_value="-1e+30" units="kelvin">
<coords>
<coord>
<dimCoord bounds="[[-28083.0, 6477.0]]" id="1d45e087" points="[6477]" shape="(1,)" standard_name="forecast_period" units="Unit('hours')" value_type="int32"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/exponentiate.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1e+30" units="kelvin^4">
<cube core-dtype="float64" dtype="float64" fill_value="-1.00000001505e+30" units="kelvin^4">
<coords>
<coord>
<dimCoord bounds="[[-28083.0, 6477.0]]" id="1d45e087" points="[6477]" shape="(1,)" standard_name="forecast_period" units="Unit('hours')" value_type="int32"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/gmean_latitude.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/hmean_latitude.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/max_latitude.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/max_latitude_longitude.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/mean_latitude.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/median_latitude.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/min_latitude.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
2 changes: 1 addition & 1 deletion lib/iris/tests/results/analysis/min_latitude_longitude.cml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<cubes xmlns="urn:x-iris:cubeml-0.2">
<cube core-dtype="float64" dtype="float32" fill_value="-1.07374e+09" standard_name="air_pressure_at_sea_level" units="Pa">
<cube core-dtype="float64" dtype="float64" fill_value="-1073741824.0" standard_name="air_pressure_at_sea_level" units="Pa">
<attributes>
<attribute name="STASH" value="m01s16i222"/>
<attribute name="source" value="Data from Met Office Unified Model"/>
Expand Down
Loading