From 33f0bd0dce3e3641a38a15333717759e5a2a9af9 Mon Sep 17 00:00:00 2001 From: Joe Hennawi Date: Fri, 26 Dec 2025 15:21:45 +0100 Subject: [PATCH 1/5] Fix: set _speccal before fit_mle_elines needs it --- prospect/models/sedmodel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/prospect/models/sedmodel.py b/prospect/models/sedmodel.py index 9b5d77ff..32309b9f 100644 --- a/prospect/models/sedmodel.py +++ b/prospect/models/sedmodel.py @@ -313,6 +313,7 @@ def predict_spec(self, obs): extra_mask=extra_mask, **self.params) inst_spec = inst_spec * response + self._speccal = response # Set before fit_mle_elines needs it # --- fit and add lines if necessary --- emask = self._fit_eline_pixelmask From 93327a64717f7ccc46d7a5d141f039a07b7483fc Mon Sep 17 00:00:00 2001 From: Joe Hennawi Date: Fri, 26 Dec 2025 20:41:38 +0100 Subject: [PATCH 2/5] bug fixes in sedmodel.py --- prospect/models/sedmodel.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/prospect/models/sedmodel.py b/prospect/models/sedmodel.py index 32309b9f..ccc0ad3b 100644 --- a/prospect/models/sedmodel.py +++ b/prospect/models/sedmodel.py @@ -220,7 +220,7 @@ def predict_intrinsic(self, obs_dummy, continuum_only=True, **extras): # --- add (previously) fitted lines if necessary --- emask = self._fit_eline_pixelmask - if emask.any() (~continuum_only): + if emask.any() and (~continuum_only): inst_spec[emask] += self._fit_eline_spec.sum(axis=1) return inst_spec @@ -313,7 +313,12 @@ def predict_spec(self, obs): extra_mask=extra_mask, **self.params) inst_spec = inst_spec * response - self._speccal = response # Set before fit_mle_elines needs it + # Set _speccal before fit_mle_elines needs it + # Ensure it's an array (response can be scalar 1.0 when no polynomial calibration) + if np.isscalar(response): + self._speccal = np.ones_like(inst_spec) * response + else: + self._speccal = response # --- fit and add lines if necessary --- emask = self._fit_eline_pixelmask @@ -714,7 +719,7 @@ def fit_mle_elines(self, obs, calibrated_spec, sigma_spec=None): # Store fitted emission line luminosities in physical units, including prior self._eline_lum[idx] = alpha_bar / linecal # store new Gaussian uncertainties in physical units - self._eline_lum_var[np.ix_(idx, idx)] = sigma_alpha_bar / linecal[:, None] / linecal[None, :] + self._eline_lum_covar[np.ix_(idx, idx)] = sigma_alpha_bar / linecal[:, None] / linecal[None, :] # return the maximum-likelihood line spectrum for this observation in observed units self._eline_lum_mle[idx] = alpha_hat / linecal From 9662d70556c8e9d1cea88f4a2404ce92596112ab Mon Sep 17 00:00:00 2001 From: Joe Hennawi Date: Sat, 27 Dec 2025 00:32:23 +0100 Subject: [PATCH 3/5] Fix: replaced bitwise not with logical not --- prospect/models/sedmodel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prospect/models/sedmodel.py b/prospect/models/sedmodel.py index ccc0ad3b..0d800fe8 100644 --- a/prospect/models/sedmodel.py +++ b/prospect/models/sedmodel.py @@ -220,7 +220,7 @@ def predict_intrinsic(self, obs_dummy, continuum_only=True, **extras): # --- add (previously) fitted lines if necessary --- emask = self._fit_eline_pixelmask - if emask.any() and (~continuum_only): + if emask.any() and (not continuum_only): inst_spec[emask] += self._fit_eline_spec.sum(axis=1) return inst_spec From 172fdb4d2adf4c6ef90fff59b6ac55babbd11751 Mon Sep 17 00:00:00 2001 From: Joe Hennawi Date: Sat, 27 Dec 2025 00:33:12 +0100 Subject: [PATCH 4/5] Fix: replaced bitwise not with logical not --- prospect/models/sedmodel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prospect/models/sedmodel.py b/prospect/models/sedmodel.py index 0d800fe8..3d4bba3d 100644 --- a/prospect/models/sedmodel.py +++ b/prospect/models/sedmodel.py @@ -211,7 +211,7 @@ def predict_intrinsic(self, obs_dummy, continuum_only=True, **extras): # --- add fixed lines if necessary --- emask = self._fix_eline_pixelmask - if emask.any() & (~continuum_only): + if emask.any() & (not continuum_only): inds = self._fix_eline & self._valid_eline espec = self.predict_eline_spec(line_indices=inds, wave=self._outwave[emask]) From 555ff0a24be6d337a8ed5575a539b7e92e67e77a Mon Sep 17 00:00:00 2001 From: Joe Hennawi Date: Sun, 11 Jan 2026 11:44:05 +0100 Subject: [PATCH 5/5] changed bitwise to logical and --- prospect/models/sedmodel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prospect/models/sedmodel.py b/prospect/models/sedmodel.py index 3d4bba3d..75e16623 100644 --- a/prospect/models/sedmodel.py +++ b/prospect/models/sedmodel.py @@ -211,7 +211,7 @@ def predict_intrinsic(self, obs_dummy, continuum_only=True, **extras): # --- add fixed lines if necessary --- emask = self._fix_eline_pixelmask - if emask.any() & (not continuum_only): + if emask.any() and (not continuum_only): inds = self._fix_eline & self._valid_eline espec = self.predict_eline_spec(line_indices=inds, wave=self._outwave[emask])