From 2900d46c08014427e525f5d6d4e7b0b03de2fbac Mon Sep 17 00:00:00 2001 From: David Hoese Date: Wed, 10 Oct 2018 11:36:02 -0500 Subject: [PATCH 1/2] Fix SCMI writer not writing fill values properly --- satpy/readers/clavrx.py | 8 ++++---- satpy/writers/scmi.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/satpy/readers/clavrx.py b/satpy/readers/clavrx.py index a35c26ca17..64337e6ff0 100644 --- a/satpy/readers/clavrx.py +++ b/satpy/readers/clavrx.py @@ -152,10 +152,10 @@ def get_dataset(self, dataset_id, ds_info): if dataset_id.resolution: data.attrs['resolution'] = dataset_id.resolution data.attrs = self.get_metadata(data, ds_info) - fill = data.attrs.get('_FillValue') - factor = data.attrs.get('scale_factor') - offset = data.attrs.get('add_offset') - valid_range = data.attrs.get('valid_range') + fill = data.attrs.pop('_FillValue') + factor = data.attrs.pop('scale_factor') + offset = data.attrs.pop('add_offset') + valid_range = data.attrs.pop('valid_range') if factor is not None and offset is not None: def scale_inplace(data): diff --git a/satpy/writers/scmi.py b/satpy/writers/scmi.py index 0783a25cb6..393582361d 100644 --- a/satpy/writers/scmi.py +++ b/satpy/writers/scmi.py @@ -590,7 +590,7 @@ def set_image_data(self, data, fill_value): LOG.info('writing image data') # note: autoscaling will be applied to make int16 assert(hasattr(data, 'mask')) - self.image_data[:, :] = np.require(data.filled(fill_value), dtype=np.float32) + self.image_data[:, :] = np.require(data, dtype=np.float32) def set_projection_attrs(self, area_id, proj4_info): """ From 232fd53933a63d58a3f6efd8a400aab6e2bec5eb Mon Sep 17 00:00:00 2001 From: David Hoese Date: Wed, 10 Oct 2018 21:03:44 -0500 Subject: [PATCH 2/2] Fix clavrx use of attrs.pop if they don't exist --- satpy/readers/clavrx.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/satpy/readers/clavrx.py b/satpy/readers/clavrx.py index 64337e6ff0..1177059814 100644 --- a/satpy/readers/clavrx.py +++ b/satpy/readers/clavrx.py @@ -152,10 +152,10 @@ def get_dataset(self, dataset_id, ds_info): if dataset_id.resolution: data.attrs['resolution'] = dataset_id.resolution data.attrs = self.get_metadata(data, ds_info) - fill = data.attrs.pop('_FillValue') - factor = data.attrs.pop('scale_factor') - offset = data.attrs.pop('add_offset') - valid_range = data.attrs.pop('valid_range') + fill = data.attrs.pop('_FillValue', None) + factor = data.attrs.pop('scale_factor', None) + offset = data.attrs.pop('add_offset', None) + valid_range = data.attrs.pop('valid_range', None) if factor is not None and offset is not None: def scale_inplace(data):