SATMASK Algorithm




Note: the following information is intended for the IRAC instrument team only. If you are not such a person, you should not be reading this. No guarantees are made as to the applicability of this information to the real IRAC.

What: This module should exploit the nature of High Dynamic Range (HDR) mode in IRAC to set a saturation flag so that saturated pixels are rejected by later processing steps.

Why: When an observer specifies the use of HDR mode in the IRAC AOT for a full-frame observation, he or she will receive extra exposures taken with shorter exposure times than the specified full-frame exposure time. The specific reason is to increase the dynamic range of the resulting data. Objects (e.g. bright stars), which would saturate in the specified exposure time can have their data later filled in using the shorter exposures.

However, rejection of the saturated data in the long frames is more complex than it sounds. Because the IRAC arrays use Fowler sampling, once a given pixel is saturated the DN in that pixel actually {\it decrease} as the exposure time is increased. This is because the signal reads are saturated, yet the pedestal reads are not. Continued exposure will eventually drive the DN all the way back to zero. Because of this multi-valuedness, a simple threshold scheme for testing for saturation is not always reliable. Since the saturated values would appear good, when the data is coadded, the result will be wrong. Even worse, in cases where HDR mode creates three frames and two are saturated, outlier rejection will actually guarantee the wrong result because the shortest frame time is in the minority.

However, an ensemble of HDR data is taken without slewing - that is, all the pixels correspond to the same place on the sky and hence each other. By looking at the shorter frames, it is possible to tell which pixels in the longer frames must be saturated.

How: For a simple example: imagine an HDR data set consisting of two frames, one short (1) and another long (2). One would read in these two frames, including the Fowler number (AFOWLNUM) and waitperiod (AWAITPER) header keywords. Call these F(1),W(1) and F(2),W(2). A given pixel has counts DN(1) in the short frame and DN(2) in the long frame, and it is known that the pixel saturates at DN(sat). The latter could either be a global value given by a namelist parameter, or could be specific to that pixel and could be acquired from the LINCAL solution.

The exposure time is proportional to (F+W). This relates time to the measured DN.

The frame time is proportional to (2*F+W). This relates time to the number of "real" DN in the well. The "DN rate" is then DN/(F+W). Thus, if


DN(1) (2*F(2)+W(2))
-------------------- > DN(sat)
     F(1)+W(1)

then the pixel is saturated in image (2), regardless of the value of DN(2). A mask bit should thus be set for that pixel in image(2).

Some additional tweaks that would be nice:




Jason Surace (2/16/01)