25 from lsst.ip.isr import biasCorrection, flatCorrection
27 from .isr
import DecamIsrTask, DecamIsrConfig
29 __all__ = [
"DecamCpIsrConfig",
"DecamCpIsrTask"]
32 def _computeEdgeSize(rawExposure, calibExposure):
33 """Compute the number of edge trim pixels of the calibration product. 35 Some Community Pipeline Calibration products are trimmed on their edges 36 and are smaller than the raw data. Use the dimension difference between 37 raw exposure and the calibration product to compute the edge trim pixels. 41 rawExposure : `lsst.afw.image.Exposure` 42 The input raw exposure. 43 calibExposure : `lsst.afw.image.Exposure` 44 Calibration bias or flat exposure, known to be smaller than raw data. 49 An integer as the number of trimmed pixels on each edge. 51 nx, ny = rawExposure.getBBox().getDimensions() - calibExposure.getBBox().getDimensions()
52 assert nx == ny,
"Exposure is trimmed differently in X and Y" 53 assert nx % 2 == 0,
"Exposure is trimmed unevenly in X" 54 assert nx >= 0,
"Calibration image is larger than raw data" 66 """Perform ISR task using Community Pipeline Calibration Products MasterCal. 68 The CP MasterCal products have butler dataset types cpBias and cpFlat, 69 different from the LSST-generated calibration products (bias/flat). 71 ConfigClass = DecamCpIsrConfig
74 """Apply bias correction in place 76 DECam bias products have been trimmed and are smaller than 77 the raw exposure. The size of edge trim is computed based 78 on the dimensions of the input data. Only process the inner 79 part of the raw exposure, and mask the outer pixels as EDGE. 83 exposure : `lsst.afw.image.Exposure` 85 biasExposure : `lsst.afw.image.Exposure` 88 nEdge = _computeEdgeSize(exposure, biasExposure)
90 rawMaskedImage = exposure.maskedImage[nEdge:-nEdge, nEdge:-nEdge, LOCAL]
92 rawMaskedImage = exposure.getMaskedImage()
95 SourceDetectionTask.setEdgeBits(
96 exposure.getMaskedImage(),
97 rawMaskedImage.getBBox(),
98 exposure.getMaskedImage().getMask().getPlaneBitMask(
"EDGE")
102 """Apply flat correction in place. 104 DECam flat products have been trimmed and are smaller than 105 the raw exposure. The size of edge trim is computed based 106 on the dimensions of the input data. Only process the inner 107 part of the raw exposure, and mask the outer pixels as EDGE. 111 exposure : `lsst.afw.image.Exposure` 113 flatExposure : `lsst.afw.image.Exposure` 116 nEdge = _computeEdgeSize(exposure, flatExposure)
118 rawMaskedImage = exposure.maskedImage[nEdge:-nEdge, nEdge:-nEdge, LOCAL]
120 rawMaskedImage = exposure.getMaskedImage()
123 flatExposure.getMaskedImage(),
124 self.config.flatScalingType,
125 self.config.flatUserScale
128 SourceDetectionTask.setEdgeBits(
129 exposure.getMaskedImage(),
130 rawMaskedImage.getBBox(),
131 exposure.getMaskedImage().getMask().getPlaneBitMask(
"EDGE")
def flatCorrection(self, exposure, flatExposure)
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects...
def biasCorrection(self, exposure, biasExposure)