CCD48 v2.12

ccd48 is a scripted external layered package built for NOAO's IRAF (Image Reduction and Analysis Facility) software system for the semi-automated reduction of single-amplifier CCD data. The ccd48 package is an alternative to the built-in imred.ccdproc package. Its main task is ccd48proc, which calls several sub-tasks (modules) to:

  • initialize a set of WCS header keywords
  • fix bad pixels and columns by interpolation between good neighbours
  • correct for structure in the bias level
  • subtract the bias level as measured in the overscan strip
  • excise (trim) the exposed region of the detector
  • correct for non-zero dark current, using a dark frame or its mean
  • correct short exposures for shutter effects (presently only implemented for diaphragm shutters, e.g. VATT CCD camera)
  • correct for pixel-to-pixel variations in the sensitivity
  • correct for scattered light (present implementation is valid only for a problem with the FLWO 48" field-flattening lens in Fall 1995)
  • correct for variations in the illumination of the detector using an illumination frame

and to generate the zero-, dark-, response- and illumination-calibration frames (which includes fitting, normalization and image combination steps).

The ccd48 package was developed over the years while at the Kapteyn Astronomical Institute, the Harvard-Smithsonian Center for Astrophysics, ESA's ESTEC and at the Arizona State University. Although ccd48proc was written originally for the reduction of data obtained at the FLWO 48inch telescope at Mt.Hopkins (AZ) between March 1994 and March 1997 as part of the Nearby Field Galaxy Survey (Jansen et al. 2000, ApJS 126, 271), it was generalized over the years to accommodate any type of single-amplifier CCD data, including spectroscopic data. The few parameters that differ between instruments and CCDs are stored in four instrument specific files:

  1. a file named "ccd.subsets", which list relevant subsets that may exist for a given instrument, one per line. E.g., for a CCD camera, this may be a list of filters; for a spectrograph a list of (unique combinations of) gratings, slits, and/or filters.
  2. a file named "ccd.detector", which lists a short set of relevant CCD parameters, one per CCD or read-out mode, where the first 8 characters define an "alias" for that detector/read-out mode.
  3. files named "badpix.alias" listing bad pixels and pixel colums in the pre-IRAF2.11 bad pixel list format (ASCII text), one file per detector alias.
  4. a file named "shutter.alias" listing up to 8 coefficients of a polynomial fit to the shutter effect. If unknown or inappropiate for a given telescope, all values should be 0.00 .

Current examples of a detector identification files may be found in "ccd48$lib/" for several telescopes and instruments. For the VATT CCD camera at the Mt.Graham International Observatory, a valid 'ccdident' would be either "ccd26x1" or "ccd26x2", corresponding to the same CCD detector read either unbinned or binned 2x2. The CCD detector identification is used to choose the proper bad pixel file ("isdir$badpix.alias") and shutter-effect correction coefficient file ("isdir$shutter.alias").

The main conceptual difference with ccdproc in the noao.imred package is that ccd48proc is strictly modular and sequential, and the results of all intermediate steps along the reduction can be saved and inspected, and that the level of verbosity to the image headers and particularly to the various text log files is quite high. This facilitates tracing problems. It will work on only one type of data per invocation of the task (the user needs to choose one of "bias", "dark, "flat" (meaning: dome or pupil flat), "sky" (meaning: twilight flat), or "object"). The modular nature and the fact that the entire package is scripted makes custom tailoring and local adaptations for data from specific instruments easy. Another unique feature is the possibility to direct the entire reduction via image header keywords rather than task parameters. Although this feature is the newest addition and still under developement, it lends itself to pipeline reductions akin to those developed for space-based observatories like HST.

The flexibility of ccd48 comes at the expense of processing speed but, in the experience of the author, CPU cycles and even I/O are rarely the bottleneck in data processing (it would be an issue for true pipe-line processing of data from a well-understood instrument). Finally, as mentioned, this package is a work in progress and is provided here as is, and while useful to the author and students at ASU, no warranty is given as to its suitability, explicity or implied, for any particular use of purpose, ... in order words: the usual legalese! ;-)

Rolf A. Jansen -- Tempe (AZ), Sep 30 2003

Getting a copy of CCD48 v2.12

ccd48 (current version: 06Jul2004) may be downloaded as a single gzip-compressed tar archive here (~89 kb).

To install the package, 'gunzip' and 'untar' the tar archive in the /iraf/extern/ directory as user 'iraf' (IRAF administrator account):

        gunzip ccd48_2.12_version.tgz        (Unix and Linux)
        tar xvpf ccd48_2.12_version.tar
    or:
        gtar -xvpzf ccd48_2.12_version.tgz   (Linux)

Then, tell IRAF about the existence of the ccd48 package, by inserting the following lines in file /iraf/iraf/unix/hlib/extern.pkg before the definition of the helpdb paths:

reset   ccd48           = /iraf/extern/ccd48_2.12/
task    ccd48.pkg       = ccd48$ccd48.cl
and in the definition of the helpdb paths, add:
                          ,ccd48$lib/helpdb.mip\

Note that package ccd48 requires layered package rjtools to be installed as well.



Last updated: Jul 7, 2004


Back to the top of this page.
In case of problems with this page, contact: Rolf.Jansen@asu.edu , tel.: (+1)480 727 7119