Closed abrodze closed 2 months ago
Further investigation shows this is an intentional choice of using bitwise AND of individual FIBERSTATUS to define COADD_FIBERSTATUS. See related PR #2093
coaddition.py L329-338:
# Check if there are some good coadds to compute aggregate quantities;
# Otherwise just use all the (bad) exposures; will still count NUM on good_coadds
if coadd_numexp>0:
compute_coadds = good_coadds
# coadded FIBERSTATUS = bitwise AND of input FIBERSTATUS
tfmap['COADD_FIBERSTATUS'][i] = np.bitwise_and.reduce(exp_fibermap[fiberstatus_key][jj][good_coadds])
else:
compute_coadds = ~good_coadds
# if all inputs were bad, COADD_FIBERSTATUS is OR of inputs instead of AND
tfmap['COADD_FIBERSTATUS'][i] = np.bitwise_or.reduce(exp_fibermap[fiberstatus_key][jj])
Thanks for tracking down the underlying reason. Surprising, but purposeful. Closing this ticket.
For example, targetid 39632966934070130 was observed on two sv3-dark tiles. On exposure 84423, it was flagged for the positioner being >30 microns off target.
I found ~200 cases of this in sv3-dark.