STScI Logo

Hubble Space Telescope
WFPC2 Drizzle Cookbooks

WFPC2 drizzling

See the WFPC2 drizzling overview and general tips, to find a cookbook and/or sample dataset that best represents your dataset, with regards to target placement and pointing strategy.

Cookbook for sub-sampled data with the target placed on the PC chip (only)

NOTE: You may use the c0m/c1m files you now receive from the archive 'as is', there is no need to convert them to GEIS format using STRFITS as mentioned below. If you have WFITS (c0f/c1f) data, then please follow the instructions for converting your data to GEIS (c0h/c1h) format. These instructions are intended for datasets where an optimally sub-sampling dither box pattern was used.

De-archive the science and data quality FITS files to your working directory. Make a uref directory and download the distortion reference files (IDCTAB and OFFTAB in your image headers) into it, and define your uref directory (set uref). Convert the files to GEIS format (with strfits), and make a list of input images (list_c0h):

> set uref = "/data/mymachine/uref/"
> strfits *c0f.fits "" ""
> strfits *c1f.fits "" ""
> ls u*c0h > list_c0h  (no blank lines!)

If your data are not all from the same visit, or otherwise did not use the same guide stars, you need to refine the image registration.

MultiDrizzle parameters

The following are sample parameters (with some rationale in the comments) for applying the geometric distortion correction, combining, and cleaning your dataset. Some of the default parameters are not listed here.

> unlearn multidrizzle  # reset all parameters to default values first

multidrizzle.input = '@list_c0h'  # input image list)
multidrizzle.output = 'ngc999_f555w'  # target_filter filenaming convention
multidrizzle.group = '1'  # process PC chip only
multidrizzle.build = no  # single-extension FITS output
multidrizzle.shiftfile = 'shifts.txt'  # apply measured delta-shifts, if relevant
multidrizzle.static = yes
multidrizzle.skysub = no
multidrizzle.driz_separate = yes
multidrizzle.driz_sep_outnx = 800
multidrizzle.driz_sep_outny = 800
multidrizzle.driz_sep_kernel = 'turbo'
multidrizzle.driz_sep_scale = 0.0455  # PC detector pixel scale
multidrizzle.driz_sep_pixfrac = 1.0
multidrizzle.driz_sep_rot = INDEF  # don't rotate north up for CR-detection
multidrizzle.driz_sep_fillval = -9.9  # arbitrary low value; easy to exclude
multidrizzle.driz_sep_bits = 0  # exclude all flagged pixels
multidrizzle.median = yes
multidrizzle.combine_type = 'median'
multidrizzle.combine_lthresh = '-8.8'  # exclude fill values from median
multidrizzle.blot = yes
multidrizzle.driz_cr = yes
multidrizzle.driz_cr_snr = '4.0 3.5'
multidrizzle.driz_combine = yes
multidrizzle.final_outnx = 1024
multidrizzle.final_outny = 1024
multidrizzle.final_kernel = 'square'
multidrizzle.final_scale = 0.03  # output pixels are ~60% of input pixels*
multidrizzle.final_pixfrac = 0.8 # shrink the drops a bit
multidrizzle.final_rot = 0.0   # rotate north up
multidrizzle.final_fillval = 0.0
multidrizzle.final_bits = 0
* There is some potential for confusion in that drizzle.scale is a unitless ratio (output/input scale), but in PyDrizzle and MultiDrizzle the units became absolute arcsec a few years ago. So if input PC pixels are 0.0455 arcsec, then 60% of that is 0.027 arcsec.

Inspect your output and iterate as needed

Look for under-rejection of cosmic rays, or over-rejection of real features (e.g. stellar cores) by blink-comparing the output drizzled image and weight map (drz_sci.fits and drz_weight.fits). You may need to adjust your rejection thresholds (driz_cr_snr), or grow the rejections and/or reject CTE tails (driz_cr_grow and driz_cr_ctegrow). Patterns in your weight map (ngc999_v_drz_weight.fits) may indicate that you need to adjust the scale and pixfrac. Send any questions or concerns to the STScI Help Desk (help@stsci.edu).