3.4 CALACS Processing Steps
The CALACS pipeline consists of four individual calibration tasks: ACSCCD, ACSREJ, ACS2D, and ACSSUM. These tasks are listed in Table 3.2 and diagrammed in Figure 3.1. CALACS is responsible for controlling the processing rather than actually calibrating the data. The individual tasks apply the desired calibration steps to the data and create the output products, including the trailer files.
In the following four sections, we describe each CALACS task, give a detailed description of the calibrations steps performed within each task, and give a brief description of the reference files used for each step.
3.4.1 ACSCCD
This routine contains the initial processing tasks for all ACS CCD data. These tasks are listed in operational order in Table 3.3. The bulk of this routine was based on the code for CALSTIS1. ACSCCD processes each image in the input list one at a time, using the header keywords to determine which calibrations are performed. Upon completion of ACSCCD, the overscan regions will be trimmed from the image and an output image with the file extension '_blv_tmp.fits' is created.
Table 3.3: ACSCCD processing tasks
| doNoise |
Initialize error array |
| doDQI |
Initialize data quality array |
| doAtoD |
Perform A to D correction (currently skipped) |
| doBlev |
Subtract bias level from overscan region |
| doBias |
Subtract bias image |
| doFlash |
Subtract post-flash image (if required) |
| Final Output |
Output overscan-trimmed or full image |
doNoise - Error Array Initialization
- Header Switch: None
- Header Keywords Updated: None
- Reference File: CCDTAB (*_ccd.fits)
The first processing step is initializing the image error array. The doNoise function examines the ERR extension of the input data to determine the state of the array. Input '_raw.fits' images delivered by Generic Conversion will contain a NULL ERR array, defined by the keywords NPIX1, NPIX2 and PIXVALUE, where PIXVALUE=0. If the ERR array has already been expanded and contains values other than zero, then this function does nothing. Otherwise, CALACS will initialize the array and doNoise will assign a simple noise model.
The noise model reads the science array and for each pixel calculates the error value
(in DN for the CCD, in counts for the MAMA):
Because MAMA data is not processed with ACSCCD, the doNoise function is later called as part of ACS2D.
The CCDTAB reference file, the CCD Characteristics Table, is used to initialize the ERR array by determining the bias, gain, and readnoise for each observation. The table contains one row for each amp configuration which can be used during readout. Each configuration is uniquely identified by the list of amps possible (CCDAMP), the particular chip being read out (CCDCHIP), the commanded gain (CCDGAIN), the commanded bias level (CCDBIAS), and the pixel bin size (BINAXIS). CCDTAB uses these commanded values to determine each amp's physical read-out characteristics, including readnoise (READNSE), A-to-D gain (ATODGN), and bias level (CCDOFST). Note that by using the bias level from the CCDTAB, instead of from a full bias image, to create the ERR array, slight errors may be introduced which could be relevant for faint sources.
doDQI - Bad Pixel Determination
- Header Switch: DQICORR
- Header Keywords Updated: None
- Reference File: BPIXTAB (*_bpx.fits), CCDTAB (*_ccd.fits)
The function doDQI initializes the data quality (DQ) array by combining it with a table of known bad pixels for the detector, stored in the Bad-Pixel reference table (BPIXTAB). The type of bad pixel flags are listed in Table 3.4.
The DQ array may have already been partially populated to reflect pixels which were affected by telemetry problems or compression buffer overflow. Other DQ flags will be added in further processing steps (such as cosmic-ray rejection). For CCD data, the values in the SCI extension are also checked for saturation by comparison with the value of the SATURATE column in the CCD parameters table CCDTAB.
The doDQI function combines the DQ flags from pre-processing, from the BPIXTAB, and from saturation tests into a single result for the particular observation. These values are combined using a "bitwise/logical OR operator" for each pixel. Thus, if a single pixel is affected by two DQ flags, those flag values will be added in the final DQ array. This array then serves as a mask so that CALACS can ignore bad pixels during processing.
The BPIXTAB reference file maintains a record of the (x,y) position and DQ value for all known bad pixels in each CCD. These pixels may change as some hot pixels are annealed and others appear over time, for example. Permanently bad pixels due to chip defects may be flagged during Generic Conversion, and it is the job of the BPIXTAB to maintain the list of bad pixels applicable for a given time period.
Table 3.4: Flags for the DQ array
|
|
|
Reed-Solomon decoding error |
|
data replaced by fill value |
|
bad detector pixel or beyond aperture |
|
masked by aperture feature |
|
hot pixel (dark current >0.08 e/sec) |
|
|
|
warm pixel (dark current 0.02 to 0.08 e/sec) |
|
bias structure (mostly bad columns) |
|
saturation (full well or a-to-d) |
|
bad pixel in reference file |
|
|
|
|
|
cosmic ray rejected by MultiDrizzle (based on all FLT files) |
|
cosmic ray rejected by ACSREJ (only done for CR-SPLITs) |
|
|
doAtoD - A-to-D Correction (skipped)
- Header Switch: ATODCORR
- Header Keywords Updated: None
- Reference File: ATODTAB (*_a2d.fits)
The doAtoD function converts pixel values in the raw input image from units of DN (16-bit integer) to counts (32-bit float). An analog-to-digital correction would be applied if the CCD electronic circuitry, which performs the analog-to-digital conversion, were biased toward the assignment of certain DN (data number) values. Ground test results show that this correction is not currently needed, so the ATODCORR switch will always be set to OMIT.
doBlev - Bias-level Correction
- Header Switch: BLEVCORR
- Header Keywords Updated: BIASLEV[A,B,C,D], MEANBLEV, CRPIX[1,2], LTV[1,2]
- Reference File: OSCNTAB (*_osc.fits)
The doBlev function fits the bias level from the overscan region and subtracts it from the image data. The definition of the overscan region is taken from the OSCNTAB reference file. With these regions defined, the overscan level for each row of the input image is measured and a straight line is fit as a function of image line number. The fit will then be evaluated for each row of the input image, and that value will be subtracted from each pixel of that row. If the measured overscan level for a given row is greater than 3 sigma times the mean of all rows, that row will be excluded from the linear fit. If the overscan level cannot be determined, or if the overscan region is not present in the input image, a default value (the CCDBIAS from the CCD parameters table) will be subtracted instead. In this case, an error message will be written to the image trailer file.
In CALSTIS, the overscan regions were removed from the image just after the bias-level subtraction, since no subsequent processing was required. CALACS, on the other hand, retains the output image in memory until the completion of all the processing steps in ACSCCD. The overscan regions will not be trimmed until the image is written to disk at the completion of ACSCCD.
The positional keywords CRPIX* and LTV* will be updated to reflect the offset due to removing the overscan. In addition, the mean value of all overscan levels will be computed and written to the SCI extension header as MEANBLEV. The individual bias level measured for each amplifier will be written to the SCI header as BIASLEV*.
The OSCNTAB reference file (Overscan Region Table) describes the overscan regions to be used for measuring the bias level of the observation. Each row corresponds to a specific configuration, given by the CCD amp and chip used. The columns TRIMX* give the number of columns to trim off the beginning and end of each line (the physical overscan region), while the TRIMY* columns give the number of rows to trim off the top and bottom of each column (the virtual overscan region). The result of trimming (TRIMX1 + TRIMX2) columns and (TRIMY1 + TRIMY2) rows gives the final calibrated image sizes, 4096x2048 for a full WFC image and 1024x1024 for a full HRC image. The OSCNTAB columns BIASSECTA* and BIASSECTB* give the range of image columns to be used for determining the bias level in the leading and trailing regions, respectively, of the physical overscan region. The virtual overscan region is also defined in the OSCNTAB, where (VX1, VY1) indicates the beginning of the upper or lower overscan region, extending to the position (VX2, VY2).
To determine which overscan regions were actually used for determining the bias level, users are encouraged to check the OSCNTAB reference file. If desired for manual calibration, users may modify the bias section and virtual overscan region definitions in the reference table, but the TRIMX*, TRIMY* columns must not be changed.
doBias - Bias Image Subtraction
- Header Switch: BIASCORR
- Header Keywords Updated: None
- Reference File: BIASFILE (*_bia.fits)
Subtraction of the bias image is performed prior to cosmic-ray rejection using the function doBias. The appropriate reference image, BIASFILE, is selected using the DETECTOR, CCDAMP, and CCDGAIN keywords. The dimensions of the science image are used to distinguish observations which use the entire chip from sub-array images. Because the bias image has already been scaled by the gain and had the overscan values subtracted, the bias image may have a mean pixel value which is less than one.
Due to the way the bias reference image is created, part of the dark subtraction is also included in this step. Dark counts accumulate for an additional time beyond the exposure time, primarily the time required to read out the detector, and this portion of the dark current is subtracted along with the bias. This is described further in the section on Dark Image Subtraction.
The bias reference files are updated frequently (~weekly). The BIASFILE has the same dimensions as a full-size science image, 1062x1044 for HRC and 4144x2068 for WFC, allowing for simple image arithmetic on arrays of equal size. Only after the completion of ACSCCD are the images trimmed to 1024x1024 (HRC) and 4096x2048 (WFC). CALACS assumes that CCD data will not be read-out in binned mode, so any image which is not the full size is assumed to be a sub-array.
For sub-array images, CALACS uses the LTV[1,2] keywords to extract the appropriate region from the reference file and apply it to the sub-array input image. For users who take their own bias files, the BIASFILE keyword will need to be updated manually before recalibrating. This is described in detail in Section 3.5.2.
doFlash - Post-Flash Subtraction
- Header Switch: FLSHCORR
- Header Keywords Updated: MEANFLSH
- Reference File: FLSHFILE (*_fls.fits)
ACS has a post-flash capability to provide the means of mitigating the effects of Charge Transfer Efficiency degradation. The proposer controls whether to use this capability via the FLASHEXP optional parameter in the Phase II proposal. FLSHCORR has a default value of OMIT for pipeline processing even if post-flash is used, thus allowing the excess sky background to remain in the calibrated products. The user may recalibrate with this changed as desired.
The function doFlash will subtract the Post-Flash reference file, FLSHFILE, from the science image. This file has the same dimensions as a full-size science image, 1062x1044 for HRC and 4144x2068 for WFC, allowing for simple image arithmetic on arrays of equal size. The appropriate FLSHFILE is selected using the following keywords from the image header: DETECTOR, CCDAMP, CCDGAIN, FLASHCUR and SHUTRPOS.
First, the success of the Post-Flash exposure is verified by checking the keyword FLASHSTA. If any problems were encountered, a comment will be added to the history comments in the SCI extension header. The FLSHFILE is then normalized to one second for the appropriate post-flash current level (LOW, MED, HIGH), given by the FLASHCUR keyword. The FLSHFILE is then multiplied by the flash duration in seconds (FLASHDUR) and is subtracted from the science image. Finally, the mean value of the scaled Post-Flash image is written to the output SCI extension header as the keyword MEANFLSH.
Final Output
Upon completion of ACSCCD, the overscan regions will be trimmed from the image when it is written out, but only if doBlev is performed successfully. Otherwise, the full image array will be written out.
3.4.2 ACSREJ
- Header Switch: CRCORR
- Header Keywords Updated: TEXPTIME, SKYSUM, EXPEND, REJ_RATE, EXPTIME, NCOMBINE, ROOTNAME
- Header Keywords added as 'HISTORY' Comments: INITGUES, SKYSUB, CRSIGMAS, MEANEXP, CRRADIUS, CRTHRESH, SCALENSE, CRMASK, NEXTEND
- Reference File: CRREJTAB (*_crr.fits)
ACSREJ, the cosmic-ray rejection task in CALACS, combines CR-SPLIT exposures into a single image, first detecting and then replacing flagged pixels. The task uses the same statistical detection algorithm developed for STIS data (OCRREJ) and WFPC2 data (CRREJ), providing a well-tested and robust procedure.
First, ACSREJ will compute the sky background using the mode of each image. Sky subtraction is performed before any statistical checks are made for cosmic rays. Next, ACSREJ constructs an initial comparison image from each input exposure. The comparison image can either be a median- or minimum-value sky-subtracted image constructed from all the input images and represents the 'first guess' of a cosmic-ray free image. The comparison image serves as the basis for determining the statistical deviation of each pixel from the input image.
A detection threshold is then calculated for each pixel based on the comparison image. This threshold is equal to a constant times sigma squared, given in the equation below:
where:
-
is the sigma value used as the detection limit,
- noise is the readnoise squared (in DN) and gain is the CCD gain (in e-/DN) for the amp used to read the pixel,
- scale is the scale factor for the noise model,
-
is the exposure time (in seconds) for the input image, and
- value is the pixel value (in DN) from the median or minimum combined comparison image.
The actual cosmic-ray detection criteria at each pixel is determined as:
where:
-
is the pixel value (in DN) from input image n,
- skyn is the sky background (in DN) of image n, and
-
is the median or minimum pixel value (in DN/sec) from the comparison image.
If
, the pixel is flagged as a cosmic-ray in the input image's DQ array and is ignored when images are summed together. Surrounding pixels within a given expansion radius are marked as 'SPILL' pixels and are given less stringent detection thresholds.
When all input images have been processed, the values of the acceptable pixels are summed over all input images. Each pixel in the summed output array is then scaled by the total exposure time:
where:
-
is the exposure time for image n,
-
is the mask value (0 for cr-rejected pixels, 1 for good data) for the n'th image at pixel (x, y),
- T is the total exposure time (regardless of whether all input images were used for that particular pixel). This corresponds to the header keywords TEXPTIME, EXPTIME.
The following keywords are derived from the variables in this computation:
- TEXPTIME = EXPTIME = T
- SKYSUM =
- REJ_RATE =
averaged over all pixels
- NCOMBINE = n
The remaining keywords EXPSTART, EXPEND are updated based on the input image headers.
In summary, the cosmic ray rejection task sums all accepted pixel values, computes the true exposure time for that pixel, and scales the sum to correspond to the total exposure time. The final scaled, cleaned pixel is written to the comparison image to be used for the next iteration. This process is then repeated with successively less stringent detection thresholds, as specified by CRSIGMAS. Further processing by CALACS will scale the pixout(x,y) array by the gain, resulting in the summed, cosmic-ray eliminated, but not sky-subtracted product (*_crj.fits) in units of electrons.
Cosmic-ray Rejection Table
ACSREJ uses the Cosmic-ray Rejection Parameter Table (CRREJTAB) to determine the number of iterations for cosmic-ray rejection, the sigma levels to use for each iteration, and the spill radius to use during detection. This allows the rejection process to be tuned to each detector, with suitable defaults being applied during pipeline processing. Observers may fine-tune the cosmic-ray rejection parameters when manually reprocessing data with ACSREJ by editing the CRREJTAB.
The CRREJTAB reference file contains the basic parameters necessary for performing cosmic-ray rejection. The column names and default values for the CRREJTAB are given in Table 3.5. The appropriate row is selected based on the chip being processed (CCDCHIP), the number of images into which the exposure was split (CR-SPLIT), and the exposure time of each CR-SPLIT image (MEANEXP). The sky fitting algorithm is controlled by the parameter SKYSUB which can have values of 'mode' or 'none'. The 'first guess' CR-combined image is then created using the median or minimum value of the input exposures, as specified by the column INITGUES.
Table 3.5: Columns in Cosmic-Ray Rejection Parameters Table
| Column Name |
Default Value |
Contents |
| CRSPLIT |
|
Number of exposures into which observation was split |
| MEANEXP |
INDEF |
Average exposure time (sec) for each image |
| SCALENSE |
30.0 |
Multiplicative term (in percent) for the noise model |
| INITGUES |
minimum |
Method for computing initial-guess image (minimum, median) |
| SKYSUB |
mode |
Sky fitting algorithm (mode, none) |
| CRSIGMAS |
6.5, 5.5, 4.5 |
Rejection thresholds (sigma) for consecutive iterations |
| CRRADIUS |
2.1 |
Radius (in pixels) for propagating cosmic ray |
| CRTHRESH |
0.5555 |
Propagation factor |
| BADINPDQ |
39 |
Data quality file bits to reject |
| CRMASK |
yes |
Flag CR-rejected pixels in input files? |
| CCDCHIP |
|
Chip to which this conversion applies |
Cosmic-ray detection requires the specification of a threshold above which a pixel value is considered a cosmic-ray. This threshold is defined above as
and uses the sigma rejection thresholds
. These sigmas correspond to the column CRSIGMAS in the CRREJTAB reference file. SCALENSE is a multiplicative term (in percent) for the noise model and is given as scale in the threshold equation. This term can be useful when the pointing of the telescope has changed by a small fraction of a pixel between images. Under such circumstances, the undersampling of the image by the CCD will cause stars to be rejected as cosmic rays if a scale noise term is not included. This is a crude but effective step taken to satisfy the maxim of "first do no harm". However, for cases in which there have been no frame-to-frame offsets or the image is locally well-sampled, this will unduly bias against rejecting cosmic rays.
Pixels within a given radius, CRRADIUS, of a cosmic-ray will also be treated as cosmic-rays. A less stringent rejection threshold, CRTHRESH, can be used for detecting pixels adjacent to a cosmic-ray. As for CRSIGMAS, CRTHRESH is also given as a sigma value. If CRTHRESH is exceeded, pixels within a defined radius of the cosmic ray will also be flagged. All pixels determined to be affected by a cosmic-ray will have their DQ values set to 8192, as described in Table 3.4.
A much more detailed discussion of cosmic ray elimination in repeated ACS exposures may be found in ACS ISR 2002-08, Section 5.1. Of particular note is the appropriate value of SCALENSE to use; the pipeline adopts a conservative value to avoid doing harm. In recalibrating several frames for a new cosmic ray elimination, it would be advisable to determine the full range of relative x,y offsets. An appropriate value of SCALENSE is 100*(maximum offset in pixels), thus if the full offset range was 0.1 pixels an appropriate SCALENSE is 10.0. To alter this value, one may use tedit on the CRREJTAB file (calibration file with the extension 'crr.fits'). The number of exposures obtained in a repeated observation set can be larger than the maximum CR-SPLIT=8 allowed in Phase II proposals. For example, for program 9662 used in Examples 3 and 4 in Section 3.5.2, there were 14 individual 1.0s HRC exposures all at nominally the same pointing. A check of relative offsets shows that a shift of about 0.2 pixels occurred between the first and last exposures. To obtain a crj combined image of all 14 inputs at 1.0s and with better sensitivity to cosmic ray elimination than provided by the conservative default of SCALENSE = 30.0, the following should be done:
- Create a new asn.fits table with one EXP-CRJ entry for each of the 14 raw 1.0s images, and an appropriately named PROD-CRJ file line.
- Use tedit on the crr.fits table adding a line with a CR-SPLIT value of 14, and a SCALENSE value of 20.0.
- Given such a large number of inputs it would also make sense here to change to 'median' as the INITGUES value. Then rerun CALACS on the new association table with 14 entries to obtain a CRJ extension image based on the full stack of 1.0s images.
For a detailed discussion on manually recalibrating ACS data, refer to Section 3.5.
3.4.3 ACS2D
Every observation, whether taken with the MAMA or CCD detectors, will be processed by ACS2D. The ACS2D primary functions are listed in Table 3.6 and include the dark current subtraction, flat fielding, and photometric keyword calculations. ACS2D contains the same data quality and error array initialization functions used in ACSCCD, but ACS2D will check to ensure that the array initialization is not performed twice on CCD data. Calibration switches in the image header control the performance of the remaining calibration functions, with MAMA-specific functions being initiated only when the relevant calibration switches are set.
Table 3.6: The functions performed in ACS2D (in operational order)
| doNoise |
Apply a simple noise model (if not done in ACSCCD) |
| doDQI |
Initialize data quality array (if not done in ACSCCD) |
| doNonLin |
Correct and flag non-linear data (MAMA only) |
| doDark |
Subtract dark image |
| doFlat |
Divide by flat field and multiply by gain |
| doShad |
Perform CCD shutter shading correction (currently skipped) |
| doPhot |
Compute photometric keyword values for header |
| doStat |
Compute image statistics |
doNoise - Error Array Initialization
- Header Switch: None
- Header Keywords Updated: None
- Reference File: None
ACS2D will first check that the image error array has not been expanded, indicating that no previous processing has been performed. In this case, the value of all pixels in the ERR array will have a value of zero. ACS2D will then perform the same initialization as described in "doNoise - Error Array Initialization" for ACSCCD. If, however, the input image has already been processed, no changes to the ERR array will be made.
doDQI - Bad Pixel Determination
- Header Switch: DQICORR
- Header Keywords Updated: None
- Reference File: BPIXTAB (*_bpx.fits)
If the DQICORR header keyword switch is set to COMPLETE (e.g. CCD data), this step will be skipped. Otherwise, the same initialization will be performed as described in "doDQI - Bad Pixel Determination" for ACSCCD.
doNonLin - Linearity Correction for MAMA Data
- Header Switch: LFLGCORR, GLINCORR
- Header Keywords Updated: GLOBLIM
- Reference File: MLINTAB (*_lin.fits)
This routine is capable of flagging global and local nonlinearity in ACS MAMA observations, where the term global refers to the entire ACS detector and local refers to an individual detector pixel. The MAMA Linearity Table, MLINTAB, provides the basic parameters for determining linearity. The global limit (GLOBAL_LIMIT) column from this table refers to the total count rate at which the data are affected by greater than 10% non-linearity across the detector.
CALACS will attempt to correct for non-linearity up to the global limit using the non-linearity time constant in the column TAU. The global linearity correction is computed for every pixel below the global linearity limit specified by iteratively solving the equation
to get the true count rate N.
The LOCAL_LIMIT can actually be much higher than the global limit and is difficult to correct using a simple algorithm. Each pixel found to exceed this limit will simply be marked as non-linear in the DQ file. This DQ flag will be extended by a fixed radius from the original pixel, given in the EXPAND column and is currently set to 2 pixels.
If the LFLGCORR switch is set to PERFORM, ACS2D will flag excessive global and local nonlinearity in the DQ array. If GLINCORR is set to PERFORM, it will correct excessive global nonlinearity in the SCI array, if it is not too large. If the global linearity limit is exceeded, the keyword GLOBLIM in the SCI extension header will be set to "EXCEEDED". Otherwise, it will have the value "NOT-EXCEEDED".
doDark - Dark Image Subtraction
- Header Switch: DARKCORR
- Header Keywords Updated: MEANDARK
- Reference File: DARKFILE (*_drk.fits)
This task is responsible for subtracting the dark image from the input image. For CCD data, the dark image (in electron s-1) is multiplied by the exposure time and then divided by the gain before subtracting. (MAMA data do not require a gain correction.) The dark reference file, DARKFILE, is read in line-by-line and subtracted from the input image in memory. The mean dark value is then computed from the scaled dark image and used to update the MEANDARK keyword in the SCI image header. The "dark time" is simply the exposure time; it does NOT include the idle time since the last flushing of the chip or the readout time. Any dark accumulation during readout time or post-flash idle will be included automatically into the BIASFILE.
A unique dark reference file is created (approximately) daily using four 1000 sec frames for both the WFC and HRC. The four darks are combined (with cosmic ray rejection) and bias-corrected to form a "daydark". Every two weeks, a high signal-to-noise "basedark" is created from all the frames (~56) in that period. It does not contain the newest hot pixels present in the daydarks since they are rejected with the cosmic rays during image combination. A copy of the basedark is made for each day in the two-week period, and daily hot pixels are skimmed from the respective daydarks and added to the basedark copies. Only the hot pixels above 0.08 e-/sec are identified with flag 16 in the data quality (DQ) array of WFC and HRC reference darks, which propagates to the DQ array of the calibrated science data. The flagged hot pixels are typically excluded in subsequent processing steps, as they are likely too noisy to be correctable. But the many "warm" pixels below this threshold are assumed to be adequately corrected by the dark calibration. This produces a reference file with high signal-to-noise, which accurately reflects (and corrects/flags) the hot pixels present for a given observation date. The "best" dark file is typically not available in the pipeline until 2-3 weeks after the date of observation, because it takes a few weeks to collect enough frames to make a basedark (see ACS ISR 04-07 for more information).
The reference file for dark subtraction, DARKFILE, is selected based on the values of the keywords DETECTOR, CCDAMP, and CCDGAIN in the image header. The dark correction is applied after the overscan regions are trimmed from the input science image. As for the BIASFILE, CALACS assumes that the images have not been binned, so any input image smaller than the full detector size will be interpreted as a sub-array image.
Sub-array science images will use the same reference file as a full-sized image. CALACS simply extracts the appropriate region from the reference file and applies it to the sub-array input image.
doFlat - Flat field image(s) Correction
- Header Switch: FLATCORR
- Header Keywords Updated: None
- Reference File: PFLTFILE (*_pfl.fits), LFLTFILE (*_lfl.fits), DFLTFILE (*_dfl.fits), CFLTFILE (*_ctl.fits)
As done for STIS, the ACS doFlat routine corrects for pixel-to-pixel and large-scale sensitivity gradients across the detector by dividing the data by the flat field image. This contrasts with WFPC2 and NICMOS who deliver an "inverse" flat to the pipeline and then multiply the data by the flat field. When performing the flat field correction, CALACS multiplies by the gain so that the calibrated data will be in units of electrons.
Because of geometric distortion effects, the area of the sky seen by a given pixel is not constant, and therefore observations of a constant surface brightness object will have count rates per pixel that vary over the detector, even if every pixel has the same sensitivity. In order to produce images that appear uniform for uniform illumination, the flat fields make an implicit correction for the geometric distortion across the field that is equivalent to dividing each pixel by the optical distortion which is normalized to unity at the center of the field. A consequence of this procedure is that two stars of equal brightness do not have the same total counts after the flat fielding step. Thus, point source photometry extracted from a flat fielded image must be multiplied by the effective pixel area map, as shown in Figure 6.1. This correction is accounted for in pipeline processing by MultiDrizzle which uses the geometric distortion solution to correct all pixels to equal areas. Thus, in the drizzled images photometry is correct for both point and extended sources.
The flat field image used to correct the data is created using up to four flat field reference files: the pixel-to-pixel file (PFLTFILE), the low-order flat (LFLTFILE), the delta flat (DFLTFILE), and the coronagraphic spot flat (CFLTFILE). The PFLTFILE is a pixel-to-pixel flat field correction file containing the small scale flat field variations. The LFLTFILE is a low-order flat which will correct for any large-scale flat field variations across each detector. This file is stored as a binned image which is expanded when being applied by CALACS. The DFLTFILE is a delta-flat containing any needed changes to the small-scale PFLTFILE. The CFLTFILE is a spot mask which contains the vignetting patterns of the occulting spots and which is applied to coronagraphic observations only.
If the LFLTFILE, DFLTFILE, or CFLTFILE are not specified in the SCI header, only the PFLTFILE will be used for the flat field correction. If all four reference files are specified, they will be read in line-by-line and multiplied together to form a complete flat field correction image. Currently, the LFLTFILE and DFLTFILE flats are not used for ACS data. The PFLTFILE reference flat in the pipeline is actually a combination of the pixel-to-pixel flats taken during the ground calibration and the low-order flat correction derived in-flight. The CFLTFILE will be applied only when the OBSTYPE is equal to CORONAGRAPHIC.
All flat field reference images will be chosen based on the detector, amplifier, and filters used for the observation. Any sub-array science image will use the same reference file as a full-size image. CALACS will extract the appropriate region from the reference file and apply it to the sub-array input image.
doShad - Shutter Shading File Correction (skipped)
- Header Switch: SHADCORR
- Header Keywords Updated: None
- Reference File: SHADFILE (*_shd.fits)
The SHADCORR calibration switch is currently set to OMIT and is unlikely to be used in future versions of CALACS. Calibration data show that a shading correction is not needed for ACS data. For more information, refer to ACS ISR 03-03, "Stability and Accuracy of HRC and WFC Shutters" and to the report "WFC and HRC Shutter Shading and Accuracy" on the ACS Science and Engineering Team web site at:
http://acs.pha.jhu.edu/instrument/calibration/results/by_item/shutter/shading_accuracy_feb2001
The doShad routine applies the shutter shading correction image (SHADFILE) to the science data if SHADCORR is set to PERFORM. The input image is corrected for the differential exposure time across the detector caused by the shutter opening. This correction only has a significant effect on images with short exposure times (less than 10 seconds).
Pixels are corrected based on the exposure time using the relation:
.
The SHADFILE is selected using the DETECTOR keyword in the input science image. At present, this reference file is an over scanned-trimmed image, binned by a factor of 8 for each dimension, resulting in a 128x128 HRC and a 256x512 WFC SHADFILE.
The shutter shading correction can either be applied during ACS2D processing for single or REPEAT-OBS exposures or during cosmic-ray rejection in ACSREJ for CRSPLIT exposures.
doPhot - Photometry Keyword Calculation
- Header Switch: PHOTCORR
- Header Keywords Updated: PHOTMODE, OBSMODE, PHOTFLAM, PHOTZPT, PHOTPLAM, PHOTBW
- Reference Files: GRAPHTAB (*_tmg.fits), COMPTAB (*_tmc.fits)
Before photometry can be performed on ACS observations, a transformation from electrons to absolute flux units must be performed. CALACS follows the WFPC2 methodology for calculating the photometry keywords in the calibration pipeline. The calibration reference files, GRAPHTAB and COMPTAB, point to the SYNPHOT tables containing the latest ACS component tables. These tables contain the throughput as a function of wavelength for the various ACS detector and filter combinations. This reliance on SYNPHOT allows the ACS team to maintain the latest throughput files in SYNPHOT to keep CALACS up to date. For further discussion of SYNPHOT, refer to Chapter 3 of the HST Data Handbook Introduction.
The keywords PHOTMODE and OBSMODE are built to reflect the configuration of the instrument during the exposure. CALACS then uses the OBSMODE string with SYNPHOT to compute the total throughput array for the observation, based on the aperture and filter throughputs, and the photometry keywords: PHOTFLAM (the inverse sensitivity in units of erg s-1 cm-2 A-1 for 1 electron s-1), PHOTZPT (the Space Telescope magnitude zero point), PHOTPLAM (the bandpass pivot wavelength), and PHOTBW (the bandpass RMS width). Users who wish to convert calibrated images (in units of electrons) to flux units may simply divide the image by the exposure time and then multiply by the PHOTFLAM keyword. Drizzled DRZ images are already in units of electrons per second and may simply be multiplied by the PHOTFLAM value to attain flux units.
doStat - Image Statistics Determination
- Header Switch: STATFLAG
- Header Keywords Updated: NGOODPIX, GOODMIN, GOODMAX, GOODMEAN, SNRMIN, SNRMAX, SNRMEAN
- Reference File: None
This routine computes the number of pixels which are flagged as "good" in the data quality array. The minimum, mean, and maximum pixel values are then calculated for data flagged as "good" in both the science and error arrays. Similarly, the minimum, mean, and maximum signal-to-noise of "good" pixels is derived for the science array. These quantities are updated in the image header.
3.4.4 ACSSUM
- Header Switch: RPTCORR
- Header Keywords Updated: NCOMBINE, EXPTIME, EXPEND, ROOTNAME
- Reference File: None
ACSSUM sums a list of images one line at a time, using the association file to define the input. A straight pixel-to-pixel addition of the science values is applied, and the error calculated as the square root of the sum of the squares of the errors in the individual exposures. Note that for multiple exposures taken via REPEAT-OBS instead of the observationally equivalent CR-SPLIT, the final processed image is not cosmic-ray rejected.
The calibration switch RPTCORR is set to COMPLETE upon successful completion of the summation. In addition, the keywords NCOMBINE, EXPTIME, and EXPEND are adjusted to reflect the total of the summed images.