Testing with BSO data revealed a small bug in trace.py. In getScienceCentroid(), it is possible for maximum number of iterations to be reached without "difference" being set, resulting in an UnboundLocalError.
Adopted background in science data = 0.000000
Warning: Centroid is not defined in science data
Warning: Centroid calculation did not converge
Warning: after 5 iterations
Traceback (most recent call last):
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/bin/calcos", line 8, in <module>
sys.exit(main())
^^^^^^
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/lib/python3.11/site-packages/calcos/calcos.py", line 200, in main
stat = calcos(infiles[i], outdir=outdir, verbosity=None,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/lib/python3.11/site-packages/calcos/calcos.py", line 434, in calcos
sci_status = cal.allScience()
^^^^^^^^^^^^^^^^
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/lib/python3.11/site-packages/calcos/calcos.py", line 3046, in allScience
self.basicCal(obs.filenames,
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/lib/python3.11/site-packages/calcos/calcos.py", line 2902, in basicCal
status = timetag.timetagBasicCalibration(input, None, outtag,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/lib/python3.11/site-packages/calcos/timetag.py", line 322, in timetagBasicCalibration
align = doProfileAlignmentCorr(events, input, info, switches, reffiles,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/lib/python3.11/site-packages/calcos/timetag.py", line 3908, in doProfileAlignmentCorr
result = trace.doProfileAlignment(events, input, info, switches,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/lib/python3.11/site-packages/calcos/trace.py", line 152, in doProfileAlignment
status, centroid, goodcolumns, regions = getScienceCentroid(rebinned_data,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dms/local/hst/pipeline/pkgs/miniconda3/envs/caldp_202503v1/lib/python3.11/site-packages/calcos/trace.py", line 441, in getScienceCentroid
centroid = difference
^^^^^^^^^^
UnboundLocalError: cannot access local variable 'difference' where it is not associated with a value
Testing with BSO data revealed a small bug in trace.py. In getScienceCentroid(), it is possible for maximum number of iterations to be reached without "difference" being set, resulting in an UnboundLocalError.