Skip to content

Commit

Permalink
Fix ambiguous nwcsaf test attribute
Browse files Browse the repository at this point in the history
  • Loading branch information
mraspaud committed Feb 18, 2022
1 parent 58ba842 commit 0f1a93c
Showing 1 changed file with 48 additions and 48 deletions.
96 changes: 48 additions & 48 deletions satpy/tests/reader_tests/test_nwcsaf_nc.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,49 +49,49 @@ def setUp(self, xr_open_dataset, unzip):
self.fake_dataset = xr_open_dataset.return_value
unzip.return_value = ''
self.filehandler_class = NcNWCSAF
self.scn = self.filehandler_class('filename', {}, {})
self.fh = self.filehandler_class('filename', {}, {})

def test_sensor_name(self):
"""Test that the correct sensor name is being set."""
self.scn.set_platform_and_sensor(platform_name='Metop-B')
self.assertEqual(self.scn.sensor, set(['avhrr-3']))
self.assertEqual(self.scn.sensor_names, set(['avhrr-3']))
self.fh.set_platform_and_sensor(platform_name='Metop-B')
self.assertEqual(self.fh.sensor, set(['avhrr-3']))
self.assertEqual(self.fh.sensor_names, set(['avhrr-3']))

self.scn.set_platform_and_sensor(platform_name='NOAA-20')
self.assertEqual(self.scn.sensor, set(['viirs']))
self.assertEqual(self.scn.sensor_names, set(['viirs']))
self.fh.set_platform_and_sensor(platform_name='NOAA-20')
self.assertEqual(self.fh.sensor, set(['viirs']))
self.assertEqual(self.fh.sensor_names, set(['viirs']))

self.scn.set_platform_and_sensor(platform_name='Himawari-8')
self.assertEqual(self.scn.sensor, set(['ahi']))
self.assertEqual(self.scn.sensor_names, set(['ahi']))
self.fh.set_platform_and_sensor(platform_name='Himawari-8')
self.assertEqual(self.fh.sensor, set(['ahi']))
self.assertEqual(self.fh.sensor_names, set(['ahi']))

self.scn.set_platform_and_sensor(sat_id='GOES16')
self.assertEqual(self.scn.sensor, set(['abi']))
self.assertEqual(self.scn.sensor_names, set(['abi']))
self.fh.set_platform_and_sensor(sat_id='GOES16')
self.assertEqual(self.fh.sensor, set(['abi']))
self.assertEqual(self.fh.sensor_names, set(['abi']))

self.scn.set_platform_and_sensor(platform_name='GOES-17')
self.assertEqual(self.scn.sensor, set(['abi']))
self.assertEqual(self.scn.sensor_names, set(['abi']))
self.fh.set_platform_and_sensor(platform_name='GOES-17')
self.assertEqual(self.fh.sensor, set(['abi']))
self.assertEqual(self.fh.sensor_names, set(['abi']))

self.scn.set_platform_and_sensor(sat_id='MSG4')
self.assertEqual(self.scn.sensor, set(['seviri']))
self.fh.set_platform_and_sensor(sat_id='MSG4')
self.assertEqual(self.fh.sensor, set(['seviri']))

self.scn.set_platform_and_sensor(platform_name='Meteosat-11')
self.assertEqual(self.scn.sensor, set(['seviri']))
self.assertEqual(self.scn.sensor_names, set(['seviri']))
self.fh.set_platform_and_sensor(platform_name='Meteosat-11')
self.assertEqual(self.fh.sensor, set(['seviri']))
self.assertEqual(self.fh.sensor_names, set(['seviri']))

def test_get_area_def(self):
"""Test that get_area_def() returns proper area."""
dsid = {'name': 'foo'}
self.scn.nc[dsid['name']] = xr.DataArray(np.zeros((5, 10)))
self.fh.nc[dsid['name']] = xr.DataArray(np.zeros((5, 10)))

# a, b and h in kilometers
self.scn.nc.attrs = PROJ_KM
_check_area_def(self.scn.get_area_def(dsid))
self.fh.nc.attrs = PROJ_KM
_check_area_def(self.fh.get_area_def(dsid))

# a, b and h in meters
self.scn.nc.attrs = PROJ
_check_area_def(self.scn.get_area_def(dsid))
self.fh.nc.attrs = PROJ
_check_area_def(self.fh.get_area_def(dsid))

def test_scale_dataset_attr_removal(self):
"""Test the scaling of the dataset and removal of obsolete attributes."""
Expand All @@ -101,7 +101,7 @@ def test_scale_dataset_attr_removal(self):
attrs = {'scale_factor': np.array(10),
'add_offset': np.array(20)}
var = xr.DataArray([1, 2, 3], attrs=attrs)
var = self.scn.scale_dataset(var, 'dummy')
var = self.fh.scale_dataset(var, 'dummy')
np.testing.assert_allclose(var, [30, 40, 50])
self.assertNotIn('scale_factor', var.attrs)
self.assertNotIn('add_offset', var.attrs)
Expand All @@ -114,7 +114,7 @@ def test_scale_dataset_floating(self):
'add_offset': np.array(2.5),
'_FillValue': 1}
var = xr.DataArray([1, 2, 3], attrs=attrs)
var = self.scn.scale_dataset(var, 'dummy')
var = self.fh.scale_dataset(var, 'dummy')
np.testing.assert_allclose(var, [np.nan, 5.5, 7])
self.assertNotIn('scale_factor', var.attrs)
self.assertNotIn('add_offset', var.attrs)
Expand All @@ -123,7 +123,7 @@ def test_scale_dataset_floating(self):
'add_offset': np.array(2.5),
'valid_min': 1.1}
var = xr.DataArray([1, 2, 3], attrs=attrs)
var = self.scn.scale_dataset(var, 'dummy')
var = self.fh.scale_dataset(var, 'dummy')
np.testing.assert_allclose(var, [np.nan, 5.5, 7])
self.assertNotIn('scale_factor', var.attrs)
self.assertNotIn('add_offset', var.attrs)
Expand All @@ -132,7 +132,7 @@ def test_scale_dataset_floating(self):
'add_offset': np.array(2.5),
'valid_max': 2.1}
var = xr.DataArray([1, 2, 3], attrs=attrs)
var = self.scn.scale_dataset(var, 'dummy')
var = self.fh.scale_dataset(var, 'dummy')
np.testing.assert_allclose(var, [4, 5.5, np.nan])
self.assertNotIn('scale_factor', var.attrs)
self.assertNotIn('add_offset', var.attrs)
Expand All @@ -141,7 +141,7 @@ def test_scale_dataset_floating(self):
'add_offset': np.array(2.5),
'valid_range': (1.1, 2.1)}
var = xr.DataArray([1, 2, 3], attrs=attrs)
var = self.scn.scale_dataset(var, 'dummy')
var = self.fh.scale_dataset(var, 'dummy')
np.testing.assert_allclose(var, [np.nan, 5.5, np.nan])
self.assertNotIn('scale_factor', var.attrs)
self.assertNotIn('add_offset', var.attrs)
Expand All @@ -151,7 +151,7 @@ def test_scale_dataset_floating(self):
'add_offset': np.array(-2000.),
'valid_range': (0., 27000.)}
var = xr.DataArray([1, 2, 3], attrs=attrs)
var = self.scn.scale_dataset(var, 'dummy')
var = self.fh.scale_dataset(var, 'dummy')
np.testing.assert_allclose(var, [-1999., -1998., -1997.])
self.assertNotIn('scale_factor', var.attrs)
self.assertNotIn('add_offset', var.attrs)
Expand All @@ -165,12 +165,12 @@ def test_get_dataset_scales_and_offsets(self):
offset = 8
the_array = xr.DataArray(np.ones((5, 10)), attrs={"scale_factor": np.array(scale, dtype=float),
"add_offset": np.array(offset, dtype=float)})
self.scn.nc[dsid['name']] = the_array
self.fh.nc[dsid['name']] = the_array

info = dict(name="cpp_cot",
file_type="nc_nwcsaf_cpp")

res = self.scn.get_dataset(dsid, info)
res = self.fh.get_dataset(dsid, info)
np.testing.assert_allclose(res, the_array * scale + offset)

def test_get_dataset_scales_and_offsets_palette_meanings_using_other_dataset(self):
Expand All @@ -180,7 +180,7 @@ def test_get_dataset_scales_and_offsets_palette_meanings_using_other_dataset(sel
offset = 8
array = xr.DataArray(np.ones((5, 3)), attrs={"palette_meanings": "1 2 3 4",
"fill_value_color": (0, 0, 0)})
self.scn.nc[dsid['name']] = array
self.fh.nc[dsid['name']] = array

so_array = xr.DataArray(np.ones((10, 10)),
attrs={"scale_factor": np.array(scale, dtype=float),
Expand All @@ -190,9 +190,9 @@ def test_get_dataset_scales_and_offsets_palette_meanings_using_other_dataset(sel
info = dict(name="cpp_cot",
file_type="nc_nwcsaf_cpp",
scale_offset_dataset="scaleoffset")
self.scn.nc["scaleoffset"] = so_array
self.fh.nc["scaleoffset"] = so_array

res = self.scn.get_dataset(dsid, info)
res = self.fh.get_dataset(dsid, info)
np.testing.assert_allclose(res.attrs["palette_meanings"], np.arange(5) * scale + offset)

def test_get_dataset_raises_when_dataset_missing(self):
Expand All @@ -201,7 +201,7 @@ def test_get_dataset_raises_when_dataset_missing(self):
info = dict(name="cpp_cot",
file_type="nc_nwcsaf_cpp")
with pytest.raises(KeyError):
self.scn.get_dataset(dsid, info)
self.fh.get_dataset(dsid, info)

def test_get_dataset_uses_file_key_if_present(self):
"""Test that get_dataset() uses a file_key if present."""
Expand All @@ -212,18 +212,18 @@ def test_get_dataset_uses_file_key_if_present(self):
the_array = xr.DataArray(np.ones((5, 10)), attrs={"scale_factor": np.array(scale, dtype=float),
"add_offset": np.array(offset, dtype=float)})
file_key = "cmic_cot"
self.scn.nc[file_key] = the_array
self.fh.nc[file_key] = the_array

info_cpp = dict(name="cpp_cot",
file_key=file_key,
file_type="nc_nwcsaf_cpp")

res_cpp = self.scn.get_dataset(dsid_cpp, info_cpp)
res_cpp = self.fh.get_dataset(dsid_cpp, info_cpp)

info_cmic = dict(name="cmic_cot",
file_type="nc_nwcsaf_cpp")

res_cmic = self.scn.get_dataset(dsid_cmic, info_cmic)
res_cmic = self.fh.get_dataset(dsid_cmic, info_cmic)
np.testing.assert_allclose(res_cpp, res_cmic)


Expand All @@ -242,7 +242,7 @@ def setUp(self, xr_open_dataset, unzip):
unzip.return_value = ''
self.filehandler_class = NcNWCSAF
self.file_key_prefix = "cmic_"
self.scn = self.filehandler_class('filename', {}, {"file_key_prefix": self.file_key_prefix})
self.fh = self.filehandler_class('filename', {}, {"file_key_prefix": self.file_key_prefix})

def test_get_dataset_uses_file_key_prefix(self):
"""Test that get_dataset() uses a file_key_prefix."""
Expand All @@ -253,18 +253,18 @@ def test_get_dataset_uses_file_key_prefix(self):
the_array = xr.DataArray(np.ones((5, 10)), attrs={"scale_factor": np.array(scale, dtype=float),
"add_offset": np.array(offset, dtype=float)})
file_key = "cot"
self.scn.nc[self.file_key_prefix + file_key] = the_array
self.fh.nc[self.file_key_prefix + file_key] = the_array

info_cpp = dict(name="cpp_cot",
file_key=file_key,
file_type="nc_nwcsaf_cpp")

res_cpp = self.scn.get_dataset(dsid_cpp, info_cpp)
res_cpp = self.fh.get_dataset(dsid_cpp, info_cpp)

info_cmic = dict(name="cmic_cot",
file_type="nc_nwcsaf_cpp")

res_cmic = self.scn.get_dataset(dsid_cmic, info_cmic)
res_cmic = self.fh.get_dataset(dsid_cmic, info_cmic)
np.testing.assert_allclose(res_cpp, res_cmic)

def test_get_dataset_scales_and_offsets_palette_meanings_using_other_dataset(self):
Expand All @@ -274,7 +274,7 @@ def test_get_dataset_scales_and_offsets_palette_meanings_using_other_dataset(sel
offset = 8
array = xr.DataArray(np.ones((5, 3)), attrs={"palette_meanings": "1 2 3 4",
"fill_value_color": (0, 0, 0)})
self.scn.nc[dsid['name']] = array
self.fh.nc[dsid['name']] = array

so_array = xr.DataArray(np.ones((10, 10)),
attrs={"scale_factor": np.array(scale, dtype=float),
Expand All @@ -284,9 +284,9 @@ def test_get_dataset_scales_and_offsets_palette_meanings_using_other_dataset(sel
info = dict(name="cpp_cot_pal",
file_type="nc_nwcsaf_cpp",
scale_offset_dataset="scaleoffset")
self.scn.nc[self.file_key_prefix + "scaleoffset"] = so_array
self.fh.nc[self.file_key_prefix + "scaleoffset"] = so_array

res = self.scn.get_dataset(dsid, info)
res = self.fh.get_dataset(dsid, info)
np.testing.assert_allclose(res.attrs["palette_meanings"], np.arange(5) * scale + offset)


Expand Down

0 comments on commit 0f1a93c

Please sign in to comment.