Skip to content

UnboundLocalError in trace.py #267

Description

@raswaters

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions