The MultiDrizzle Handbook


5.1 Available Software

Several software packages have been developed to implement the drizzle algorithm, to correct images for distortion, to identify cosmic rays and to align and combine images into a cosmic ray cleaned, distortion-free product. The software was originally developed as a set of Fortran routines which were available both as stand-alone executables and as IRAF tasks in the Dither package. The original drizzle software was developed as a collaborative effort by Andy Fruchter and Richard Hook. The main code was written in Fortran77 and incorporated into IRAF with STSDAS v2.0, inside the Dither package. This set of code formed the basis for a more automated task for aligning images to produce distortion-corrected images; namely, the Python task PyDrizzle (Section 5.3). Finally, all the steps required to identify cosmic rays using the aligned images produced by PyDrizzle were automated in the Python task MultiDrizzle (Section 5.4). The Python tasks can only be run from the PyRAF environment while the original IRAF tasks can be run from either PyRAF or the original IRAF command language (also known as the "cl").

5.1.1 Original IRAF Tasks

There are many tasks which are available in the PyRAF dither package. Many of them represent the original interface to the drizzle codeset in IRAF and are no longer supported - though their functionality has been included in the new scripts which are used by PyDrizzle and MultiDrizzle. It is important for the user to realize that use of the non-supported functions may result in inferior output products since the most current updates to the code and methodology are only implemented in the Python functions called by PyDrizzle and MultiDrizzle.

The following functions are the original IRAF interface routines and are no longer being fully supported:

    avshift - Averages the shifts measured on the 4 WFPC chips.
 crossdriz - Builds a set of cross-correlation images 
             (shift + rotation).
     deriv - Take the absolute derivative of an image.
   driz_cr - Create cosmic ray mask based for dithered data. 
 loop_blot - Runs blot for a given list of input and output images.
 loop_driz - Runs drizzle for a list of input, output, 
             and mask images.
   offsets - Builds cross-correlation image (shift only).
 mask_head - Attach mask names to image headers; 
             invert mask if requested
    precor - cosmic ray processing.
   rotfind - Finds rotation angle from a set of cross-correlation 
 shiftfind - Finds X,Y shifts in a cross-correlation image.
  dunlearn - Resets all task parameters to default values. 
     gprep - Transform shifts for one WFPC2 chip into 
             parameters for mosaicing all four chips.
 wfpc2_chips @ parameter set for 'avshift' and 'gprep' tasks.
       cdriz @ parameter set for the 'offsets' task.

5.1.2 Currently Supported Tasks

The latest developments in the dither package have focused on automating the functionality of the original separate IRAF tasks. The native IRAF tasks which are still fully supported include:

       drizzle - Perform linear image reconstruction using "drizzling".
         blot - Image sampling using interpolation 
                (reverse "drizzling").
         tran - Transform coordinates taking into account distortion
     tranback - Transform an X,Y position from output to 
                input pixel position 
                using the same conventions as drizzle
        traxy - Transform an X,Y position from input to output 
                pixel position using the same conventions as drizzle
       wcs2dr - Convert WCS header information into drizzle 
                 parameters for image registration

A majority of the new task development has been done by writing the new tasks in Python. These new tasks use PyRAF to provide an IRAF EPAR interface to use them as if they were native IRAF tasks. These Python tasks can only be run under PyRAF or directly under Python itself, and include:

  multidrizzle - Automated Python task for performing 
                cosmic ray rejection
    pydrizzle - Automated Python-based interface for 
                the "drizzle" task
  tweakshifts - Compute residual shifts between images
      xytosky - Translate a 2-D image pixel coordinate to right 
                ascension and declination, optionally applying the 
                distortion coefficients for the detector.
       wtraxy - Transform an X,Y position from input to output pixel
                position using the same conventions as drizzle,
                with WCS and list support
    wtranback - Transform an X,Y position from output to input
                pixel position using the same conventions as 
                drizzle - with WCS and list input support
        wblot - Image Sampling using Interpolation - reverse 
                Drizzle version with WCS support

5.1.3 Supplemental Tasks

The last set of tasks involve operations which are generally useful, but not directly involved in image alignment or coordinate transformations. These are supporting PyRAF tasks which may still aid the user in preparing and analyzing their datasets:

      cgsky - Compute sky using `gsky' plus a correction for 
             histogram truncation.
      gsky - Compute sky using the same mode algorithm used 
             in task "crrej".
 imextreme - Locates the maximum and minimum pixels in an image.
       sky - Sky processing by "crrej-like" algorithm.\
        dq @ parameter set for the 'sky' task.

These tasks, however, have been written as native IRAF tasks and have been known to have problems with some datasets. Problems with any of the tasks in the Dither package can be reported to

Space Telescope Science Institute
Voice: (410) 338-1082