From db6d3386c9e9e2b63c39b3018fc61ba5262ade03 Mon Sep 17 00:00:00 2001 From: Ansgar Wehrhahn <31626864+AWehrhahn@users.noreply.github.com> Date: Wed, 6 Apr 2022 13:34:24 +0200 Subject: [PATCH] manually calculate the residuals and chisq for the fitresults --- src/pysme/solve.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pysme/solve.py b/src/pysme/solve.py index cc27c731..4774e3e5 100644 --- a/src/pysme/solve.py +++ b/src/pysme/solve.py @@ -380,7 +380,7 @@ def get_bounds(self, sme): else: result[i] = [-10, 11] elif name[:8].lower() == "linelist": - pass + result[i] = [-np.inf, np.inf] else: result[i] = bounds[name] @@ -601,8 +601,10 @@ def update_fitresults(self, sme, result, segments): sme.fitresults.covariance = covar sme.fitresults.gradient = result.grad sme.fitresults.derivative = result.jac - sme.fitresults.residuals = result.fun - sme.fitresults.chisq = np.sum(result.fun ** 2) / ( + sme.fitresults.residuals = ( + (sme.spec[segments] - sme.synth[segments]) / sme.uncs[segments] + )[sme.mask_line[segments]] + sme.fitresults.chisq = np.sum(sme.fitresults.residuals ** 2) / ( result.fun.size - len(self.parameter_names) ) sme.fitresults.iterations = self.iteration