From 040b9e6f72215329dd54fbdf3ded27e4d77cdbc9 Mon Sep 17 00:00:00 2001 From: Paddy Roddy Date: Fri, 29 Sep 2023 11:37:49 +0100 Subject: [PATCH 1/4] Simplify decomposition logic --- src/sleplet/meshes/_mesh_slepian_decomposition.py | 15 ++++++++------- src/sleplet/slepian/_slepian_decomposition.py | 15 ++++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/sleplet/meshes/_mesh_slepian_decomposition.py b/src/sleplet/meshes/_mesh_slepian_decomposition.py index 0bace0232..9ec15a14d 100644 --- a/src/sleplet/meshes/_mesh_slepian_decomposition.py +++ b/src/sleplet/meshes/_mesh_slepian_decomposition.py @@ -92,15 +92,16 @@ def _harmonic_sum(self, rank: int) -> float: def _detect_method(self) -> None: """Detects what method is used to perform the decomposition.""" - if isinstance(self.u_i, np.ndarray): + if self.u_i is not None: _logger.info("harmonic sum method selected") self.method = "harmonic_sum" - elif isinstance(self.u, np.ndarray) and not self.mask: - _logger.info("integrating the whole mesh method selected") - self.method = "integrate_mesh" - elif isinstance(self.u, np.ndarray): - _logger.info("integrating a region on the mesh method selected") - self.method = "integrate_region" + elif self.u is not None: + if self.mask is None: + _logger.info("integrating the whole mesh method selected") + self.method = "integrate_mesh" + else: + _logger.info("integrating a region on the mesh method selected") + self.method = "integrate_region" else: raise RuntimeError( "need to pass one off harmonic coefficients, real pixels " diff --git a/src/sleplet/slepian/_slepian_decomposition.py b/src/sleplet/slepian/_slepian_decomposition.py index 518382f11..223a8e72c 100644 --- a/src/sleplet/slepian/_slepian_decomposition.py +++ b/src/sleplet/slepian/_slepian_decomposition.py @@ -98,15 +98,16 @@ def _harmonic_sum(self, rank: int) -> complex: def _detect_method(self) -> None: """Detects what method is used to perform the decomposition.""" - if isinstance(self.flm, np.ndarray): + if self.flm is not None: _logger.info("harmonic sum method selected") self.method = "harmonic_sum" - elif isinstance(self.f, np.ndarray) and not isinstance(self.mask, np.ndarray): - _logger.info("integrating the whole sphere method selected") - self.method = "integrate_sphere" - elif isinstance(self.f, np.ndarray): - _logger.info("integrating a region on the sphere method selected") - self.method = "integrate_region" + elif self.f is not None: + if self.mask is None: + _logger.info("integrating the whole sphere method selected") + self.method = "integrate_sphere" + else: + _logger.info("integrating a region on the sphere method selected") + self.method = "integrate_region" else: raise RuntimeError( "need to pass one off harmonic coefficients, real pixels " From be077c8c9f62bec0c2ad1ec52e97893edbbd592d Mon Sep 17 00:00:00 2001 From: Paddy Roddy Date: Fri, 29 Sep 2023 11:39:50 +0100 Subject: [PATCH 2/4] Mask can't be None --- src/sleplet/slepian/_slepian_decomposition.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sleplet/slepian/_slepian_decomposition.py b/src/sleplet/slepian/_slepian_decomposition.py index 223a8e72c..64503ef75 100644 --- a/src/sleplet/slepian/_slepian_decomposition.py +++ b/src/sleplet/slepian/_slepian_decomposition.py @@ -102,12 +102,12 @@ def _detect_method(self) -> None: _logger.info("harmonic sum method selected") self.method = "harmonic_sum" elif self.f is not None: - if self.mask is None: - _logger.info("integrating the whole sphere method selected") - self.method = "integrate_sphere" - else: + if self.mask: _logger.info("integrating a region on the sphere method selected") self.method = "integrate_region" + else: + _logger.info("integrating the whole sphere method selected") + self.method = "integrate_sphere" else: raise RuntimeError( "need to pass one off harmonic coefficients, real pixels " From 09196007b9925b6a2b22764a09d6584fe2903c97 Mon Sep 17 00:00:00 2001 From: Paddy Roddy Date: Fri, 29 Sep 2023 11:41:29 +0100 Subject: [PATCH 3/4] Revert "Mask can't be None" This reverts commit be077c8c9f62bec0c2ad1ec52e97893edbbd592d. --- src/sleplet/slepian/_slepian_decomposition.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sleplet/slepian/_slepian_decomposition.py b/src/sleplet/slepian/_slepian_decomposition.py index 64503ef75..223a8e72c 100644 --- a/src/sleplet/slepian/_slepian_decomposition.py +++ b/src/sleplet/slepian/_slepian_decomposition.py @@ -102,12 +102,12 @@ def _detect_method(self) -> None: _logger.info("harmonic sum method selected") self.method = "harmonic_sum" elif self.f is not None: - if self.mask: - _logger.info("integrating a region on the sphere method selected") - self.method = "integrate_region" - else: + if self.mask is None: _logger.info("integrating the whole sphere method selected") self.method = "integrate_sphere" + else: + _logger.info("integrating a region on the sphere method selected") + self.method = "integrate_region" else: raise RuntimeError( "need to pass one off harmonic coefficients, real pixels " From ec3efd74da6f437bfaf52da8df0ecf8a90438785 Mon Sep 17 00:00:00 2001 From: Paddy Roddy Date: Fri, 29 Sep 2023 11:41:53 +0100 Subject: [PATCH 4/4] Mask is `bool` --- src/sleplet/meshes/_mesh_slepian_decomposition.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sleplet/meshes/_mesh_slepian_decomposition.py b/src/sleplet/meshes/_mesh_slepian_decomposition.py index 9ec15a14d..80ae12644 100644 --- a/src/sleplet/meshes/_mesh_slepian_decomposition.py +++ b/src/sleplet/meshes/_mesh_slepian_decomposition.py @@ -96,12 +96,12 @@ def _detect_method(self) -> None: _logger.info("harmonic sum method selected") self.method = "harmonic_sum" elif self.u is not None: - if self.mask is None: - _logger.info("integrating the whole mesh method selected") - self.method = "integrate_mesh" - else: + if self.mask: _logger.info("integrating a region on the mesh method selected") self.method = "integrate_region" + else: + _logger.info("integrating the whole mesh method selected") + self.method = "integrate_mesh" else: raise RuntimeError( "need to pass one off harmonic coefficients, real pixels "