From 0d1f6f2de0a04a521f07ba130a4a3f94b0d22d29 Mon Sep 17 00:00:00 2001 From: e-koch Date: Thu, 27 Aug 2020 17:17:55 -0700 Subject: [PATCH] Add unmasked_channels property to cache any(axis=(1,2)) calls on masks --- spectral_cube/base_class.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spectral_cube/base_class.py b/spectral_cube/base_class.py index 54ca89807..7b161b5cf 100644 --- a/spectral_cube/base_class.py +++ b/spectral_cube/base_class.py @@ -346,6 +346,13 @@ def spectral_axis(self): # spectral objects should be forced to implement this raise NotImplementedError + @property + @cached + def unmasked_channels(self): + if isinstance(self._data, da.Array): + return self._compute(da.any(self._mask_include, axis=(1, 2))) + + return self.mask.include().any(axis=(1, 2)) class MaskableArrayMixinClass(object): """