Multidrizzle Revision History
-----------------------------
Version 2.7.2: 01/09/06 -- WJH
    (OPR 54944)
    MultiDrizzle was modified to treat ACS (and STIS) images which have
    NGOODPIX == 0 as if they had EXPTIME==0.  This usually only happens
    when the entire image gets saturated as detected by CALACS (or CALSTIS),
    and would cause 'createMedian' to crash when included.
    
Version 2.7.1: 12/27/05 -- CJH
    In the driz_cr module, we have added a message to warn users that the 
    SNR and scale parameters only use 2 input values when more than two
    values are provided.  This was done to address an issue where users
    believed that they could input any number of values.

Version 2.6.7: 09/08/05 -- WJH
    The 'wt_scl' values used for IVM and ERR weight type specifications
    now gets computed as (plist['exptime']**2/plist['scale']**4) rather than
    just the exptime.  This comes as a result of Anton Koekemoer's testing.
    
    Update to PyDrizzle 5.5.6 as well, which includes (among other things)
    changes to properly register output with reference image when 'refimage' 
    has been specified and setting up blot output images with sizes specific
    to each input (OPR 54414).
    
Version 2.6.6: 06/20/05 -- WJH
    (OPR 53859)
    The manager 'createMedian' method in the ImageManger class (manager.py) 
    was modified to use a new IterFitsFile class for each input and a new
    image iterator based on the IterFitsFile class, FileIter.  These new classes
    manage the file I/O internally for each input, only opening/closing upon
    each request for data so that only 1 file handle remains open at any one
    time regardless of the number of inputs.
Version 2.6.5: 06/02/05 -- DMG
    Added parameters driz_cr_grow and driz_cr_ctegrow to mask cte tails
    in cosmic rays using an instrument-dependent calculation of the direction
    of the cte tail.
    
Version 2.6.4: 05/06/05 -- CJH
    Modified the fix to the EXPTIME zero problem in Multidrizzle 2.6.3 to
    remove delete the temporary assocation table that was created when
    processing has completed.

Version 2.6.3: 05/05/05 -- CJH
    Modified _setupAssocation to handle the case where memebers of an ACS 
    assocation file need to be removed from the assocation table passed to 
    PyDrizzle because they have EXPTIME values of zero.

Version 2.6.2: 04/19/05 -- WJH
    - (OPR 53467)
    The output from MultiDrizzle now reports the versions of MultiDrizzle,
    PyDrizzle, numarray and PyFITS in history cards in the output file's
    primary header.
    
    - This version corresponds to a new version of PyDrizzle, Version 5.5.1.

Version 2.6.1: 04/14/05 -- WJH
    This new version of Multidrizzle is actually a PyDrizzle update.  The Pydrizzle update
    addresses the following issues:

    - Pydrizzle creates invlaude simple FITS output files (PR #53342).

    - Multidrizzle problem processing WFPC2 data (PR #53113).

    - Makewcs raises exception about not finding OCD1_1 (PR #53418).

    - Pydrizzle does not support output products with units of counts (PR #53421).

    - Alignment problem with PyDrizzle and no distorion coeffs (PR #53422).

Version 2.6.0: 04/05/05 -- CJH
    A bug in which the driz_cr step would created invalid simple FITS format files for
    the *_cor.fits and *_crmask.fits products has been corrected.  This fix addresses
    PR #53344

    The mdrizpars module was modified to support new return types from pyfits 0.9.8.1
    for column definitions.  In previous versions of pyfits the return types were 
    based upon numarray types.  Now, the return types are FITS standards.  This fix
    addresses PR #53365

    The the minmed algorithm was modified such that the first median
    image created would ignore the use of nhigh = 1 clipping if using it
    would result in no image data for that pixel location.  This addresses
    PR #53317.

    The a new "clipped" minimum combination algorithm has been added as an
    option to the CREATE MEDIAN step.  This new feature requires that
    NUMARRAY version 1.3 or later be installed.  If the appropriate NUMARRAY
    version is not installed, a minimum image will still be computed but
    not "clipping" will be done.  A warning message is issued to indicate
    that no clipping is done in this condition.  This modification address
    PR #53323.

Version 2.5.6: 03/25/05 -- CJH
    The calling to the _setOutputFrame() method from within the doDrizSeparate() method
    of the ImageManager class has been removed.  Instead it is executed directly from
    the run() method of __init__ to allow for a restart capability at the Blot step.

    The ASN_MTYP keyword is now set to "PROD-DTH" in the "empty" DRZ product that 
    Multidrizzle creates when all entries of the input association table have
    zero exptime.  This fix is to address PR #53285.

Version 2.5.5: 03/10/05 -- CJH
    The createMedian method withing the ImageManager class has been modified
    to compute the mean value of the singe weight images using imagestats
    instead of the numarray mean method.  This allows the mean to be computed
    ignoring the 0 pixel value buffer pixels.  This prevents those pixels
    from biasing the mean of the weight image towards a lower value than
    it really has.

Version 2.5.4: 03/09/05 -- CJH
    The internal Multidrizzle method _checkInputFiles() has been modified
    to search for SPT files when a PA_V3 value has not been found in primary
    header of input files.  The process Multidrizzle now follows are:
    1) Check the primary header for a PA_V3 value.  If found, run MAKEWCS
    2) If the PA_V3 value not found in the primary header of the input file,
    guess at what the name of the corresponding SPT file would be.  If the
    SPT file can be found, extract the PA_V3 value from the SPT file and 
    add it to the primary header of the input file.  Then run MAKEWCS.
    3) If the PA_V3 value cannot be found anywhere.  Issue and error message
    explaining why Multidrizzle cannot run and exit.

Version 2.5.3: 03/02/05 -- CJH
    The default for the runfile parameter is now the empty string ''.  If
    no value is provided for runfile, the default behavior for multidrizzle
    will be to create a runfile name based upon the rootname for the output
    DRZ product.

    A user supplied static mask file will now be applied even if the STATIC 
    MASK step is turned off.  In earlier version of Multidrizzle a user
    supplied static mask would not be applied if STATIC MASK was not run.

Version 2.5.2: 02/10/05 -- CJH/WJH
    Bug that resulted in a context image always being created for the final
    drizzle step was corrected.

Version 2.5.1: 02/07/05 -- CJH/WJH
    Warning messages for ACS and STIS images rejected for having EXPTIME
    values of zero have been added.

    MAKEWCS has been modfied to compute appropriate solutions for sub-array
    data.  Changes were necessary in the wcsutil module of Pydrizzle as well.

    The in pydrizzle's fileutil module the readASNTable has been modified to
    ignore association table entries with memprsnt keyword value of 'F'.

    The bugs in the Python GUI Multidrizzle interface that prevented
    changes to input parameters were corrected.

    Correct a problem in the IRAF interface that prevented the input of
    optional parameters that are of type float or int.

Version 2.5.0: 01/31/05 -- CJH/WJH
    Added separate parameters for the bits parameters for single and final
    drizzle processing, while retaining backwards compatibility with existing
    MDRIZTAB files.  The EPAR parameter 'bits' was removed as well.  
    
    Moved the location of the 'staticfile' parameter from createStatic mask
    step to the general parameters section.  No functional changes were 
    implemented in the code yet for 'staticfile' support. 

Version 2.4.3: 01/21/05 -- CJH 
    Exposed the wt_scl parameter in both the single and final drizzle steps.
    The default for this parameter is "exptime".  This was done to
    support the drizzling of NICMOS data.

    Corrected a bug in the __init__ _parseinput method that prevented the
    use of '@' files with IVM file entries.

    Corrected a bug that prevented the use of the new BITS parameter 
    feature with identical BITS entires for the single and final drizzle
    steps.

Version 2.4.2: 01/18/05 -- CJH
    Corrected a Multidrizzle bug in the handling of NICMOS unit conversions.
    Multidrizzle can now accept NICMOS data in counts or counts per second.
    Also, the TIME array is no longer used to scale the data on input, only
    the exptime keyword is used.

    A change to the paseinput module now allows NICMOS '_asc.fits' files
    as input.

Version 2.4.1: 01/17/05 -- CJH
    Modified Multidrizzle to accept the use of different BITS values
    for the single and final drizzle steps.

Version 2.4.0: 01/10/05 -- CJH
    1) INTRODUCTION:
    ----------------
    An updated version (2.4.0) of Multidrizzle is now 
    available under 'irafdev'. This version of 
    Multidrizzle will be available under 'irafx' 
    beginning next Monday.


    2) GENERAL BUG FIXES AND ENHANCEMENTS
    -------------------------------------
    This version of the Multidrizzle software contains 
    the following changes:

    1) A bug in the use of a user supplied static mask 
    file has been corrected.  While making this fix we 
    changed the format requirements of these files to 
    generalize them for use with WFPC2, STIS, and
    NICMOS instead of just ACS.

    In earlier versions, the static mask had to be in 
    the exact format of an ACS file, having a "SCI",
    "DQ", and "ERR" extension.  Since this is not 
    particularly suitable for WFPC2 or NICMOS data, we
    have modified Multidrizzle to look for an extname 
    of "MASK" in an input file.  ACS would need an 
    input file with two "MASK" extensions.  A NICMOS
    CAL file would need only one "MASK" extension.

    2) Multidrizzle will not include input images
    with EXPTIME values of 0.0 in its processing.
    These images will be removed from the list
    of input images and a warning message displayed
    explaining why the images were removed and
    instructing the user how to correct the problem.
    If all images are rejected by Multidrizzle for
    this reason then multidrizzle will print an
    ERROR message and exit while creating an empty
    DRZ product.  This problem will not usually affect
    the casual user.  This fix was designed
    specifically for dealing with problems in the HST
    pipeline.

    3) Better error trapping and expanded error 
    messages have been included with this version of
    Multidrizzle.  We have tried to test for the most
    common user errors and give messages that explain
    the problems and, where appropriate, how to
    correct the errors.

    4) Multidrizzle no longer allows for the implicit
    use of wild-cards in an input string.  This means
    the a user will need to specify "*flt.fits"
    instead of "flt.fits" for the input parameter.  
    This was done to avoid errors in including too
    many files on input and to take advantage of the
    Python 'glob' package.


    3) STIS ENHANCEMENTS / TESTING NEEDS
    ------------------------------------
    Multidrizzle 2.4.0 now allows for the use of STIS
    association files as input.  These files will be
    automatically split into separate files prior to 
    processing by Multidrizzle.  These files will be
    named "rootname_flt_extnX.fits" where X represents
    the original extension number of the input file.


    4) WFPC2 ENHANCEMENTS / TESTING NEEDS 
    -------------------------------------
    Multidrizzle 2.4.0 fixes a problem where shift 
    information provided for WFPC2 data files in
    the GEIS format was discarded during the 
    conversion to the multi-extension FITS format.


Version 2.3.7: 11/08/04 -- WJH
    Methods were added to Manager to update the header of the final
    output product to report the MDRIZSKY values in HISTORY cards.
    
    PyDrizzle was also updated to correct the 'build=no'/'clean=yes'
    problem (where the output files were deleted), and to properly
    report the EXPTIME value for the D00*WTSC keyword.

Version 2.3.6: 10/13/04 -- WJH/CJH
    Have updated the minmed.py module to improve error handling and
    reporting in the case when the boxcar convolution within minmed
    fails.  

    Manager was updated to use an overlap region when
    iterating through images in the combine_median step.  This is
    to insure that the section size used is always at least as large
    as the kernel uxed in the boxcar for minmed.

    Finally, nimageiterator was modified to apply overlap regions
    correctly.

Version 2.3.5: 10/08/04 -- CJH
    Have updated the mdrizpars.py module with new default parameter
    values as specfied by Anton Koekmoer.

Version 2.3.4: 10/05/04 -- CJH/WJH
    Added logic to treat STIS sky subtraction differently than all
    other instruments. 

Version 2.3.3: 09/30/04 -- CJH
    Modified the DrizCR rountines to include the input image's combined
    primary and extension headers in the primary header of the resulting 
    cor and cr mask files.

Version 2.3.2: 09/28/04 -- CJH
    Updated versionInfo in __init__.py file to catch the case when
    pyraf is unable to be imported.

Version 2.3.1: 09/21/04 --- CJH/WJH
    Initial release of the redesigned Multidrizzle release to the larger
    STScI user community.  Earlier version of the code were dedicated
    efforts for installation in the ACS OPUS 15.4 calibration pipeline.
    The version of Multidrizzle delivered to OPUS 15.4 is v2.2.1.  This
    inital offereing to STScI differes from the v2.2.1 in that it has
    support for STIS and NICMOS data and an improved version of Pydrizzle
    that better supports sub-arrays.

