DcrModel¶
- class lsst.ip.diffim.DcrModel(modelImages, effectiveWavelength, bandwidth, filterLabel=None, psf=None, bbox=None, wcs=None, mask=None, variance=None, photoCalib=None)¶
Bases:
object
A model of the true sky after correcting chromatic effects.
Notes
The
DcrModel
contains an estimate of the true sky, at a higher wavelength resolution than the input observations. It can be forward- modeled to produce Differential Chromatic Refraction (DCR) matched templates for a givenExposure
, and provides utilities for conditioning the model indcrAssembleCoadd
to avoid oscillating solutions between iterations of forward modeling or between the subfilters of the model.- Attributes:
Attributes Summary
Return the bandwidth of the model.
Return the common bounding box of each subfilter image.
Return the effective wavelength of the model.
Return the filter label for the model.
Return the common mask of each subfilter image.
Return the psf of the model.
Return the common variance of each subfilter image.
Return the WCS of each subfilter image.
Methods Summary
applyImageThresholds
(image[, highThreshold, ...])Restrict image values to be between upper and lower limits.
assign
(dcrSubModel[, bbox])Update a sub-region of the
DcrModel
with new values.buildMatchedExposure
([exposure, visitInfo, ...])Wrapper to create an exposure from a template image.
buildMatchedTemplate
([exposure, order, ...])Create a DCR-matched template image for an exposure.
calculateNoiseCutoff
(image, statsCtrl, ...)Helper function to calculate the background noise level of an image.
conditionDcrModel
(modelImages, bbox[, gain])Average two iterations' solutions to reduce oscillations.
fromImage
(maskedImage, dcrNumSubfilters, ...)Initialize a DcrModel by dividing a coadd between the subfilters.
fromQuantum
(availableCoaddRefs, ...)Load an existing DcrModel from a Gen 3 repository.
getReferenceImage
([bbox])Calculate a reference image from the average of the subfilter images.
regularizeModelFreq
(modelImages, bbox, ...)Restrict large variations in the model between subfilters.
regularizeModelIter
(subfilter, newModel, ...)Restrict large variations in the model between iterations.
Attributes Documentation
- bandwidth¶
Return the bandwidth of the model.
- Returns:
- bandwidth
float
The bandwidth of the current filter, in nanometers.
- bandwidth
- bbox¶
Return the common bounding box of each subfilter image.
- Returns:
- bbox
lsst.afw.geom.Box2I
Bounding box of the DCR model.
- bbox
- effectiveWavelength¶
Return the effective wavelength of the model.
- Returns:
- effectiveWavelength
float
The effective wavelength of the current filter, in nanometers.
- effectiveWavelength
- filter¶
Return the filter label for the model.
- Returns:
- filterLabel
lsst.afw.image.FilterLabel
The filter used for the input observations.
- filterLabel
- mask¶
Return the common mask of each subfilter image.
- Returns:
- mask
lsst.afw.image.Mask
Mask plane of the DCR model.
- mask
- psf¶
Return the psf of the model.
- Returns:
- psf
lsst.afw.detection.Psf
Point spread function (PSF) of the model.
- psf
- variance¶
Return the common variance of each subfilter image.
- Returns:
- variance
lsst.afw.image.Image
Variance plane of the DCR model.
- variance
- wcs¶
Return the WCS of each subfilter image.
- Returns:
- bbox
lsst.afw.geom.SkyWcs
Coordinate system definition (wcs) for the exposure.
- bbox
Methods Documentation
- applyImageThresholds(image, highThreshold=None, lowThreshold=None, regularizationWidth=2)¶
Restrict image values to be between upper and lower limits.
This method flags all pixels in an image that are outside of the given threshold values. The threshold values are taken from a reference image, so noisy pixels are likely to get flagged. In order to exclude those noisy pixels, the array of flags is eroded and dilated, which removes isolated pixels outside of the thresholds from the list of pixels to be modified. Pixels that remain flagged after this operation have their values set to the appropriate upper or lower threshold value.
- Parameters:
- image
numpy.ndarray
The image to apply the thresholds to. The values will be modified in place.
- highThreshold
numpy.ndarray
, optional Array of upper limit values for each pixel of
image
.- lowThreshold
numpy.ndarray
, optional Array of lower limit values for each pixel of
image
.- regularizationWidth
int
, optional Minimum radius of a region to include in regularization, in pixels.
- image
- assign(dcrSubModel, bbox=None)¶
Update a sub-region of the
DcrModel
with new values.- Parameters:
- dcrSubModel
lsst.pipe.tasks.DcrModel
New model of the true scene after correcting chromatic effects.
- bbox
lsst.afw.geom.Box2I
, optional Sub-region of the coadd. Defaults to the bounding box of
dcrSubModel
.
- dcrSubModel
- Raises:
- ValueError
If the new model has a different number of subfilters.
- buildMatchedExposure(exposure=None, visitInfo=None, bbox=None, mask=None)¶
Wrapper to create an exposure from a template image.
- Parameters:
- exposure
lsst.afw.image.Exposure
, optional The input exposure to build a matched template for. May be omitted if all of the metadata is supplied separately
- visitInfo
lsst.afw.image.VisitInfo
, optional Metadata for the exposure. Ignored if
exposure
is set.- bbox
lsst.afw.geom.Box2I
, optional Sub-region of the coadd, or use the entire coadd if not supplied.
- mask
lsst.afw.image.Mask
, optional reference mask to use for the template image.
- exposure
- Returns:
- templateExposure
lsst.afw.image.exposureF
The DCR-matched template
- templateExposure
- Raises:
- RuntimeError
If no
photcCalib
is set.
- buildMatchedTemplate(exposure=None, order=3, visitInfo=None, bbox=None, mask=None, splitSubfilters=True, splitThreshold=0.0, amplifyModel=1.0)¶
Create a DCR-matched template image for an exposure.
- Parameters:
- exposure
lsst.afw.image.Exposure
, optional The input exposure to build a matched template for. May be omitted if all of the metadata is supplied separately
- order
int
, optional Interpolation order of the DCR shift.
- visitInfo
lsst.afw.image.VisitInfo
, optional Metadata for the exposure. Ignored if
exposure
is set.- bbox
lsst.afw.geom.Box2I
, optional Sub-region of the coadd, or use the entire coadd if not supplied.
- mask
lsst.afw.image.Mask
, optional reference mask to use for the template image.
- splitSubfilters
bool
, optional Calculate DCR for two evenly-spaced wavelengths in each subfilter, instead of at the midpoint. Default: True
- splitThreshold
float
, optional Minimum DCR difference within a subfilter required to use
splitSubfilters
- amplifyModel
float
, optional Multiplication factor to amplify differences between model planes. Used to speed convergence of iterative forward modeling.
- exposure
- Returns:
- templateImage
lsst.afw.image.ImageF
The DCR-matched template
- templateImage
- Raises:
- ValueError
If neither
exposure
orvisitInfo
are set.
- calculateNoiseCutoff(image, statsCtrl, bufferSize, convergenceMaskPlanes='DETECTED', mask=None, bbox=None)¶
Helper function to calculate the background noise level of an image.
- Parameters:
- image
lsst.afw.image.Image
The input image to evaluate the background noise properties.
- statsCtrl
lsst.afw.math.StatisticsControl
Statistics control object for coaddition.
- bufferSize
int
Number of additional pixels to exclude from the edges of the bounding box.
- convergenceMaskPlanes
list
ofstr
, orstr
Mask planes to use to calculate convergence.
- mask
lsst.afw.image.Mask
, Optional Optional alternate mask
- bbox
lsst.afw.geom.Box2I
, optional Sub-region of the masked image to calculate the noise level over.
- image
- Returns:
- noiseCutoff
float
The threshold value to treat pixels as noise in an image..
- noiseCutoff
- conditionDcrModel(modelImages, bbox, gain=1.0)¶
Average two iterations’ solutions to reduce oscillations.
- Parameters:
- modelImages
list
oflsst.afw.image.Image
The new DCR model images from the current iteration. The values will be modified in place.
- bbox
lsst.afw.geom.Box2I
Sub-region of the coadd
- gain
float
, optional Relative weight to give the new solution when updating the model. Defaults to 1.0, which gives equal weight to both solutions.
- modelImages
- classmethod fromImage(maskedImage, dcrNumSubfilters, effectiveWavelength, bandwidth, wcs=None, filterLabel=None, psf=None, photoCalib=None)¶
Initialize a DcrModel by dividing a coadd between the subfilters.
- Parameters:
- maskedImage
lsst.afw.image.MaskedImage
Input coadded image to divide equally between the subfilters.
- dcrNumSubfilters
int
Number of sub-filters used to model chromatic effects within a band.
- effectiveWavelength
float
The effective wavelengths of the current filter, in nanometers.
- bandwidth
float
The bandwidth of the current filter, in nanometers.
- wcs
lsst.afw.geom.SkyWcs
Coordinate system definition (wcs) for the exposure.
- filterLabel
lsst.afw.image.FilterLabel
, optional The filter label, set in the current instruments’ obs package. Required for any calculation of DCR, including making matched templates.
- psf
lsst.afw.detection.Psf
, optional Point spread function (PSF) of the model. Required if the
DcrModel
will be persisted.- photoCalib
lsst.afw.image.PhotoCalib
, optional Calibration to convert instrumental flux and flux error to nanoJansky.
- maskedImage
- Returns:
- dcrModel
lsst.pipe.tasks.DcrModel
Best fit model of the true sky after correcting chromatic effects.
- dcrModel
- classmethod fromQuantum(availableCoaddRefs, effectiveWavelength, bandwidth, numSubfilters)¶
Load an existing DcrModel from a Gen 3 repository.
- Parameters:
- availableCoaddRefs
dict
[int
,lsst.daf.butler.DeferredDatasetHandle
] Dictionary of spatially relevant retrieved coadd patches, indexed by their sequential patch number.
- effectiveWavelength
float
The effective wavelengths of the current filter, in nanometers.
- bandwidth
float
The bandwidth of the current filter, in nanometers.
- numSubfilters
int
Number of subfilters in the DcrCoadd.
- availableCoaddRefs
- Returns:
- dcrModel
lsst.pipe.tasks.DcrModel
Best fit model of the true sky after correcting chromatic effects.
- dcrModel
- getReferenceImage(bbox=None)¶
Calculate a reference image from the average of the subfilter images.
- Parameters:
- bbox
lsst.afw.geom.Box2I
, optional Sub-region of the coadd. Returns the entire image if
None
.
- bbox
- Returns:
- refImage
numpy.ndarray
The reference image with no chromatic effects applied.
- refImage
- regularizeModelFreq(modelImages, bbox, statsCtrl, regularizationFactor, regularizationWidth=2, mask=None, convergenceMaskPlanes='DETECTED')¶
Restrict large variations in the model between subfilters.
- Parameters:
- modelImages
list
oflsst.afw.image.Image
The new DCR model images from the current iteration. The values will be modified in place.
- bbox
lsst.afw.geom.Box2I
Sub-region to coadd
- statsCtrl
lsst.afw.math.StatisticsControl
Statistics control object for coaddition.
- regularizationFactor
float
Maximum relative change of the model allowed between subfilters.
- regularizationWidth
int
, optional Minimum radius of a region to include in regularization, in pixels.
- mask
lsst.afw.image.Mask
, optional Optional alternate mask
- convergenceMaskPlanes
list
ofstr
, orstr
, optional Mask planes to use to calculate convergence.
- modelImages
Notes
This implementation of frequency regularization restricts each subfilter image to be a smoothly-varying function times a reference image.
- regularizeModelIter(subfilter, newModel, bbox, regularizationFactor, regularizationWidth=2)¶
Restrict large variations in the model between iterations.
- Parameters:
- subfilter
int
Index of the current subfilter within the full band.
- newModel
lsst.afw.image.Image
The new DCR model for one subfilter from the current iteration. Values in
newModel
that are extreme compared with the last iteration are modified in place.- bbox
lsst.afw.geom.Box2I
Sub-region to coadd
- regularizationFactor
float
Maximum relative change of the model allowed between iterations.
- regularizationWidthint, optional
Minimum radius of a region to include in regularization, in pixels.
- subfilter