During psradd -T, absolute/aux DM and RM are correctly handled during the first T-scrunch of the first two files, because at this point both of the files have aux:rmc=0
After the first T-scruch, the resulting total has aux:rmc=1. Consequently, as subsequent files are added to this total, the incoming sub-integrations are no longer correctly handled, because
aux:rmc=1 after the first T-scrunch) the sub-integration will incorrectly report that it has already been corrected.Here's some evidence to support the theory: In psradd-T.log, there are 116640 line of verbose output in which the value of the get_absolute_birefringence_corrected flag is reported
$ grep Integration::get_absolute_birefringence_corrected psradd-T.log | cat -n | tail -1
116640 Integration::get_absolute_birefringence_corrected returning parent archive value =1
Only the first 2160 of these correctly show that Integration::get_absolute_birefringence_corrected is false
$ grep Integration::get_absolute_birefringence_corrected psradd-T.log | cat -n | grep -F '=0' | tail -1
2160 Integration::get_absolute_birefringence_corrected returning parent archive value =0
116640 / 2160 = 54 and 55 sub-integrations were combined in the resulting total, resulting in 54 tscrunch operations. On only the first tscrunch, the flag is correctly false.
Potential solutions:
aux:rmc flag; this has the potential for inconsistent definitions in sub-integrations and parent archives. However, inconsistent definitions are clearly already a problem.
Diff:
I've implemented a fix on the
bugs-509-psradd-tscrunch-auxbranch. (I went with potential solution #2: have sub-integrations store their own aux:rmc flag.) I'll perform more testing before checking in to the master branchFix merged to main branch