diff --git a/satpy/readers/virr_l1b.py b/satpy/readers/virr_l1b.py index a572d245b8..1bb84b19eb 100644 --- a/satpy/readers/virr_l1b.py +++ b/satpy/readers/virr_l1b.py @@ -92,10 +92,12 @@ def get_dataset(self, dataset_id, ds_info): file_key = file_key.replace('Data/', '') data = self[file_key] band_index = ds_info.get('band_index') + valid_range = data.attrs.pop('valid_range', None) if band_index is not None: data = data[band_index] - data = data.where((data >= self[file_key + '/attr/valid_range'][0]) & - (data <= self[file_key + '/attr/valid_range'][1])) + if valid_range: + data = data.where((data >= valid_range[0]) & + (data <= valid_range[1])) if 'Emissive' in file_key: slope = self._correct_slope(self[self.l1b_prefix + 'Emissive_Radiance_Scales']. data[:, band_index][:, np.newaxis]) @@ -121,8 +123,10 @@ def get_dataset(self, dataset_id, ds_info): else: slope = self._correct_slope(self[file_key + '/attr/Slope']) intercept = self[file_key + '/attr/Intercept'] - data = data.where((data >= self[file_key + '/attr/valid_range'][0]) & - (data <= self[file_key + '/attr/valid_range'][1])) + + if valid_range: + data = data.where((data >= valid_range[0]) & + (data <= valid_range[1])) data = data * slope + intercept new_dims = {old: new for old, new in zip(data.dims, ('y', 'x'))} data = data.rename(new_dims) diff --git a/satpy/tests/reader_tests/test_virr_l1b.py b/satpy/tests/reader_tests/test_virr_l1b.py index 49f829e0b7..bce898bb59 100644 --- a/satpy/tests/reader_tests/test_virr_l1b.py +++ b/satpy/tests/reader_tests/test_virr_l1b.py @@ -160,6 +160,7 @@ def _fy3_helper(self, platform_name, reader, Emissive_units): self.assertEqual(('longitude', 'latitude'), attributes['coordinates']) self.assertEqual(band_values[dataset['name']], round(float(np.array(ds[ds.shape[0] // 2][ds.shape[1] // 2])), 6)) + assert "valid_range" not in ds.attrs def test_fy3b_file(self): """Test that FY3B files are recognized."""