CpFlatNormalizationTask#
- class lsst.cp.pipe.cpFlatMeasure.CpFlatNormalizationTask(*, config: PipelineTaskConfig | None = None, log: logging.Logger | LsstLogAdapter | None = None, initInputs: dict[str, Any] | None = None, **kwargs: Any)#
Bases:
PipelineTaskRescale merged flat frames to remove unequal screen illumination.
Methods Summary
measureScales(bgMatrix[, bgCounts, iterations])Convert backgrounds to exposure and detector components.
run(inputMDs, inputDims, camera)Normalize FLAT exposures to a consistent level.
runQuantum(butlerQC, inputRefs, outputRefs)Do butler IO and transform to provide in memory objects for tasks
runmethod.Methods Documentation
- measureScales(bgMatrix, bgCounts=None, iterations=10)#
Convert backgrounds to exposure and detector components.
Parameters#
- bgMatrix
np.ndarray, (nDetectors, nExposures) Input backgrounds indexed by exposure (axis=0) and detector (axis=1).
- bgCounts
np.ndarray, (nDetectors, nExposures), optional Input pixel counts used to in measuring bgMatrix, indexed identically.
- iterations
int, optional Number of iterations to use in decomposition.
Returns#
- scaleResult
lsst.pipe.base.Struct Result struct containing fields:
vectorEOutput E vector of exposure level scalings (
np.array, (nExposures)).vectorGOutput G vector of detector level scalings (
np.array, (nExposures)).bgModelExpected model bgMatrix values, calculated from E and G (
np.ndarray, (nDetectors, nExposures)).
Notes#
The set of background measurements B[exposure, detector] of flat frame data should be defined by a “Cartesian” product of two vectors, E[exposure] and G[detector]. The E vector represents the total flux incident on the focal plane. In a perfect camera, this is simply the sum along the columns of B (np.sum(B, axis=0)).
However, this simple model ignores differences in detector gains, the vignetting of the detectors, and the illumination pattern of the source lamp. The G vector describes these detector dependent differences, which should be identical over different exposures. For a perfect lamp of unit total intensity, this is simply the sum along the rows of B (np.sum(B, axis=1)). This algorithm divides G by the total flux level, to provide the relative (not absolute) scales between detectors.
The algorithm here, from pipe_drivers/constructCalibs.py and from there from Eugene Magnier/PanSTARRS [1], attempts to iteratively solve this decomposition from initial “perfect” E and G vectors. The operation is performed in log space to reduce the multiply and divides to linear additions and subtractions.
References#
- bgMatrix
- run(inputMDs, inputDims, camera)#
Normalize FLAT exposures to a consistent level.
Parameters#
- inputMDs
list[lsst.daf.base.PropertyList] Amplifier-level metadata used to construct scales.
- inputDims
list[dict] List of dictionaries of input data dimensions/values. Each list entry should contain:
"exposure"exposure id value (
int)"detector"detector id value (
int)
Returns#
- results
lsst.pipe.base.Struct The results struct containing:
outputScalesDictionary of scales, indexed by detector (
int), amplifier (int), and exposure (int) (dict[dict[dict[float]]]).
Raises#
- KeyError
Raised if the input dimensions do not contain detector and exposure, or if the metadata does not contain the expected statistic entry.
- inputMDs
- runQuantum(butlerQC, inputRefs, outputRefs)#
Do butler IO and transform to provide in memory objects for tasks
runmethod.Parameters#
- butlerQC
QuantumContext A butler which is specialized to operate in the context of a
lsst.daf.butler.Quantum.- inputRefs
InputQuantizedConnection Datastructure whose attribute names are the names that identify connections defined in corresponding
PipelineTaskConnectionsclass. The values of these attributes are thelsst.daf.butler.DatasetRefobjects associated with the defined input/prerequisite connections.- outputRefs
OutputQuantizedConnection Datastructure whose attribute names are the names that identify connections defined in corresponding
PipelineTaskConnectionsclass. The values of these attributes are thelsst.daf.butler.DatasetRefobjects associated with the defined output connections.
- butlerQC