The IRAC Level 1 (BCD; basic calibrated data) pipeline is designed to take a single Level 0 (raw) image from a single IRAC detector and produce a flux-calibrated image which has had all well-understood instrumental signatures removed. The following describes the data reduction pipeline for science data. Similar pipelines are used for reducing calibration data. Note that the pipeline processing for moving targets is the same as for fixed targets. Chapter 7 on data features and artifacts provides more information on several image features addressed by the pipeline, and the appropriate sections of that chapter are cross-referenced from this chapter.
The IRAC pipeline consists of two principal parts: the data reduction software modules and the calibration server. The individual modules each correct a single instrumental signature. They are written as standalone code executable from the Unix command line. Each uses FITS files and text configuration files as input, and produces one or more FITS files and log files as output. These modules are strung together with a single Perl script. The actual calibration data needed to reduce a given DCE (data collection event) is produced via calibration pipelines. A raw IRAC DCE is thus passed between successive modules, and at each step becomes closer and closer to a finished, fully reduced image. The following sections describe the reduction steps used to produce the BCD data.
5.1.1 sanity datatype (parameter checking)
Before data proceeded through the pipeline, a check was made to make sure that the data were of the type that was expected. In particular, ancillary keywords were checked against their expected values to ensure that they were in range, and had the expected logical state. These included the shutter state (open/closed), transmission and flood calibrator lamp status (on/off), and read mode (full/subarray).
5.1.2 sanity check (image contents checking)
Before pipeline processing continued, the actual image contents were checked to ensure that they contained values expected for actual image data. These tests included checking to ensure that the image was not all zeros, that the pixels were not all identical, or that areas of the image did not have an abnormal data range.
5.1.3 tranhead (header processing)
The FITS headers delivered by Jet Propulsion Laboratory (JPL)/Flight Operations System (FOS) were translated into a more readable format. For example, the FITS header keywords
A0612D00 = 14478455 / AINTBEG
A0612E00 = 1.4478455E5 / [Sec]
A0614D00 = 8 / AFOWLNUM
A0614E00 = / [NONE]
A0615D00 = 44 / AWAITPER
A0615E00 = / [NONE]
A0657D00 = 14479495 / ATIMEEND
A0657E00 = 1.4479495E5 / [Sec]
were translated to:
AINTBEG = 144784.55 / [Secs since IRAC turn-on] Time of integ. start
ATIMEEND = 144794.95 / [Secs since IRAC turn-on] Time of integ. end
AFOWLNUM = 8 / Fowler number
AWAITPER = 44 / [0.2 sec] Wait period
Figure 5.1: Data flow for processing a raw IRAC science DCE into a BCD.
It is also at this stage that derived parameters, most notably the integration time, were added to the headers. The integration time was related to the Fowler number (AFOWLNUM) and the number of wait periods (AWAITPER; see Sections 2.4.2 and 2.4.3 for the definition of these concepts) via
EXPTIME = mode x (AWAITPER + AFOWLNUM)
The integration time was stored in the header in the keyword EXPTIME. Another timescale of importance is the frame time. This is the actual length of time that the observation was integrating on the sky, and is equal to
FRAMTIME = mode x (AWAITPER + 2 * AFOWLNUM)
The factor mode is equal to 0.2 seconds for full array mode, and 0.01 seconds for subarray mode. The read mode was determined by the least significant bit of the ancillary keyword AREADMOD. If AREADMOD was 0 (or even), then the mode was full array. If it was 1 (or odd), then the read mode was subarray.
Note that because of tranhead processing, the headers of the raw data and the final BCD data products are not identical. In general, users should only need to read the BCD headers. However, if it becomes somehow necessary to examine any of the camera telemetry (voltages, currents, etc.), then the desired telemetry values can be read from the complete raw data header