Skip to content

Commit 03d60a9

Browse files
authored
Travis test with both Iris latest-release and latest-master. (#231)
* Travis test with both Iris latest-release and latest-master. * Modify test CMLs for latest Iris (Iris3.0 changes). * Grib1 load fixes. * Fix loading since units=None default for Iris3 coords * Modify test to work with latest Iris (Iris3.0 changes). * Test against latest Iris only. * Review changes.
1 parent ad6c676 commit 03d60a9

File tree

8 files changed

+65
-42
lines changed

8 files changed

+65
-42
lines changed

.travis.yml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ dist: xenial
33

44
env:
55
matrix:
6-
- PYTHON_VERSION=36
7-
- PYTHON_VERSION=37
6+
- PYTHON_VERSION=36 LIMIT_TO_RELEASED_IRIS=false
7+
- PYTHON_VERSION=37 LIMIT_TO_RELEASED_IRIS=false
8+
# - PYTHON_VERSION=36 LIMIT_TO_RELEASED_IRIS=true
9+
# - PYTHON_VERSION=37 LIMIT_TO_RELEASED_IRIS=true
810

911
install:
1012
# Download iris-test-data
@@ -40,6 +42,22 @@ install:
4042
export ENV_NAME="iris-grib-dev";
4143
export ENV_FILE="${TRAVIS_BUILD_DIR}/requirements/ci/py${PYTHON_VERSION}.yml";
4244
45+
# Optionally download latest Iris from repo,
46+
# and replace the Iris dependency with Iris' underlying dependencies.
47+
- >
48+
if [[ "${LIMIT_TO_RELEASED_IRIS}" == false ]]; then
49+
IRIS_REF="https://github.com/SciTools/iris/archive/master.zip";
50+
export IRIS_LOCATION="${HOME}/iris";
51+
mkdir ${IRIS_LOCATION};
52+
wget -O ${IRIS_LOCATION}/iris.zip ${IRIS_REF};
53+
unzip -q ${IRIS_LOCATION}/iris.zip -d ${IRIS_LOCATION};
54+
55+
IRIS_ENV_FILE="${IRIS_LOCATION}/iris-master/requirements/ci/py${PYTHON_VERSION}.yml";
56+
sed -i "/- iris/d" ${ENV_FILE};
57+
echo "# IRIS DEPENDENCIES." >> ${ENV_FILE};
58+
sed -ne "/dependencies:/,$ p" ${IRIS_ENV_FILE} | sed "1d" >> ${ENV_FILE};
59+
fi;
60+
4361
# Create environment.
4462
- >
4563
conda env create --quiet --file=${ENV_FILE};
@@ -61,6 +79,13 @@ install:
6179
# --------------
6280
- echo "Configuring Iris";
6381

82+
# Optionally install latest Iris from downloaded source.
83+
- >
84+
if [[ "${LIMIT_TO_RELEASED_IRIS}" == false ]]; then
85+
cd ${IRIS_LOCATION}/iris-master;
86+
python setup.py --quiet install;
87+
fi;
88+
6489
# Locate Iris installation.
6590
- export IRIS_DIR=$(python -c "import iris; import os.path; print(os.path.dirname(iris.__file__))")
6691

iris_grib/_grib1_load_rules.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,9 @@ def add_bounded_time_coords(aux_coords_and_dims, grib):
238238
if \
239239
(grib.levelType == 'ml') and \
240240
(hasattr(grib, 'pv')):
241-
aux_coords_and_dims.append((AuxCoord(grib.level, standard_name='model_level_number', attributes={'positive': 'up'}), None))
241+
aux_coords_and_dims.append((AuxCoord(grib.level, standard_name='model_level_number', units=1, attributes={'positive': 'up'}), None))
242242
aux_coords_and_dims.append((DimCoord(grib.pv[grib.level], long_name='level_pressure', units='Pa'), None))
243-
aux_coords_and_dims.append((AuxCoord(grib.pv[grib.numberOfCoordinatesValues//2 + grib.level], long_name='sigma'), None))
243+
aux_coords_and_dims.append((AuxCoord(grib.pv[grib.numberOfCoordinatesValues//2 + grib.level], long_name='sigma', units=1), None))
244244
factories.append(Factory(HybridPressureFactory, [{'long_name': 'level_pressure'}, {'long_name': 'sigma'}, Reference('surface_pressure')]))
245245

246246
if grib._originatingCentre != 'unknown':

iris_grib/_load_convert.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1545,7 +1545,7 @@ def hybrid_factories(section, metadata):
15451545
# Create the model level number scalar coordinate.
15461546
scaledValue = section['scaledValueOfFirstFixedSurface']
15471547
coord = DimCoord(scaledValue, standard_name='model_level_number',
1548-
attributes=dict(positive='up'))
1548+
units=1, attributes=dict(positive='up'))
15491549
metadata['aux_coords_and_dims'].append((coord, None))
15501550

15511551
if typeOfFirstFixedSurface == 118:
@@ -1576,7 +1576,7 @@ def hybrid_factories(section, metadata):
15761576
metadata['aux_coords_and_dims'].append((coord, None))
15771577
# Create the sigma scalar coordinate.
15781578
offset = NV // 2 + scaledValue
1579-
coord = AuxCoord(pv[offset], long_name='sigma')
1579+
coord = AuxCoord(pv[offset], long_name='sigma', units=1)
15801580
metadata['aux_coords_and_dims'].append((coord, None))
15811581
# Create the associated factory reference.
15821582
factory = Factory(factory_class, factory_args)
@@ -2286,19 +2286,22 @@ def satellite_common(section, metadata):
22862286
if NB > 0:
22872287
# Create the satellite series coordinate.
22882288
satelliteSeries = section['satelliteSeries']
2289-
coord = AuxCoord(satelliteSeries, long_name='satellite_series')
2289+
coord = AuxCoord(satelliteSeries, long_name='satellite_series',
2290+
units=1)
22902291
# Add the satellite series coordinate to the metadata aux coords.
22912292
metadata['aux_coords_and_dims'].append((coord, None))
22922293

22932294
# Create the satellite number coordinate.
22942295
satelliteNumber = section['satelliteNumber']
2295-
coord = AuxCoord(satelliteNumber, long_name='satellite_number')
2296+
coord = AuxCoord(satelliteNumber, long_name='satellite_number',
2297+
units=1)
22962298
# Add the satellite number coordinate to the metadata aux coords.
22972299
metadata['aux_coords_and_dims'].append((coord, None))
22982300

22992301
# Create the satellite instrument type coordinate.
23002302
instrumentType = section['instrumentType']
2301-
coord = AuxCoord(instrumentType, long_name='instrument_type')
2303+
coord = AuxCoord(instrumentType, long_name='instrument_type',
2304+
units=1)
23022305
# Add the instrument type coordinate to the metadata aux coords.
23032306
metadata['aux_coords_and_dims'].append((coord, None))
23042307

iris_grib/tests/results/integration/load_convert/data_section/TestGDT30/lambert.cml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515
<dimCoord id="ecc4ad5a" long_name="height" points="[2.0]" shape="(1,)" units="Unit('m')" value_type="float64"/>
1616
</coord>
1717
<coord datadims="[1]">
18-
<dimCoord id="0f43c07d" points="[-2396487.0124, -2392487.0124, -2388487.0124,
18+
<dimCoord id="f429d179" points="[-2396487.0124, -2392487.0124, -2388487.0124,
1919
..., 2387512.9876, 2391512.9876, 2395512.9876]" shape="(1199,)" standard_name="projection_x_coordinate" units="Unit('m')" value_type="float64">
20-
<lambertConformal central_lat="60.0" central_lon="262.0" ellipsoid="GeogCS(6371229.0)" false_easting="0" false_northing="0" secant_latitudes="(60.0, 30.0)"/>
20+
<lambertConformal central_lat="60.0" central_lon="262.0" ellipsoid="GeogCS(6371229.0)" false_easting="0.0" false_northing="0.0" secant_latitudes="(60.0, 30.0)"/>
2121
</dimCoord>
2222
</coord>
2323
<coord datadims="[0]">
24-
<dimCoord id="1e5b5e41" points="[-3870311.24926, -3866311.24926, -3862311.24926,
24+
<dimCoord id="51f2bb31" points="[-3870311.24926, -3866311.24926, -3862311.24926,
2525
..., -686311.249256, -682311.249256,
2626
-678311.249256]" shape="(799,)" standard_name="projection_y_coordinate" units="Unit('m')" value_type="float64">
27-
<lambertConformal central_lat="60.0" central_lon="262.0" ellipsoid="GeogCS(6371229.0)" false_easting="0" false_northing="0" secant_latitudes="(60.0, 30.0)"/>
27+
<lambertConformal central_lat="60.0" central_lon="262.0" ellipsoid="GeogCS(6371229.0)" false_easting="0.0" false_northing="0.0" secant_latitudes="(60.0, 30.0)"/>
2828
</dimCoord>
2929
</coord>
3030
<coord>

iris_grib/tests/results/integration/load_convert/sample_file_loads/lambert_grib1.cml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@
1616
<auxCoord id="61bde96d" long_name="originating_centre" points="[ US National Weather Service, National Centres for Environmental Prediction]" shape="(1,)" units="Unit('no_unit')" value_type="string"/>
1717
</coord>
1818
<coord datadims="[1]">
19-
<dimCoord id="07a25078" points="[-2396487.0124, -2392487.0124, -2388487.0124,
19+
<dimCoord id="62845c7c" points="[-2396487.0124, -2392487.0124, -2388487.0124,
2020
..., 2387512.9876, 2391512.9876, 2395512.9876]" shape="(1199,)" standard_name="projection_x_coordinate" units="Unit('m')" value_type="float64">
21-
<lambertConformal central_lat="60" central_lon="-98.0" ellipsoid="GeogCS(6371229.0)" false_easting="0" false_northing="0" secant_latitudes="(60.0, 30.0)"/>
21+
<lambertConformal central_lat="60.0" central_lon="-98.0" ellipsoid="GeogCS(6371229.0)" false_easting="0.0" false_northing="0.0" secant_latitudes="(60.0, 30.0)"/>
2222
</dimCoord>
2323
</coord>
2424
<coord datadims="[0]">
25-
<dimCoord id="fef4faee" points="[-3870311.24926, -3866311.24926, -3862311.24926,
25+
<dimCoord id="c75f3634" points="[-3870311.24926, -3866311.24926, -3862311.24926,
2626
..., -686311.249256, -682311.249256,
2727
-678311.249256]" shape="(799,)" standard_name="projection_y_coordinate" units="Unit('m')" value_type="float64">
28-
<lambertConformal central_lat="60" central_lon="-98.0" ellipsoid="GeogCS(6371229.0)" false_easting="0" false_northing="0" secant_latitudes="(60.0, 30.0)"/>
28+
<lambertConformal central_lat="60.0" central_lon="-98.0" ellipsoid="GeogCS(6371229.0)" false_easting="0.0" false_northing="0.0" secant_latitudes="(60.0, 30.0)"/>
2929
</dimCoord>
3030
</coord>
3131
<coord>

iris_grib/tests/results/integration/load_convert/sample_file_loads/lambert_grib2.cml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515
<dimCoord id="ecc4ad5a" long_name="height" points="[2.0]" shape="(1,)" units="Unit('m')" value_type="float64"/>
1616
</coord>
1717
<coord datadims="[1]">
18-
<dimCoord id="0f43c07d" points="[-2396487.0124, -2392487.0124, -2388487.0124,
18+
<dimCoord id="f429d179" points="[-2396487.0124, -2392487.0124, -2388487.0124,
1919
..., 2387512.9876, 2391512.9876, 2395512.9876]" shape="(1199,)" standard_name="projection_x_coordinate" units="Unit('m')" value_type="float64">
20-
<lambertConformal central_lat="60.0" central_lon="262.0" ellipsoid="GeogCS(6371229.0)" false_easting="0" false_northing="0" secant_latitudes="(60.0, 30.0)"/>
20+
<lambertConformal central_lat="60.0" central_lon="262.0" ellipsoid="GeogCS(6371229.0)" false_easting="0.0" false_northing="0.0" secant_latitudes="(60.0, 30.0)"/>
2121
</dimCoord>
2222
</coord>
2323
<coord datadims="[0]">
24-
<dimCoord id="1e5b5e41" points="[-3870311.24926, -3866311.24926, -3862311.24926,
24+
<dimCoord id="51f2bb31" points="[-3870311.24926, -3866311.24926, -3862311.24926,
2525
..., -686311.249256, -682311.249256,
2626
-678311.249256]" shape="(799,)" standard_name="projection_y_coordinate" units="Unit('m')" value_type="float64">
27-
<lambertConformal central_lat="60.0" central_lon="262.0" ellipsoid="GeogCS(6371229.0)" false_easting="0" false_northing="0" secant_latitudes="(60.0, 30.0)"/>
27+
<lambertConformal central_lat="60.0" central_lon="262.0" ellipsoid="GeogCS(6371229.0)" false_easting="0.0" false_northing="0.0" secant_latitudes="(60.0, 30.0)"/>
2828
</dimCoord>
2929
</coord>
3030
<coord>

iris_grib/tests/unit/grib1_load_rules/test_grib1_convert.py

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@
99
# importing anything else
1010
import iris_grib.tests as tests
1111

12-
import cf_units
1312
import gribapi
1413
from unittest import mock
1514

16-
import iris
15+
from iris.aux_factory import HybridPressureFactory
1716
from iris.exceptions import TranslationError
1817
from iris.fileformats.rules import Reference
1918

@@ -109,27 +108,23 @@ def test_grib1_hybrid_height(self):
109108
results = grib1_convert(gw)
110109

111110
factory, = results[0]
112-
self.assertEqual(factory.factory_class,
113-
iris.aux_factory.HybridPressureFactory)
111+
self.assertEqual(factory.factory_class, HybridPressureFactory)
114112
delta, sigma, ref = factory.args
115113
self.assertEqual(delta, {'long_name': 'level_pressure'})
116114
self.assertEqual(sigma, {'long_name': 'sigma'})
117115
self.assertEqual(ref, Reference(name='surface_pressure'))
118116

119-
ml_ref = iris.coords.CoordDefn('model_level_number', None, None,
120-
cf_units.Unit('1'),
121-
{'positive': 'up'}, None, False)
122-
lp_ref = iris.coords.CoordDefn(None, 'level_pressure', None,
123-
cf_units.Unit('Pa'),
124-
{}, None, False)
125-
s_ref = iris.coords.CoordDefn(None, 'sigma', None,
126-
cf_units.Unit('1'),
127-
{}, None, False)
128-
129-
aux_coord_defns = [coord._as_defn() for coord, dim in results[8]]
130-
self.assertIn(ml_ref, aux_coord_defns)
131-
self.assertIn(lp_ref, aux_coord_defns)
132-
self.assertIn(s_ref, aux_coord_defns)
117+
coords_and_dims = results[8]
118+
coord, = [co for co, _ in coords_and_dims
119+
if co.name() == 'model_level_number']
120+
self.assertEqual(coord.units, '1')
121+
self.assertEqual(coord.attributes['positive'], 'up')
122+
coord, = [co for co, _ in coords_and_dims
123+
if co.name() == 'level_pressure']
124+
self.assertEqual(coord.units, 'Pa')
125+
coord, = [co for co, _ in coords_and_dims
126+
if co.name() == 'sigma']
127+
self.assertEqual(coord.units, '1')
133128

134129

135130
if __name__ == "__main__":

iris_grib/tests/unit/load_convert/test_satellite_common.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ def _check(self, factors=1, values=111):
4343

4444
# Check the result.
4545
expected = empty_metadata()
46-
coord = AuxCoord(series, long_name='satellite_series')
46+
coord = AuxCoord(series, long_name='satellite_series', units=1)
4747
expected['aux_coords_and_dims'].append((coord, None))
48-
coord = AuxCoord(number, long_name='satellite_number')
48+
coord = AuxCoord(number, long_name='satellite_number', units=1)
4949
expected['aux_coords_and_dims'].append((coord, None))
50-
coord = AuxCoord(instrument, long_name='instrument_type')
50+
coord = AuxCoord(instrument, long_name='instrument_type', units=1)
5151
expected['aux_coords_and_dims'].append((coord, None))
5252
standard_name = 'sensor_band_central_radiation_wavenumber'
5353
coord = AuxCoord(values / (10.0 ** factors),

0 commit comments

Comments
 (0)