From 8b2ff1c7ac7ed673687c848f8fcdb531b496661d Mon Sep 17 00:00:00 2001 From: Martin Raspaud Date: Fri, 15 Mar 2019 11:18:26 +0100 Subject: [PATCH 1/2] Fix CTTH composite not to mark invalid data as cloud-free --- satpy/composites/cloud_products.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/satpy/composites/cloud_products.py b/satpy/composites/cloud_products.py index 60e13822b7..cd0e3e4607 100644 --- a/satpy/composites/cloud_products.py +++ b/satpy/composites/cloud_products.py @@ -71,7 +71,7 @@ def __call__(self, projectables, **info): dims=data.dims, coords=data.coords, attrs=data.attrs).where(mask_nan) # Set cloud-free pixels as black - chans.append(chan.where(mask_cloud_free, 0)) + chans.append(chan.where(mask_cloud_free, 0).where(status != status.attrs['_FillValue'])) res = super(CloudTopHeightCompositor, self).__call__(chans, **data.attrs) res.attrs['_FillValue'] = np.nan From 5348689622b323d8c151530b787a9ffd6668687a Mon Sep 17 00:00:00 2001 From: Martin Raspaud Date: Fri, 15 Mar 2019 12:56:27 +0100 Subject: [PATCH 2/2] Fix cloud product compositor tests --- satpy/tests/compositor_tests/__init__.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/satpy/tests/compositor_tests/__init__.py b/satpy/tests/compositor_tests/__init__.py index 682278c563..95697d5e0f 100644 --- a/satpy/tests/compositor_tests/__init__.py +++ b/satpy/tests/compositor_tests/__init__.py @@ -555,16 +555,18 @@ def test_call(self): palette = xr.DataArray(np.array([[0, 0, 0], [127, 127, 127], [255, 255, 255]]), dims=['value', 'band']) palette.attrs['palette_meanings'] = [2, 3, 4] - status = np.array([1, 0, 1]) - data = xr.DataArray(np.array([[4, 3, 2], [2, 3, 4]], dtype=np.uint8), dims=['y', 'x']) + status = xr.DataArray(np.array([[1, 0, 1], [1, 0, 65535]]), dims=['y', 'x'], + attrs={'_FillValue': 65535}) + data = xr.DataArray(np.array([[4, 3, 2], [2, 3, 4]], dtype=np.uint8), + dims=['y', 'x']) res = cmap_comp([data, palette, status]) - exp = np.array([[[0., 0.498039, 0.], - [0., 0.498039, 0.]], - [[0., 0.498039, 0.], - [0., 0.498039, 0.]], - [[0., 0.498039, 0.], - [0., 0.498039, 0.]]]) - self.assertTrue(np.allclose(res, exp)) + exp = np.array([[[0., 0.49803922, 0.], + [0., 0.49803922, np.nan]], + [[0., 0.49803922, 0.], + [0., 0.49803922, np.nan]], + [[0., 0.49803922, 0.], + [0., 0.49803922, np.nan]]]) + np.testing.assert_allclose(res, exp) class TestGenericCompositor(unittest.TestCase):