ccdproc.cosmicray_median(ccd, error_image=None, thresh=5, mbox=11, gbox=0, rbox=0)[source]

Identify cosmic rays through median technique. The median technique identifies cosmic rays by identifying pixels by subtracting a median image from the initial data array.


ccd : CCDData, numpy.ndarray or

Data to have cosmic ray cleaned.

thresh : float, optional

Threshold for detecting cosmic rays. Default is 5.

error_image : numpy.ndarray, float or None, optional

Error level. If None, the task will use the standard deviation of the data. If an ndarray, it should have the same shape as data. Default is None.

mbox : int, optional

Median box for detecting cosmic rays. Default is 11.

gbox : int, optional

Box size to grow cosmic rays. If zero, no growing will be done. Default is 0.

rbox : int, optional

Median box for calculating replacement values. If zero, no pixels will be replaced. Default is 0.


nccd : CCDData or numpy.ndarray

An object of the same type as ccd is returned. If it is a CCDData, the mask attribute will also be updated with areas identified with cosmic rays masked.

nccd : numpy.ndarray

If an numpy.ndarray is provided as ccd, a boolean ndarray with the cosmic rays identified will also be returned.


Similar implementation to crmedian in iraf.imred.crutil.crmedian.


  1. Given an numpy.ndarray object, the syntax for running cosmicray_median would be:

    >>> newdata, mask = cosmicray_median(data, error_image=error,
    ...                                  thresh=5, mbox=11,
    ...                                  rbox=11, gbox=5)   

    where error is an array that is the same shape as data but includes the pixel error. This would return a data array, newdata, with the bad pixels replaced by the local median from a box of 11 pixels; and it would return a mask indicating the bad pixels.

  2. Given an CCDData object with an uncertainty frame, the syntax for running cosmicray_median would be:

    >>> newccd = cosmicray_median(ccd, thresh=5, mbox=11,
    ...                           rbox=11, gbox=5)   

    The newccd object will have bad pixels in its data array replace and the mask of the object will be created if it did not previously exist or be updated with the detected cosmic rays.