LSST Applications
21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
|
Functions | |
def | createPsf (fwhm) |
def | transposeMaskedImage (maskedImage) |
def | interpolateDefectList (maskedImage, defectList, fwhm, fallbackValue=None) |
def | makeThresholdMask (maskedImage, threshold, growFootprints=1, maskName='SAT') |
def | growMasks (mask, radius=0, maskNameList=['BAD'], maskValue="BAD") |
def | interpolateFromMask (maskedImage, fwhm, growSaturatedFootprints=1, maskNameList=['SAT'], fallbackValue=None) |
def | saturationCorrection (maskedImage, saturation, fwhm, growFootprints=1, interpolate=True, maskName='SAT', fallbackValue=None) |
def | trimToMatchCalibBBox (rawMaskedImage, calibMaskedImage) |
def | biasCorrection (maskedImage, biasMaskedImage, trimToFit=False) |
def | darkCorrection (maskedImage, darkMaskedImage, expScale, darkScale, invert=False, trimToFit=False) |
def | updateVariance (maskedImage, gain, readNoise) |
def | flatCorrection (maskedImage, flatMaskedImage, scalingType, userScale=1.0, invert=False, trimToFit=False) |
def | illuminationCorrection (maskedImage, illumMaskedImage, illumScale, trimToFit=True) |
def | overscanCorrection (ampMaskedImage, overscanImage, fitType='MEDIAN', order=1, collapseRej=3.0, statControl=None, overscanIsInt=True) |
def | brighterFatterCorrection (exposure, kernel, maxIter, threshold, applyGain, gains=None) |
def | gainContext (exp, image, apply, gains=None) |
def | attachTransmissionCurve (exposure, opticsTransmission=None, filterTransmission=None, sensorTransmission=None, atmosphereTransmission=None) |
def | applyGains (exposure, normalizeGains=False, ptcGains=None) |
def | widenSaturationTrails (mask) |
def | setBadRegions (exposure, badStatistic="MEDIAN") |
def | checkFilter (exposure, filterList, log) |
def | getPhysicalFilter (filterLabel, log) |
def lsst.ip.isr.isrFunctions.applyGains | ( | exposure, | |
normalizeGains = False , |
|||
ptcGains = None |
|||
) |
Scale an exposure by the amplifier gains. Parameters ---------- exposure : `lsst.afw.image.Exposure` Exposure to process. The image is modified. normalizeGains : `Bool`, optional If True, then amplifiers are scaled to force the median of each amplifier to equal the median of those medians. ptcGains : `dict`[`str`], optional Dictionary keyed by amp name containing the PTC gains.
Definition at line 746 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.attachTransmissionCurve | ( | exposure, | |
opticsTransmission = None , |
|||
filterTransmission = None , |
|||
sensorTransmission = None , |
|||
atmosphereTransmission = None |
|||
) |
Attach a TransmissionCurve to an Exposure, given separate curves for different components. Parameters ---------- exposure : `lsst.afw.image.Exposure` Exposure object to modify by attaching the product of all given ``TransmissionCurves`` in post-assembly trimmed detector coordinates. Must have a valid ``Detector`` attached that matches the detector associated with sensorTransmission. opticsTransmission : `lsst.afw.image.TransmissionCurve` A ``TransmissionCurve`` that represents the throughput of the optics, to be evaluated in focal-plane coordinates. filterTransmission : `lsst.afw.image.TransmissionCurve` A ``TransmissionCurve`` that represents the throughput of the filter itself, to be evaluated in focal-plane coordinates. sensorTransmission : `lsst.afw.image.TransmissionCurve` A ``TransmissionCurve`` that represents the throughput of the sensor itself, to be evaluated in post-assembly trimmed detector coordinates. atmosphereTransmission : `lsst.afw.image.TransmissionCurve` A ``TransmissionCurve`` that represents the throughput of the atmosphere, assumed to be spatially constant. Returns ------- combined : `lsst.afw.image.TransmissionCurve` The TransmissionCurve attached to the exposure. Notes ----- All ``TransmissionCurve`` arguments are optional; if none are provided, the attached ``TransmissionCurve`` will have unit transmission everywhere.
Definition at line 694 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.biasCorrection | ( | maskedImage, | |
biasMaskedImage, | |||
trimToFit = False |
|||
) |
Apply bias correction in place. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. The image is modified by this method. biasMaskedImage : `lsst.afw.image.MaskedImage` Bias image of the same size as ``maskedImage`` trimToFit : `Bool`, optional If True, raw data is symmetrically trimmed to match calibration size. Raises ------ RuntimeError Raised if ``maskedImage`` and ``biasMaskedImage`` do not have the same size.
Definition at line 270 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.brighterFatterCorrection | ( | exposure, | |
kernel, | |||
maxIter, | |||
threshold, | |||
applyGain, | |||
gains = None |
|||
) |
Apply brighter fatter correction in place for the image. Parameters ---------- exposure : `lsst.afw.image.Exposure` Exposure to have brighter-fatter correction applied. Modified by this method. kernel : `numpy.ndarray` Brighter-fatter kernel to apply. maxIter : scalar Number of correction iterations to run. threshold : scalar Convergence threshold in terms of the sum of absolute deviations between an iteration and the previous one. applyGain : `Bool` If True, then the exposure values are scaled by the gain prior to correction. gains : `dict` [`str`, `float`] A dictionary, keyed by amplifier name, of the gains to use. If gains is None, the nominal gains in the amplifier object are used. Returns ------- diff : `float` Final difference between iterations achieved in correction. iteration : `int` Number of iterations used to calculate correction. Notes ----- This correction takes a kernel that has been derived from flat field images to redistribute the charge. The gradient of the kernel is the deflection field due to the accumulated charge. Given the original image I(x) and the kernel K(x) we can compute the corrected image Ic(x) using the following equation: Ic(x) = I(x) + 0.5*d/dx(I(x)*d/dx(int( dy*K(x-y)*I(y)))) To evaluate the derivative term we expand it as follows: 0.5 * ( d/dx(I(x))*d/dx(int(dy*K(x-y)*I(y))) + I(x)*d^2/dx^2(int(dy* K(x-y)*I(y))) ) Because we use the measured counts instead of the incident counts we apply the correction iteratively to reconstruct the original counts and the correction. We stop iterating when the summed difference between the current corrected image and the one from the previous iteration is below the threshold. We do not require convergence because the number of iterations is too large a computational cost. How we define the threshold still needs to be evaluated, the current default was shown to work reasonably well on a small set of images. For more information on the method see DocuShare Document-19407. The edges as defined by the kernel are not corrected because they have spurious values due to the convolution.
Definition at line 519 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.checkFilter | ( | exposure, | |
filterList, | |||
log | |||
) |
Check to see if an exposure is in a filter specified by a list. The goal of this is to provide a unified filter checking interface for all filter dependent stages. Parameters ---------- exposure : `lsst.afw.image.Exposure` Exposure to examine. filterList : `list` [`str`] List of physical_filter names to check. log : `logging.Logger` Logger to handle messages. Returns ------- result : `bool` True if the exposure's filter is contained in the list.
Definition at line 875 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.createPsf | ( | fwhm | ) |
Make a double Gaussian PSF. Parameters ---------- fwhm : scalar FWHM of double Gaussian smoothing kernel. Returns ------- psf : `lsst.meas.algorithms.DoubleGaussianPsf` The created smoothing kernel.
Definition at line 40 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.darkCorrection | ( | maskedImage, | |
darkMaskedImage, | |||
expScale, | |||
darkScale, | |||
invert = False , |
|||
trimToFit = False |
|||
) |
Apply dark correction in place. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. The image is modified by this method. darkMaskedImage : `lsst.afw.image.MaskedImage` Dark image of the same size as ``maskedImage``. expScale : scalar Dark exposure time for ``maskedImage``. darkScale : scalar Dark exposure time for ``darkMaskedImage``. invert : `Bool`, optional If True, re-add the dark to an already corrected image. trimToFit : `Bool`, optional If True, raw data is symmetrically trimmed to match calibration size. Raises ------ RuntimeError Raised if ``maskedImage`` and ``darkMaskedImage`` do not have the same size. Notes ----- The dark correction is applied by calculating: maskedImage -= dark * expScaling / darkScaling
Definition at line 299 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.flatCorrection | ( | maskedImage, | |
flatMaskedImage, | |||
scalingType, | |||
userScale = 1.0 , |
|||
invert = False , |
|||
trimToFit = False |
|||
) |
Apply flat correction in place. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. The image is modified. flatMaskedImage : `lsst.afw.image.MaskedImage` Flat image of the same size as ``maskedImage`` scalingType : str Flat scale computation method. Allowed values are 'MEAN', 'MEDIAN', or 'USER'. userScale : scalar, optional Scale to use if ``scalingType``='USER'. invert : `Bool`, optional If True, unflatten an already flattened image. trimToFit : `Bool`, optional If True, raw data is symmetrically trimmed to match calibration size. Raises ------ RuntimeError Raised if ``maskedImage`` and ``flatMaskedImage`` do not have the same size or if ``scalingType`` is not an allowed value.
Definition at line 361 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.gainContext | ( | exp, | |
image, | |||
apply, | |||
gains = None |
|||
) |
Context manager that applies and removes gain. Parameters ---------- exp : `lsst.afw.image.Exposure` Exposure to apply/remove gain. image : `lsst.afw.image.Image` Image to apply/remove gain. apply : `Bool` If True, apply and remove the amplifier gain. gains : `dict` [`str`, `float`] A dictionary, keyed by amplifier name, of the gains to use. If gains is None, the nominal gains in the amplifier object are used. Yields ------ exp : `lsst.afw.image.Exposure` Exposure with the gain applied.
Definition at line 642 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.getPhysicalFilter | ( | filterLabel, | |
log | |||
) |
Get the physical filter label associated with the given filterLabel. If ``filterLabel`` is `None` or there is no physicalLabel attribute associated with the given ``filterLabel``, the returned label will be "Unknown". Parameters ---------- filterLabel : `lsst.afw.image.FilterLabel` The `lsst.afw.image.FilterLabel` object from which to derive the physical filter label. log : `logging.Logger` Logger to handle messages. Returns ------- physicalFilter : `str` The value returned by the physicalLabel attribute of ``filterLabel`` if it exists, otherwise set to \"Unknown\".
Definition at line 912 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.growMasks | ( | mask, | |
radius = 0 , |
|||
maskNameList = ['BAD'] , |
|||
maskValue = "BAD" |
|||
) |
Grow a mask by an amount and add to the requested plane. Parameters ---------- mask : `lsst.afw.image.Mask` Mask image to process. radius : scalar Amount to grow the mask. maskNameList : `str` or `list` [`str`] Mask names that should be grown. maskValue : `str` Mask plane to assign the newly masked pixels to.
Definition at line 136 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.illuminationCorrection | ( | maskedImage, | |
illumMaskedImage, | |||
illumScale, | |||
trimToFit = True |
|||
) |
Apply illumination correction in place. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. The image is modified. illumMaskedImage : `lsst.afw.image.MaskedImage` Illumination correction image of the same size as ``maskedImage``. illumScale : scalar Scale factor for the illumination correction. trimToFit : `Bool`, optional If True, raw data is symmetrically trimmed to match calibration size. Raises ------ RuntimeError Raised if ``maskedImage`` and ``illumMaskedImage`` do not have the same size.
Definition at line 411 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.interpolateDefectList | ( | maskedImage, | |
defectList, | |||
fwhm, | |||
fallbackValue = None |
|||
) |
Interpolate over defects specified in a defect list. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. defectList : `lsst.meas.algorithms.Defects` List of defects to interpolate over. fwhm : scalar FWHM of double Gaussian smoothing kernel. fallbackValue : scalar, optional Fallback value if an interpolated value cannot be determined. If None, then the clipped mean of the image is used.
Definition at line 77 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.interpolateFromMask | ( | maskedImage, | |
fwhm, | |||
growSaturatedFootprints = 1 , |
|||
maskNameList = ['SAT'] , |
|||
fallbackValue = None |
|||
) |
Interpolate over defects identified by a particular set of mask planes. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. fwhm : scalar FWHM of double Gaussian smoothing kernel. growSaturatedFootprints : scalar, optional Number of pixels to grow footprints for saturated pixels. maskNameList : `List` of `str`, optional Mask plane name. fallbackValue : scalar, optional Value of last resort for interpolation.
Definition at line 157 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.makeThresholdMask | ( | maskedImage, | |
threshold, | |||
growFootprints = 1 , |
|||
maskName = 'SAT' |
|||
) |
Mask pixels based on threshold detection. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. Only the mask plane is updated. threshold : scalar Detection threshold. growFootprints : scalar, optional Number of pixels to grow footprints of detected regions. maskName : str, optional Mask plane name, or list of names to convert Returns ------- defectList : `lsst.meas.algorithms.Defects` Defect list constructed from pixels above the threshold.
Definition at line 101 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.overscanCorrection | ( | ampMaskedImage, | |
overscanImage, | |||
fitType = 'MEDIAN' , |
|||
order = 1 , |
|||
collapseRej = 3.0 , |
|||
statControl = None , |
|||
overscanIsInt = True |
|||
) |
Apply overscan correction in place. Parameters ---------- ampMaskedImage : `lsst.afw.image.MaskedImage` Image of amplifier to correct; modified. overscanImage : `lsst.afw.image.Image` or `lsst.afw.image.MaskedImage` Image of overscan; modified. fitType : `str` Type of fit for overscan correction. May be one of: - ``MEAN``: use mean of overscan. - ``MEANCLIP``: use clipped mean of overscan. - ``MEDIAN``: use median of overscan. - ``MEDIAN_PER_ROW``: use median per row of overscan. - ``POLY``: fit with ordinary polynomial. - ``CHEB``: fit with Chebyshev polynomial. - ``LEG``: fit with Legendre polynomial. - ``NATURAL_SPLINE``: fit with natural spline. - ``CUBIC_SPLINE``: fit with cubic spline. - ``AKIMA_SPLINE``: fit with Akima spline. order : `int` Polynomial order or number of spline knots; ignored unless ``fitType`` indicates a polynomial or spline. statControl : `lsst.afw.math.StatisticsControl` Statistics control object. In particular, we pay attention to numSigmaClip overscanIsInt : `bool` Treat the overscan region as consisting of integers, even if it's been converted to float. E.g. handle ties properly. Returns ------- result : `lsst.pipe.base.Struct` Result struct with components: - ``imageFit``: Value(s) removed from image (scalar or `lsst.afw.image.Image`) - ``overscanFit``: Value(s) removed from overscan (scalar or `lsst.afw.image.Image`) - ``overscanImage``: Overscan corrected overscan region (`lsst.afw.image.Image`) Raises ------ RuntimeError Raised if ``fitType`` is not an allowed value. Notes ----- The ``ampMaskedImage`` and ``overscanImage`` are modified, with the fit subtracted. Note that the ``overscanImage`` should not be a subimage of the ``ampMaskedImage``, to avoid being subtracted twice. Debug plots are available for the SPLINE fitTypes by setting the `debug.display` for `name` == "lsst.ip.isr.isrFunctions". These plots show the scatter plot of the overscan data (collapsed along the perpendicular dimension) as a function of position on the CCD (normalized between +/-1).
Definition at line 442 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.saturationCorrection | ( | maskedImage, | |
saturation, | |||
fwhm, | |||
growFootprints = 1 , |
|||
interpolate = True , |
|||
maskName = 'SAT' , |
|||
fallbackValue = None |
|||
) |
Mark saturated pixels and optionally interpolate over them Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. saturation : scalar Saturation level used as the detection threshold. fwhm : scalar FWHM of double Gaussian smoothing kernel. growFootprints : scalar, optional Number of pixels to grow footprints of detected regions. interpolate : Bool, optional If True, saturated pixels are interpolated over. maskName : str, optional Mask plane name. fallbackValue : scalar, optional Value of last resort for interpolation.
Definition at line 190 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.setBadRegions | ( | exposure, | |
badStatistic = "MEDIAN" |
|||
) |
Set all BAD areas of the chip to the average of the rest of the exposure Parameters ---------- exposure : `lsst.afw.image.Exposure` Exposure to mask. The exposure mask is modified. badStatistic : `str`, optional Statistic to use to generate the replacement value from the image data. Allowed values are 'MEDIAN' or 'MEANCLIP'. Returns ------- badPixelCount : scalar Number of bad pixels masked. badPixelValue : scalar Value substituted for bad pixels. Raises ------ RuntimeError Raised if `badStatistic` is not an allowed value.
Definition at line 828 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.transposeMaskedImage | ( | maskedImage | ) |
Make a transposed copy of a masked image. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. Returns ------- transposed : `lsst.afw.image.MaskedImage` The transposed copy of the input image.
Definition at line 57 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.trimToMatchCalibBBox | ( | rawMaskedImage, | |
calibMaskedImage | |||
) |
Compute number of edge trim pixels to match the calibration data. Use the dimension difference between the raw exposure and the calibration exposure to compute the edge trim pixels. This trim is applied symmetrically, with the same number of pixels masked on each side. Parameters ---------- rawMaskedImage : `lsst.afw.image.MaskedImage` Image to trim. calibMaskedImage : `lsst.afw.image.MaskedImage` Calibration image to draw new bounding box from. Returns ------- replacementMaskedImage : `lsst.afw.image.MaskedImage` ``rawMaskedImage`` trimmed to the appropriate size Raises ------ RuntimeError Rasied if ``rawMaskedImage`` cannot be symmetrically trimmed to match ``calibMaskedImage``.
Definition at line 223 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.updateVariance | ( | maskedImage, | |
gain, | |||
readNoise | |||
) |
Set the variance plane based on the image plane. Parameters ---------- maskedImage : `lsst.afw.image.MaskedImage` Image to process. The variance plane is modified. gain : scalar The amplifier gain in electrons/ADU. readNoise : scalar The amplifier read nmoise in ADU/pixel.
Definition at line 343 of file isrFunctions.py.
def lsst.ip.isr.isrFunctions.widenSaturationTrails | ( | mask | ) |
Grow the saturation trails by an amount dependent on the width of the trail. Parameters ---------- mask : `lsst.afw.image.Mask` Mask which will have the saturated areas grown.
Definition at line 781 of file isrFunctions.py.