From be1b48d92c4dd6b9f73ba8e864cdb2259412459d Mon Sep 17 00:00:00 2001 From: Robert Jedrzejewski Date: Fri, 3 Apr 2026 17:45:59 -0400 Subject: [PATCH] Fix a couple of issues that arise with pathological data: centroid undetermined causes arithmetic problems down the road --- calcos/trace.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/calcos/trace.py b/calcos/trace.py index 5686d1d..6932472 100644 --- a/calcos/trace.py +++ b/calcos/trace.py @@ -436,8 +436,9 @@ def getScienceCentroid(rebinned_data, dq_array, xtract_info, # number of iterations cosutil.printWarning("Centroid calculation did not converge") cosutil.printWarning("after %d iterations" % (n_iterations)) + cosutil.printWarning(f"Setting centroid to default value of {startcenter}") status = NO_CONVERGENCE - centroid = difference + centroid = startcenter return status, centroid, goodcolumns, regions def getBackgroundDQ(dqexclude): @@ -508,9 +509,12 @@ def getCentroidError(events, info, goodcolumns, regions): rowstop = regions['specstop'] centroid = getCentroid(counts_ij, goodcolumns, rowstart, rowstop, background) - error = calculateCentroidError(counts_ij, goodcolumns, regions, - centroid, background=background) - return error + if centroid is not None: + error = calculateCentroidError(counts_ij, goodcolumns, regions, + centroid, background=background) + return error + else: + return None def calculateCentroidError(data_ij, goodcolumns, regions, centroid, background=0.0):