LSSTApplications
16.0-10-g0ee56ad+5,16.0-11-ga33d1f2+5,16.0-12-g3ef5c14+3,16.0-12-g71e5ef5+18,16.0-12-gbdf3636+3,16.0-13-g118c103+3,16.0-13-g8f68b0a+3,16.0-15-gbf5c1cb+4,16.0-16-gfd17674+3,16.0-17-g7c01f5c+3,16.0-18-g0a50484+1,16.0-20-ga20f992+8,16.0-21-g0e05fd4+6,16.0-21-g15e2d33+4,16.0-22-g62d8060+4,16.0-22-g847a80f+4,16.0-25-gf00d9b8+1,16.0-28-g3990c221+4,16.0-3-gf928089+3,16.0-32-g88a4f23+5,16.0-34-gd7987ad+3,16.0-37-gc7333cb+2,16.0-4-g10fc685+2,16.0-4-g18f3627+26,16.0-4-g5f3a788+26,16.0-5-gaf5c3d7+4,16.0-5-gcc1f4bb+1,16.0-6-g3b92700+4,16.0-6-g4412fcd+3,16.0-6-g7235603+4,16.0-69-g2562ce1b+2,16.0-8-g14ebd58+4,16.0-8-g2df868b+1,16.0-8-g4cec79c+6,16.0-8-gadf6c7a+1,16.0-8-gfc7ad86,16.0-82-g59ec2a54a+1,16.0-9-g5400cdc+2,16.0-9-ge6233d7+5,master-g2880f2d8cf+3,v17.0.rc1
LSSTDataManagementBasePackage
|
Public Member Functions | |
def | __init__ (self, kwargs) |
def | getInputDatasetTypes (cls, config) |
def | getOutputDatasetTypes (cls, config) |
def | adaptArgsAndRun (self, inputData, inputDataIds, outputDataIds, butler) |
def | makeDatasetType (self, dsConfig) |
def | readIsrData (self, dataRef, rawExposure) |
Retrieve necessary frames for instrument signature removal. More... | |
def | run (self, ccdExposure, camera=None, bias=None, linearizer=None, crosstalkSources=None, dark=None, flat=None, bfKernel=None, defects=None, fringes=None, opticsTransmission=None, filterTransmission=None, sensorTransmission=None, atmosphereTransmission=None, detectorNum=None, isGen3=False) |
Perform instrument signature removal on an exposure. More... | |
def | runDataRef (self, sensorRef) |
def | getIsrExposure (self, dataRef, datasetType, immediate=True) |
Retrieve a calibration dataset for removing instrument signature. More... | |
def | ensureExposure (self, inputExp, camera, detectorNum) |
def | convertIntToFloat (self, exposure) |
def | maskAmplifier (self, ccdExposure, amp, defects) |
def | overscanCorrection (self, ccdExposure, amp) |
def | updateVariance (self, ampExposure, amp, overscanImage=None) |
def | darkCorrection (self, exposure, darkExposure, invert=False) |
Apply dark correction in place. More... | |
def | doLinearize (self, detector) |
Check if linearization is needed for the detector cameraGeom. More... | |
def | flatCorrection (self, exposure, flatExposure, invert=False) |
Apply flat correction in place. More... | |
def | saturationDetection (self, exposure, amp) |
Detect saturated pixels and mask them using mask plane config.saturatedMaskName, in place. More... | |
def | saturationInterpolation (self, ccdExposure) |
Interpolate over saturated pixels, in place. More... | |
def | suspectDetection (self, exposure, amp) |
Detect suspect pixels and mask them using mask plane config.suspectMaskName, in place. More... | |
def | maskAndInterpDefect (self, ccdExposure, defectBaseList) |
Mask defects using mask plane "BAD" and interpolate over them, in place. More... | |
def | maskAndInterpNan (self, exposure) |
Mask NaNs using mask plane "UNMASKEDNAN" and interpolate over them, in place. More... | |
def | measureBackground (self, exposure, IsrQaConfig=None) |
def | roughZeroPoint (self, exposure) |
def | setValidPolygonIntersect (self, ccdExposure, fpPolygon) |
Set the valid polygon as the intersection of fpPolygon and the ccd corners. More... | |
def | flatContext (self, exp, flat, dark=None) |
def | debugView (self, exposure, stepname) |
Public Attributes | |
vignettePolygon | |
Static Public Attributes | |
ConfigClass = IsrTaskConfig | |
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 method `runDataRef()` identifies and defines the calibration data products, and is intended for use by a `lsst.pipe.base.cmdLineTask.CmdLineTask` and takes as input only a `daf.persistence.butlerSubset.ButlerDataRef`. This task may be subclassed for different camera, although the most camera specific methods have been split into subtasks that can be redirected appropriately. 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 665 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.__init__ | ( | self, | |
kwargs | |||
) |
Definition at line 696 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.adaptArgsAndRun | ( | self, | |
inputData, | |||
inputDataIds, | |||
outputDataIds, | |||
butler | |||
) |
Definition at line 755 of file isrTask.py.
def 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 1423 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.darkCorrection | ( | self, | |
exposure, | |||
darkExposure, | |||
invert = False |
|||
) |
Apply dark correction in place.
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.
RuntimeError Raised if either exposure
or darkExposure
do not have their dark time defined.
lsst.ip.isr.isrFunctions.darkCorrection
Definition at line 1714 of file isrTask.py.
def 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 2101 of file isrTask.py.
def 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.
detector : lsst.afw.cameraGeom.Detector
Detector to get linearity type from.
doLinearize : Bool
If True, linearization should be performed.
Definition at line 1757 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.ensureExposure | ( | self, | |
inputExp, | |||
camera, | |||
detectorNum | |||
) |
Ensure that the data returned by Butler is a fully constructed exposure. 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.Exposure`, `lsst.afw.image.DecoratedImageU`, or `lsst.afw.image.ImageF` The input data structure obtained from Butler. camera : `lsst.afw.cameraGeom.camera` The camera associated with the image. Used to find the appropriate detector. detectorNum : `int` The detector this exposure should match. 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 1379 of file isrTask.py.
def 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 2071 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.flatCorrection | ( | self, | |
exposure, | |||
flatExposure, | |||
invert = False |
|||
) |
Apply flat correction in place.
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.
lsst.ip.isr.isrFunctions.flatCorrection
Definition at line 1776 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.getInputDatasetTypes | ( | cls, | |
config | |||
) |
Definition at line 706 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.getIsrExposure | ( | self, | |
dataRef, | |||
datasetType, | |||
immediate = True |
|||
) |
Retrieve a calibration dataset for removing instrument signature.
dataRef : daf.persistence.butlerSubset.ButlerDataRef
DataRef of the detector data to find calibration datasets for. datasetType : str
Type of dataset to retrieve (e.g. 'bias', 'flat', etc). immediate : Bool
If True, disable butler proxies to enable error handling within this routine.
exposure : lsst.afw.image.Exposure
Requested calibration frame.
RuntimeError Raised if no matching calibration frame can be found.
Definition at line 1338 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.getOutputDatasetTypes | ( | cls, | |
config | |||
) |
Definition at line 743 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.makeDatasetType | ( | self, | |
dsConfig | |||
) |
Definition at line 798 of file isrTask.py.
def 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.table.AmpInfoCatalog` Catalog of parameters defining the amplifier on this exposure to mask. defects : `list` 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 1459 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.maskAndInterpDefect | ( | self, | |
ccdExposure, | |||
defectBaseList | |||
) |
Mask defects using mask plane "BAD" and interpolate over them, in place.
ccdExposure : lsst.afw.image.Exposure
Exposure to process. defectBaseList : List
List of defects to mask and interpolate.
Call this after CCD assembly, since defects may cross amplifier boundaries.
Definition at line 1885 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.maskAndInterpNan | ( | self, | |
exposure | |||
) |
Mask NaNs using mask plane "UNMASKEDNAN" and interpolate over them, in place.
exposure : lsst.afw.image.Exposure
Exposure to process.
We mask and interpolate over all NaNs, including those that are masked with other bits (because those may or may not be interpolated over later, and we want to remove all NaNs). Despite this behaviour, the "UNMASKEDNAN" mask plane is used to preserve the historical name.
Definition at line 1923 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.measureBackground | ( | self, | |
exposure, | |||
IsrQaConfig = None |
|||
) |
Measure the image background in subgrids, for quality control purposes. 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 1960 of file isrTask.py.
def 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.isrFunctions.overscanCorrection` function, which is called here after the amplifier is preprocessed. Parameters ---------- ccdExposure : `lsst.afw.image.Exposure` Exposure to have overscan correction performed. amp : `lsst.afw.table.AmpInfoCatalog` The amplifier to consider while correcting the overscan. Returns ------- overscanResults : `lsst.pipe.base.Struct` Result struct with components: - ``imageFit`` : scalar or `lsst.afw.image.Image` Value or fit subtracted from the amplifier image data. - ``overscanFit`` : scalar or `lsst.afw.image.Image` Value or fit subtracted from the overscan image data. - ``overscanImage`` : `lsst.afw.image.Image` Image of the overscan region with the overscan correction applied. This quantity is used to estimate the amplifier read noise empirically. Raises ------ RuntimeError Raised if the ``amp`` does not contain raw pixel information. See Also -------- lsst.ip.isr.isrFunctions.overscanCorrection
Definition at line 1527 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.readIsrData | ( | self, | |
dataRef, | |||
rawExposure | |||
) |
Retrieve necessary frames for instrument signature removal.
Pre-fetching all required ISR data products limits the IO required by the ISR. Any conflict between the calibration data available and that needed for ISR is also detected prior to doing processing, allowing it to fail quickly.
dataRef : daf.persistence.butlerSubset.ButlerDataRef
Butler reference of the detector data to be processed rawExposure : afw.image.Exposure
The raw exposure that will later be corrected with the retrieved calibration data; should not be modified in this method.
result : lsst.pipe.base.Struct
Result struct with components (which may be None
):
bias
: bias calibration frame (afw.image.Exposure
)linearizer
: functor for linearization (ip.isr.linearize.LinearizeBase
)crosstalkSources
: list of possible crosstalk sources (list
)dark
: dark calibration frame (afw.image.Exposure
)flat
: flat calibration frame (afw.image.Exposure
)bfKernel
: Brighter-Fatter kernel (numpy.ndarray
)defects
: list of defects (list
)fringes
: lsst.pipe.base.Struct
with components:fringes
: fringe calibration frame (afw.image.Exposure
)
seed
: random seed derived from the ccdExposureId for random number generator (uint32
)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. Definition at line 801 of file isrTask.py.
def 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 2024 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.run | ( | self, | |
ccdExposure, | |||
camera = None , |
|||
bias = None , |
|||
linearizer = None , |
|||
crosstalkSources = None , |
|||
dark = None , |
|||
flat = None , |
|||
bfKernel = None , |
|||
defects = None , |
|||
fringes = None , |
|||
opticsTransmission = None , |
|||
filterTransmission = None , |
|||
sensorTransmission = None , |
|||
atmosphereTransmission = None , |
|||
detectorNum = None , |
|||
isGen3 = False |
|||
) |
Perform instrument signature removal on an exposure.
Steps included in the ISR processing, in order performed, are:
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. Used to select the distortion model appropriate for this data. bias : lsst.afw.image.Exposure
, optional Bias calibration frame. linearizer : lsst.ip.isr.linearize.LinearizeBase
, optional Functor for linearization. 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. bfKernel : numpy.ndarray
, optional Brighter-fatter kernel. defects : list
, optional List of defects. fringes : lsst.pipe.base.Struct
, optional Struct containing the fringe correction data, with elements:
fringes
: fringe calibration frame (afw.image.Exposure
)seed
: random seed derived from the ccdExposureId for random number generator (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. isGen3 : bool, optional Flag this call to run() as using the Gen3 butler environment.result : lsst.pipe.base.Struct
Result struct with component:
exposure
: afw.image.Exposure
The fully ISR corrected exposure.outputExposure
: afw.image.Exposure
An alias for exposure
ossThumb
: numpy.ndarray
Thumbnail image of the exposure after overscan subtraction.flattenedThumb
: numpy.ndarray
Thumbnail image of the exposure after flat-field correction.RuntimeError Raised if a configuration option is set to True, but the required calibration data has not been specified.
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 905 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.runDataRef | ( | self, | |
sensorRef | |||
) |
Perform instrument signature removal on a ButlerDataRef of a Sensor. This method contains the `CmdLineTask` interface to the ISR processing. All IO is handled here, freeing the `run()` method to manage only pixel-level calculations. The steps performed are: - Read in necessary detrending/isr/calibration data. - Process raw exposure in `run()`. - Persist the ISR-corrected exposure as "postISRCCD" if config.doWrite=True. Parameters ---------- sensorRef : `daf.persistence.butlerSubset.ButlerDataRef` DataRef of the detector data to be processed Returns ------- result : `lsst.pipe.base.Struct` Result struct with component: - ``exposure`` : `afw.image.Exposure` The fully ISR corrected exposure. Raises ------ RuntimeError Raised if a configuration option is set to True, but the required calibration data does not exist.
Definition at line 1286 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.saturationDetection | ( | self, | |
exposure, | |||
amp | |||
) |
Detect saturated pixels and mask them using mask plane config.saturatedMaskName, in place.
exposure : lsst.afw.image.Exposure
Exposure to process. Only the amplifier DataSec is processed. amp : lsst.afw.table.AmpInfoCatalog
Amplifier detector data.
lsst.ip.isr.isrFunctions.makeThresholdMask
Definition at line 1801 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.saturationInterpolation | ( | self, | |
ccdExposure | |||
) |
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.
exposure : lsst.afw.image.Exposure
Exposure to process.
lsst.ip.isr.isrTask.saturationDetection lsst.ip.isr.isrFunctions.interpolateFromMask
Definition at line 1825 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.setValidPolygonIntersect | ( | self, | |
ccdExposure, | |||
fpPolygon | |||
) |
Set the valid polygon as the intersection of fpPolygon and the ccd corners.
ccdExposure : lsst.afw.image.Exposure
Exposure to process. fpPolygon : lsst.afw.geom.Polygon
Polygon in focal plane coordinates.
Definition at line 2047 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.suspectDetection | ( | self, | |
exposure, | |||
amp | |||
) |
Detect suspect pixels and mask them using mask plane config.suspectMaskName, in place.
exposure : lsst.afw.image.Exposure
Exposure to process. Only the amplifier DataSec is processed. amp : lsst.afw.table.AmpInfoCatalog
Amplifier detector data.
lsst.ip.isr.isrFunctions.makeThresholdMask
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 1850 of file isrTask.py.
def lsst.ip.isr.isrTask.IsrTask.updateVariance | ( | self, | |
ampExposure, | |||
amp, | |||
overscanImage = None |
|||
) |
Set the variance plane using the amplifier 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.table.AmpInfoRecord` or `FakeAmp` Amplifier detector data. overscanImage : `lsst.afw.image.MaskedImage`, optional. Image of overscan, required only for empirical read noise. See also -------- lsst.ip.isr.isrFunctions.updateVariance
Definition at line 1665 of file isrTask.py.
|
static |
Definition at line 693 of file isrTask.py.
lsst.ip.isr.isrTask.IsrTask.vignettePolygon |
Definition at line 1240 of file isrTask.py.