Full Changelog

2.4.1 (unreleased)

New Features

Other Changes and Additions

2.4.2 (2024-05-03)

New Features

Other Changes and Additions

  • Make ccdproc compatible with numpy 2. [#824]

Bug Fixes

2.4.1 (2023-05-30)

New Features

Other Changes and Additions

Bug Fixes

  • Fixes a crash when attempting to filter an already-empty ImageFileCollection, instead simply returning an empty ImageFileCollection. [#801]

  • Fixes minimum astropy version in installation requirements. [#799]

2.4.0 (2022-11-16)

New Features

Other Changes and Additions

  • The sigma clipping option in the image combiner now always uses the astropy sigma clipping function, and supports specifying the functions to use for estimating the center and deviation values as strings for common cases (which significantly improves performance). [#794]

  • The image combiner now allows the optional overwrite of the optional output FITS file. [#797]

Bug Fixes

2.3.1 (2022-05-09)

New Features

Other Changes and Additions

Bug Fixes

  • In python 3.7 the version method from packaging must be imported directly. [#786]

2.3.0 (2021-12-21)

Other Changes and Additions

  • The rebin function has been more clearly marked with a deprecation milestone. It will be removed in v3. [#780]

Bug Fixes

  • Fixes compatibility with astroscrappy version 1.1.0 and deprecates old keyword arguments no longer used by astroscrappy. [#777, #778]

2.2.0 (2021-05-24)

New Features

  • Image combination is faster for average and sum combine, and improves for all operations if the bottleneck package is installed. [#741]

  • Pixel-wise weighting can be done for sum and average combine. [#741]

Other Changes and Additions

Bug Fixes

  • When filtering an ImageFileCollection by keyword value, and not explicitly using a regex search pattern (regex_match=True), escape all special characters in the keyword value for a successful search. [#770]

  • Return mask and uncertainty from combine even if input images have no mask or uncertainty. [#775]

2.1.1 (2021-03-15)

New Features

  • Improve integration of ImageFileCollection with image combination and document that integration [#762]

Other Changes and Additions

  • Add memory_profiler as a test requirement [#739]

  • Updated test suite to use absolute, not relative imports [#735]

Bug Fixes

  • test_image_collection.py in the test suite no longer produces permanent files on disk and cleans up after itself. [#738]

  • Change Combiner to allow accepting either a list or a generator [#757]

  • ImageFileCollection now correctly returns an empty collection when an existing collection is filtered restrictively enough to remove all files. [#750]

  • Logging now preserves all of the arguments when the keyword argument names are not used. [#756]

2.1.0 (2019-12-24)

New Features

Other Changes and Additions

  • Remove astropy_helpers from the package infrastructure, which also changes how the tests are run and how the documentation is built. [#717]

Bug Fixes

  • Update units if gain is applied in cosmicray_lacosmic. [#716, #705]

2.0.1 (2019-09-05)

New Features

Other Changes and Additions

Bug Fixes

  • Move generation of sample directory of images to avoid importing pytest in user installation. [#699, #700]

2.0.0 (2019-09-02)

New Features

  • Allow initialization of ImageFileCollection from a list of files with no location set. [#374, #661, #680]

  • Allow identification of FITS files in ImageFileCollection based on content of the files instead of file name extension. [#620, #680]

  • Add option to use regular expression matching when filtering items in ImageFileCollection. [#480, #595, #682]

  • Added an option to disregard negative values passed to create_deviation and assume the error is represented by the read noise [#688]

  • Add filter method to ImageFileCollection that creates a new collection by filtering based on header keywords. [#596, #690]

Other Changes and Additions

  • Dropped support for Python 2.x and Astropy 1.x.

  • Removed deprecated property summary_info of ImageFileCollection.

  • Improved handling of large flags in the bitfield module. [#610, #611]

  • Improved the performance of several ImageFileCollection methods. [#599]

  • Added auto_logging configuration paramenter [#622, #90]

  • Added support for .fz,.bz2, .Z and .zip file formats in ImageFileCollection. [#623, #644]

  • Modified weights function to also accept 1D array in Combiner. [#634, #670]

  • Added warning that transform_image does not apply the transformation to the WCS [#684]

  • When creating a new object in wcs_transform, WCS keywords in the header are removed so that they are only stored in the WCS object [#685]

  • Improved warning for negative values in the array passed to create_deviation [#688]

  • Removed support for initializing ImageFileCollection from a table instead of files. [#680]

  • More consistent typing of ImageFileCollection.summary when the collection is empty. [#601, #680]

Bug Fixes

  • Function median_combine now correctly calculates the uncertainty for masked CCDData. [#608]

  • Function combine avoids keeping files open unnecessarily. [#629, #630]

  • Function combine more accurately estimates memory use when deciding how to chunk files. [#638, #642]

  • Raise ValueError error in subtract_dark for when the errors have different shapes [#674, #677]

  • Fix problem with column dtypes when initializing ImageFileCollection from a list of file names. [#662, #680]

1.3.0 (2017-11-1)

New Features

  • Add representation for ImageFileCollection. [#475, #515]

  • Added ext parameter and property to ImageFileCollection to specify the FITS extension. [#463]

  • Add keywords.deleter method to ImageFileCollection. [#474]

  • Added glob_include and glob_exclude parameter to ImageFileCollection. [#484]

  • Add bitfield_to_boolean_mask function to convert a bitfield to a boolean mask (following the numpy conventions). [#460]

  • Added gain_corrected option in ccd_process so that calibration files do not need to previously been gain corrected. [#491]

  • Add a new wcs_relax argument to CCDData.to_header() that is passed through to the WCS method of the same name to allow more flexible handing of headers with SIP distortion. [#501]

  • combine now accepts numpy.ndarray as the input img_list. [#493, #503]

  • Added sum option in method for combime. [#500, #508]

  • Add norm_value argument to flat_correct that allows the normalization of the flat frame to be manually specified. [#584, #577]

Other Changes and Additions

  • removed ability to set unit of CCDData to None. [#451]

  • deprecated summary_info property of ImageFileCollection now raises a deprecation warning. [#486]

  • Logging will include the abbreviation even if the meta attribute of the processed CCDData isn’t a fits.Header. [#528]

  • The CCDData class and the functions fits_ccddata_reader and fits_ccddata_writer will be imported from astropy.nddata if astropy >= 2.0 is installed (instead of the one defined in ccdproc). [#528]

  • Building the documentation requires astropy >= 2.0. [#528]

  • When reading a CCDData from a file the WCS-related keywords are removed from the header. [#568]

  • The info_file argument for ImageFileCollection is now deprecated. [#585]

Bug Fixes

  • ImageFileCollection now handles Headers with duplicated keywords (other than COMMENT and HISTORY) by ignoring all but the first. [#467]

  • The ccd method of ImageFileCollection will raise an NotImplementedError in case the parameter overwrite=True or clobber=True is used instead of silently ignoring the parameter. [#527]

  • The sort method of ImageFileCollection now requires an explicitly given keys argument. [#534]

  • Fixed a problem with CCDData.read when the extension wasn’t given and the primary HDU contained no data but another HDU did. In that case the header were not correctly combined. [#541]

  • Suppress errors during WCS creation in CCDData.read(). [#552]

  • The generator methods in ImageFileCollection now don’t leave open file handles in case the iterator wasn’t advanced or an exception was raised either inside the method itself or during the loop. [#553]

  • Allow non-string columns when filtering an ImageFileCollection with a string value. [#567]

1.2.0 (2016-12-13)

ccdproc has now the following additional dependency:

  • scikit-image.

New Features

  • Add an optional attribute named filenames to ImageFileCollection, so that users can pass a list of FITS files to the collection. [#374, #403]

  • Added block_replicate, block_reduce and block_average functions. [#402]

  • Added median_filter function. [#420]

  • combine now takes an additional combine_uncertainty_function argument which is passed as uncertainty_func parameter to Combiner.median_combine or Combiner.average_combine. [#416]

  • Added ccdmask function. [#414, #432]

Other Changes and Additions

  • ccdprocs core functions now explicitly add HIERARCH cards. [#359, #399, #413]

  • combine now accepts a dtype argument which is passed to Combiner.__init__. [#391, #392]

  • Removed CaseInsensitiveOrderedDict because it is not used in the current code base. [#428]

Bug Fixes

  • The default dtype of the combine-result doesn’t depend on the dtype of the first CCDData anymore. This also corrects the memory consumption calculation. [#391, #392]

  • ccd_process now copies the meta of the input when subtracting the master bias. [#404]

  • Fixed combine with CCDData objects using StdDevUncertainty as uncertainty. [#416, #424]

  • ccds generator from ImageFileCollection now uses the full path to the file when calling fits_ccddata_reader. [#421 #422]

1.1.0 (2016-08-01)

New Features

  • Add an additional combination method, clip_extrema, that drops the highest and/or lowest pixels in an image stack. [#356, #358]

Other Changes and Additions

  • cosmicray_lacosmic default satlevel changed from 65536 to 65535. [#347]

  • Auto-identify files with extension fts as FITS files. [#355, #364]

  • Raise more explicit exception if unit of uncalibrated image and master do not match in subtract_bias or subtract_dark. [#361, #366]

  • Updated the Combiner class so that it could process images with >2 dimensions. [#340, #375]

Bug Fixes

  • Combiner creates plain array uncertainties when using``average_combine`` or median_combine. [#351]

  • flat_correct does not properly scale uncertainty in the flat. [#345, #363]

  • Error message in weights setter fixed. [#376]

1.0.1 (2016-03-15)

The 1.0.1 release was a release to fix some minor packaging issues.

1.0.0 (2016-03-15)


  • ccdproc has now the following requirements:

    • Python 2.7 or 3.4 or later.

    • astropy 1.0 or later

    • numpy 1.9 or later

    • scipy

    • astroscrappy

    • reproject

New Features

  • Add a WCS setter for CCDData. [#256]

  • Allow user to set the function used for uncertainty calculation in average_combine and median_combine. [#258]

  • Add a new keyword to ImageFileCollection.files_filtered to return the full path to a file [#275]

  • Added ccd_process for handling multiple steps. [#211]

  • CCDData.write now writes multi-extension-FITS files. The mask and uncertainty are saved as extensions if these attributes were set. The name of the extensions can be altered with the parameters hdu_mask (default extension name 'MASK') and hdu_uncertainty (default 'UNCERT'). CCDData.read can read these files and has the same optional parameters. [#302]

Other Changes and Additions

  • Issue warning if there are no FITS images in an ImageFileCollection. [#246]

  • The overscan_axis argument in subtract_overscan can now be set to None, to let subtract_overscan provide a best guess for the axis. [#263]

  • Add support for wildcard and reversed FITS style slicing. [#265]

  • When reading a FITS file with CCDData.read, if no data exists in the primary hdu, the resultant header object is a combination of the header information in the primary hdu and the first hdu with data. [#271]

  • Changed cosmicray_lacosmic to use astroscrappy for cleaning cosmic rays. [#272]

  • CCDData arithmetic with number/Quantity now preserves any existing WCS. [#278]

  • Update astropy_helpers to 1.1.1. [#287]

  • Drop support for Python 2.6. [#300]

  • The add_keyword parameter now has a default of True, to be more explicit. [#310]

  • Return name of file instead of full path in ImageFileCollection generators. [#315]

Bug Fixes

  • Adding/Subtracting a CCDData instance with a Quantity with a different unit produced wrong results. [#291]

  • The uncertainty resulting when combining CCDData will be divided by the square root of the number of combined pixel [#309]

  • Improve documentation for read/write methods on CCDData [#320]

  • Add correct path separator when returning full path from ImageFileCollection.files_filtered. [#325]

0.3.3 (2015-10-24)

New Features

  • add a sort method to ImageFileCollection [#274]

Other Changes and Additions

  • Opt in to new container-based builds on travis. [#227]

  • Update astropy_helpers to 1.0.5. [#245]

Bug Fixes

  • Ensure that creating a WCS from a header that contains list-like keywords (e.g. BLANK or HISTORY) succeeds. [#229, #231]

0.3.2 (never released)

There was no 0.3.2 release because of a packaging error.

0.3.1 (2015-05-12)

New Features

  • Add CCDData generator for ImageCollection [#405]

Other Changes and Additions

  • Add extensive tests to ensure ccdproc functions do not modify the input data. [#208]

  • Remove red-box warning about API stability from docs. [#210]

  • Support astropy 1.0.5, which made changes to NDData. [#242]

Bug Fixes

  • Make subtract_overscan act on a copy of the input data. [#206]

  • Overscan subtraction failed on non-square images if the overscan axis was the first index, 0. [#240, #244]

0.3.0 (2015-03-17)

New Features

  • When reading in a FITS file, the extension to be used can be specified. If it is not and there is no data in the primary extension, the first extension with data will be used.

  • Set wcs attribute when reading from a FITS file that contains WCS keywords and write WCS keywords to header when converting to an HDU. [#195]

Other Changes and Additions

  • Updated CCDData to use the new version of NDDATA in astropy v1.0. This breaks backward compatibility with earlier versions of astropy.

Bug Fixes

  • Ensure dtype of combined images matches the dtype of the Combiner object. [#189]

0.2.2 (2014-11-05)

New Features

Other Changes and Additions

  • Added Changes to the docs [#183]

Bug Fixes

  • Allow the unit string “adu” to be upper or lower case in a FITS header [#182]

0.2.1 (2014-09-09)

New Features

  • Add a unit directly from BUNIT if it is available in the FITS header [#169]

Other Changes and Additions

  • Relaxed the requirements on what the metadata must be. It can be anything dict-like, e.g. an astropy.io.fits.Header, a python dict, an OrderedDict or some custom object created by the user. [#167]

Bug Fixes

  • Fixed a new-style formating issue in the logging [#170]

0.2 (2014-07-28)

  • Initial release.