|
lsst.ip.isr gd2a69bfd97+f32573b122
|
Public Member Functions | |
| __init__ (self, **kwargs) | |
| runQuantum (self, butlerQC, inputRefs, outputRefs) | |
| run (self, ccdExposure, *, camera=None, bias=None, linearizer=None, crosstalk=None, crosstalkSources=None, dark=None, flat=None, ptc=None, bfKernel=None, bfGains=None, defects=None, fringes=pipeBase.Struct(fringes=None), opticsTransmission=None, filterTransmission=None, sensorTransmission=None, atmosphereTransmission=None, detectorNum=None, strayLightData=None, illumMaskedImage=None, deferredChargeCalib=None) | |
| defineEffectivePtc (self, ptcDataset, detector, bfGains, overScans, metadata) | |
| ensureExposure (self, inputExp, camera=None, detectorNum=None) | |
| compareUnits (self, calibMetadata, calibName) | |
| convertIntToFloat (self, exposure) | |
| maskAmplifier (self, ccdExposure, amp, defects) | |
| overscanCorrection (self, ccdExposure, amp) | |
| updateVariance (self, ampExposure, amp, ptcDataset) | |
| maskNegativeVariance (self, exposure) | |
| darkCorrection (self, exposure, darkExposure, invert=False) | |
| doLinearize (self, detector) | |
| flatCorrection (self, exposure, flatExposure, invert=False) | |
| saturationDetection (self, exposure, amp) | |
| saturationInterpolation (self, exposure) | |
| suspectDetection (self, exposure, amp) | |
| maskDefect (self, exposure, defectBaseList) | |
| maskEdges (self, exposure, numEdgePixels=0, maskPlane="SUSPECT", level='DETECTOR') | |
| maskAndInterpolateDefects (self, exposure, defectBaseList) | |
| maskNan (self, exposure) | |
| maskAndInterpolateNan (self, exposure) | |
| measureBackground (self, exposure, IsrQaConfig=None) | |
| roughZeroPoint (self, exposure) | |
| flatContext (self, exp, flat, dark=None) | |
| makeBinnedImages (self, exposure) | |
| debugView (self, exposure, stepname) | |
Static Public Member Functions | |
| extractCalibDate (calib) | |
Public Attributes | |
| vignettePolygon | |
Static Public Attributes | |
| ConfigClass = IsrTaskConfig | |
Static Protected Attributes | |
| str | _DefaultName = "isr" |
Apply common instrument signature correction algorithms to a raw frame.
The process for correcting imaging data is very similar from
camera to camera. This task provides a vanilla implementation of
doing these corrections, including the ability to turn certain
corrections off if they are not needed. The inputs to the primary
method, `run()`, are a raw exposure to be corrected and the
calibration data products. The raw input is a single chip sized
mosaic of all amps including overscans and other non-science
pixels.
The __init__ method sets up the subtasks for ISR processing, using
the defaults from `lsst.ip.isr`.
Parameters
----------
args : `list`
Positional arguments passed to the Task constructor.
None used at this time.
kwargs : `dict`, optional
Keyword arguments passed on to the Task constructor.
None used at this time.
Definition at line 997 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.__init__ | ( | self, | |
| ** | kwargs ) |
Definition at line 1024 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.compareUnits | ( | self, | |
| calibMetadata, | |||
| calibName ) |
Compare units from calibration to ISR units.
For the regular IsrTask this is used to confirm that calibs
suitable for IsrTaskLSST are not used with the old IsrTask.
Parameters
----------
calibMetadata : `lsst.daf.base.PropertyList`
Calibration metadata from header.
calibName : `str`
Calibration name for log message.
Definition at line 2102 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.convertIntToFloat | ( | self, | |
| exposure ) |
Convert exposure image from uint16 to float.
If the exposure does not need to be converted, the input is
immediately returned. For exposures that are converted to use
floating point pixels, the variance is set to unity and the
mask to zero.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
The raw exposure to be converted.
Returns
-------
newexposure : `lsst.afw.image.Exposure`
The input ``exposure``, converted to floating point pixels.
Raises
------
RuntimeError
Raised if the exposure type cannot be converted to float.
Definition at line 2133 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.darkCorrection | ( | self, | |
| exposure, | |||
| darkExposure, | |||
| invert = False ) |
Apply dark correction in place.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
darkExposure : `lsst.afw.image.Exposure`
Dark exposure of the same size as ``exposure``.
invert : `Bool`, optional
If True, re-add the dark to an already corrected image.
Raises
------
RuntimeError
Raised if either ``exposure`` or ``darkExposure`` do not
have their dark time defined.
See Also
--------
lsst.ip.isr.isrFunctions.darkCorrection
Definition at line 2396 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.debugView | ( | self, | |
| exposure, | |||
| stepname ) |
Utility function to examine ISR exposure at different stages.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to view.
stepname : `str`
State of processing to view.
Definition at line 2868 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.defineEffectivePtc | ( | self, | |
| ptcDataset, | |||
| detector, | |||
| bfGains, | |||
| overScans, | |||
| metadata ) |
Define an effective Photon Transfer Curve dataset
with nominal gains and noise.
Parameters
----------
ptcDataset : `lsst.ip.isr.PhotonTransferCurveDataset`
Input Photon Transfer Curve dataset.
detector : `lsst.afw.cameraGeom.Detector`
Detector object.
bfGains : `dict`
Gains from running the brighter-fatter code.
A dict keyed by amplifier name for the detector
in question.
overScans : `list` [`lsst.pipe.base.Struct`]
List of overscanResults structures
metadata : `lsst.daf.base.PropertyList`
Exposure metadata to update gain and read noise
provenance.
Returns
-------
effectivePtc : `lsst.ip.isr.PhotonTransferCurveDataset`
PTC dataset containing gains and readout noise
values to be used throughout
Instrument Signature Removal.
Definition at line 1878 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.doLinearize | ( | self, | |
| detector ) |
Check if linearization is needed for the detector cameraGeom.
Checks config.doLinearize and the linearity type of the first
amplifier.
Parameters
----------
detector : `lsst.afw.cameraGeom.Detector`
Detector to get linearity type from.
Returns
-------
doLinearize : `Bool`
If True, linearization should be performed.
Definition at line 2439 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.ensureExposure | ( | self, | |
| inputExp, | |||
| camera = None, | |||
| detectorNum = None ) |
Ensure that the data returned by Butler is a fully constructed exp.
ISR requires exposure-level image data for historical reasons, so if we
did not recieve that from Butler, construct it from what we have,
modifying the input in place.
Parameters
----------
inputExp : `lsst.afw.image` image-type.
The input data structure obtained from Butler.
Can be `lsst.afw.image.Exposure`,
`lsst.afw.image.DecoratedImageU`,
or `lsst.afw.image.ImageF`
camera : `lsst.afw.cameraGeom.camera`, optional
The camera associated with the image. Used to find the appropriate
detector if detector is not already set.
detectorNum : `int`, optional
The detector in the camera to attach, if the detector is not
already set.
Returns
-------
inputExp : `lsst.afw.image.Exposure`
The re-constructed exposure, with appropriate detector parameters.
Raises
------
TypeError
Raised if the input data cannot be used to construct an exposure.
Definition at line 2023 of file isrTask.py.
|
static |
Extract common calibration metadata values that will be written to
output header.
Parameters
----------
calib : `lsst.afw.image.Exposure` or `lsst.ip.isr.IsrCalib`
Calibration to pull date information from.
Returns
-------
dateString : `str`
Calibration creation date string to add to header.
Definition at line 2078 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.flatContext | ( | self, | |
| exp, | |||
| flat, | |||
| dark = None ) |
Context manager that applies and removes flats and darks,
if the task is configured to apply them.
Parameters
----------
exp : `lsst.afw.image.Exposure`
Exposure to process.
flat : `lsst.afw.image.Exposure`
Flat exposure the same size as ``exp``.
dark : `lsst.afw.image.Exposure`, optional
Dark exposure the same size as ``exp``.
Yields
------
exp : `lsst.afw.image.Exposure`
The flat and dark corrected exposure.
Definition at line 2803 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.flatCorrection | ( | self, | |
| exposure, | |||
| flatExposure, | |||
| invert = False ) |
Apply flat correction in place.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
flatExposure : `lsst.afw.image.Exposure`
Flat exposure of the same size as ``exposure``.
invert : `Bool`, optional
If True, unflatten an already flattened image.
See Also
--------
lsst.ip.isr.isrFunctions.flatCorrection
Definition at line 2458 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.makeBinnedImages | ( | self, | |
| exposure ) |
Make visualizeVisit style binned exposures.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to bin.
Returns
-------
bin1 : `lsst.afw.image.Exposure`
Binned exposure using binFactor1.
bin2 : `lsst.afw.image.Exposure`
Binned exposure using binFactor2.
Definition at line 2840 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.maskAmplifier | ( | self, | |
| ccdExposure, | |||
| amp, | |||
| defects ) |
Identify bad amplifiers, saturated and suspect pixels.
Parameters
----------
ccdExposure : `lsst.afw.image.Exposure`
Input exposure to be masked.
amp : `lsst.afw.cameraGeom.Amplifier`
Catalog of parameters defining the amplifier on this
exposure to mask.
defects : `lsst.ip.isr.Defects`
List of defects. Used to determine if the entire
amplifier is bad.
Returns
-------
badAmp : `Bool`
If this is true, the entire amplifier area is covered by
defects and unusable.
Definition at line 2170 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.maskAndInterpolateDefects | ( | self, | |
| exposure, | |||
| defectBaseList ) |
Mask and interpolate defects using mask plane "BAD", in place.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
defectBaseList : defects-like
List of defects to mask and interpolate. Can be
`lsst.ip.isr.Defects` or `list` of `lsst.afw.image.DefectBase`.
See Also
--------
lsst.ip.isr.isrTask.maskDefect
Definition at line 2627 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.maskAndInterpolateNan | ( | self, | |
| exposure ) |
"Mask and interpolate NaN/infs using mask plane "UNMASKEDNAN",
in place.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
See Also
--------
lsst.ip.isr.isrTask.maskNan
Definition at line 2679 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.maskDefect | ( | self, | |
| exposure, | |||
| defectBaseList ) |
Mask defects using mask plane "BAD", in place.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
defectBaseList : defect-type
List of defects to mask. Can be of type `lsst.ip.isr.Defects`
or `list` of `lsst.afw.image.DefectBase`.
Notes
-----
Call this after CCD assembly, since defects may cross amplifier
boundaries.
Definition at line 2569 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.maskEdges | ( | self, | |
| exposure, | |||
| numEdgePixels = 0, | |||
| maskPlane = "SUSPECT", | |||
| level = 'DETECTOR' ) |
Mask edge pixels with applicable mask plane.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
numEdgePixels : `int`, optional
Number of edge pixels to mask.
maskPlane : `str`, optional
Mask plane name to use.
level : `str`, optional
Level at which to mask edges.
Definition at line 2593 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.maskNan | ( | self, | |
| exposure ) |
Mask NaNs using mask plane "UNMASKEDNAN", in place.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
Notes
-----
We mask over all non-finite values (NaN, inf), including those
that are masked with other bits (because those may or may not be
interpolated over later, and we want to remove all NaN/infs).
Despite this behaviour, the "UNMASKEDNAN" mask plane is used to
preserve the historical name.
Definition at line 2653 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.maskNegativeVariance | ( | self, | |
| exposure ) |
Identify and mask pixels with negative variance values.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
See Also
--------
lsst.ip.isr.isrFunctions.updateVariance
Definition at line 2380 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.measureBackground | ( | self, | |
| exposure, | |||
| IsrQaConfig = None ) |
Measure the image background in subgrids, for quality control.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
IsrQaConfig : `lsst.ip.isr.isrQa.IsrQaConfig`
Configuration object containing parameters on which background
statistics and subgrids to use.
Definition at line 2701 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.overscanCorrection | ( | self, | |
| ccdExposure, | |||
| amp ) |
Apply overscan correction in place.
This method does initial pixel rejection of the overscan
region. The overscan can also be optionally segmented to
allow for discontinuous overscan responses to be fit
separately. The actual overscan subtraction is performed by
the `lsst.ip.isr.overscan.OverscanTask`, which is called here
after the amplifier is preprocessed.
Parameters
----------
ccdExposure : `lsst.afw.image.Exposure`
Exposure to have overscan correction performed.
amp : `lsst.afw.cameraGeom.Amplifer`
The amplifier to consider while correcting the overscan.
Returns
-------
overscanResults : `lsst.pipe.base.Struct`
Result struct with components:
``imageFit``
Value or fit subtracted from the amplifier image data.
(scalar or `lsst.afw.image.Image`)
``overscanFit``
Value or fit subtracted from the overscan image data.
(scalar or `lsst.afw.image.Image`)
``overscanImage``
Image of the overscan region with the overscan
correction applied. This quantity is used to estimate
the amplifier read noise empirically.
(`lsst.afw.image.Image`)
``edgeMask``
Mask of the suspect pixels. (`lsst.afw.image.Mask`)
``overscanMean``
Median overscan fit value. (`float`)
``overscanSigma``
Clipped standard deviation of the overscan after
correction. (`float`)
Raises
------
RuntimeError
Raised if the ``amp`` does not contain raw pixel information.
See Also
--------
lsst.ip.isr.overscan.OverscanTask
Definition at line 2247 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.roughZeroPoint | ( | self, | |
| exposure ) |
Set an approximate magnitude zero point for the exposure.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
Definition at line 2773 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.run | ( | self, | |
| ccdExposure, | |||
| * | , | ||
| camera = None, | |||
| bias = None, | |||
| linearizer = None, | |||
| crosstalk = None, | |||
| crosstalkSources = None, | |||
| dark = None, | |||
| flat = None, | |||
| ptc = None, | |||
| bfKernel = None, | |||
| bfGains = None, | |||
| defects = None, | |||
| fringes = pipeBase.Struct(fringes=None), | |||
| opticsTransmission = None, | |||
| filterTransmission = None, | |||
| sensorTransmission = None, | |||
| atmosphereTransmission = None, | |||
| detectorNum = None, | |||
| strayLightData = None, | |||
| illumMaskedImage = None, | |||
| deferredChargeCalib = None ) |
Perform instrument signature removal on an exposure.
Steps included in the ISR processing, in order performed, are:
- saturation and suspect pixel masking
- overscan subtraction
- CCD assembly of individual amplifiers
- bias subtraction
- variance image construction
- linearization of non-linear response
- crosstalk masking
- brighter-fatter correction
- dark subtraction
- fringe correction
- stray light subtraction
- flat correction
- masking of known defects and camera specific features
- vignette calculation
- appending transmission curve and distortion model
Parameters
----------
ccdExposure : `lsst.afw.image.Exposure`
The raw exposure that is to be run through ISR. The
exposure is modified by this method.
camera : `lsst.afw.cameraGeom.Camera`, optional
The camera geometry for this exposure. Required if
one or more of ``ccdExposure``, ``bias``, ``dark``, or
``flat`` does not have an associated detector.
bias : `lsst.afw.image.Exposure`, optional
Bias calibration frame.
linearizer : `lsst.ip.isr.linearize.LinearizeBase`, optional
Functor for linearization.
crosstalk : `lsst.ip.isr.crosstalk.CrosstalkCalib`, optional
Calibration for crosstalk.
crosstalkSources : `list`, optional
List of possible crosstalk sources.
dark : `lsst.afw.image.Exposure`, optional
Dark calibration frame.
flat : `lsst.afw.image.Exposure`, optional
Flat calibration frame.
ptc : `lsst.ip.isr.PhotonTransferCurveDataset`, optional
Photon transfer curve dataset, with, e.g., gains
and read noise.
bfKernel : `numpy.ndarray`, optional
Brighter-fatter kernel.
bfGains : `dict` of `float`, optional
Gains used to override the detector's nominal gains for the
brighter-fatter correction. A dict keyed by amplifier name for
the detector in question.
defects : `lsst.ip.isr.Defects`, optional
List of defects.
fringes : `lsst.pipe.base.Struct`, optional
Struct containing the fringe correction data, with
elements:
``fringes``
fringe calibration frame (`lsst.afw.image.Exposure`)
``seed``
random seed derived from the ``ccdExposureId`` for random
number generator (`numpy.uint32`)
opticsTransmission: `lsst.afw.image.TransmissionCurve`, optional
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.
detectorNum : `int`, optional
The integer number for the detector to process.
strayLightData : `object`, optional
Opaque object containing calibration information for stray-light
correction. If `None`, no correction will be performed.
illumMaskedImage : `lsst.afw.image.MaskedImage`, optional
Illumination correction image.
Returns
-------
result : `lsst.pipe.base.Struct`
Result struct with component:
``exposure``
The fully ISR corrected exposure.
(`lsst.afw.image.Exposure`)
``outputExposure``
An alias for ``exposure``. (`lsst.afw.image.Exposure`)
``ossThumb``
Thumbnail image of the exposure after overscan subtraction.
(`numpy.ndarray`)
``flattenedThumb``
Thumbnail image of the exposure after flat-field correction.
(`numpy.ndarray`)
``outputStatistics``
Values of the additional statistics calculated.
Raises
------
RuntimeError
Raised if a configuration option is set to `True`, but the
required calibration data has not been specified.
Notes
-----
The current processed exposure can be viewed by setting the
appropriate `lsstDebug` entries in the ``debug.display``
dictionary. The names of these entries correspond to some of
the `IsrTaskConfig` Boolean options, with the value denoting the
frame to use. The exposure is shown inside the matching
option check and after the processing of that step has
finished. The steps with debug points are:
* doAssembleCcd
* doBias
* doCrosstalk
* doBrighterFatter
* doDark
* doFringe
* doStrayLight
* doFlat
In addition, setting the ``postISRCCD`` entry displays the
exposure after all ISR processing has finished.
Definition at line 1192 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.runQuantum | ( | self, | |
| butlerQC, | |||
| inputRefs, | |||
| outputRefs ) |
Definition at line 1038 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.saturationDetection | ( | self, | |
| exposure, | |||
| amp ) |
Detect and mask saturated pixels in config.saturatedMaskName.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process. Only the amplifier DataSec is processed.
amp : `lsst.afw.cameraGeom.Amplifier`
Amplifier detector data.
See Also
--------
lsst.ip.isr.isrFunctions.makeThresholdMask
Definition at line 2483 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.saturationInterpolation | ( | self, | |
| exposure ) |
Interpolate over saturated pixels, in place.
This method should be called after `saturationDetection`, to
ensure that the saturated pixels have been identified in the
SAT mask. It should also be called after `assembleCcd`, since
saturated regions may cross amplifier boundaries.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process.
See Also
--------
lsst.ip.isr.isrTask.saturationDetection
lsst.ip.isr.isrFunctions.interpolateFromMask
Definition at line 2507 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.suspectDetection | ( | self, | |
| exposure, | |||
| amp ) |
Detect and mask suspect pixels in config.suspectMaskName.
Parameters
----------
exposure : `lsst.afw.image.Exposure`
Exposure to process. Only the amplifier DataSec is processed.
amp : `lsst.afw.cameraGeom.Amplifier`
Amplifier detector data.
See Also
--------
lsst.ip.isr.isrFunctions.makeThresholdMask
Notes
-----
Suspect pixels are pixels whose value is greater than
amp.getSuspectLevel(). This is intended to indicate pixels that may be
affected by unknown systematics; for example if non-linearity
corrections above a certain level are unstable then that would be a
useful value for suspectLevel. A value of `nan` indicates that no such
level exists and no pixels are to be masked as suspicious.
Definition at line 2533 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.updateVariance | ( | self, | |
| ampExposure, | |||
| amp, | |||
| ptcDataset ) |
Set the variance plane using the gain and read noise
The read noise is calculated from the ``overscanImage`` if the
``doEmpiricalReadNoise`` option is set in the configuration; otherwise
the value from the amplifier data is used.
Parameters
----------
ampExposure : `lsst.afw.image.Exposure`
Exposure to process.
amp : `lsst.afw.cameraGeom.Amplifier` or `FakeAmp`
Amplifier detector data.
ptcDataset : `lsst.ip.isr.PhotonTransferCurveDataset`
Effective PTC dataset containing the gains and read noise.
See also
--------
lsst.ip.isr.isrFunctions.updateVariance
Definition at line 2345 of file isrTask.py.
|
staticprotected |
Definition at line 1022 of file isrTask.py.
|
static |
Definition at line 1021 of file isrTask.py.
| lsst.ip.isr.isrTask.IsrTask.vignettePolygon |
Definition at line 1731 of file isrTask.py.