fitFocusCurve: fix 'scale' computation for robust fitting

This commit is contained in:
Timur A. Fatkhullin
2024-10-27 10:34:10 +03:00
parent 47659dc918
commit 2a48df15c9

View File

@@ -121,11 +121,20 @@ def fitFocusCurve(
np.inf,
) # parabola with minimum (2nd derivative must be positive)
if coeffs[2] < 0:
coeffs[2] = 0
if coeffs[2] < 0: # it seems the non-robust fit failed!
coeffs[2] = 0 # so, guess curve is just constant!
coeffs[1] = 0
coeffs[0] = np.nanmedian(flux_rad)
scale = np.nanmedian(np.abs(flux_rad - coeffs[0]))
else:
nr_model = nr_res(np.asarray(focus_value))
scale = np.abs(np.nanmedian(flux_rad - nr_model))
scale = np.nanmedian(np.abs(flux_rad - nr_model))
# if coeffs[2] < 0:
# coeffs[2] = 0
# nr_model = nr_res(np.asarray(focus_value))
# scale = np.abs(np.nanmedian(flux_rad - nr_model))
# robust fitting
res = least_squares(
polyModelResid,