Пример #1
0
    def filterCrosstalkCalib(inCalib):
        """Apply valid constraints to the measured values.

        Any measured coefficient that is determined to be invalid is
        set to zero, and has the error set to nan.  The validation is
        determined by checking that the measured coefficient is larger
        than the calculated standard error of the mean.

        Parameters
        ----------
        inCalib : `lsst.ip.isr.CrosstalkCalib`
            Input calibration to filter.

        Returns
        -------
        outCalib : `lsst.ip.isr.CrosstalkCalib`
             Filtered calibration.
        """
        outCalib = CrosstalkCalib()
        outCalib.numAmps = inCalib.numAmps

        outCalib.coeffs = inCalib.coeffs
        outCalib.coeffs[~inCalib.coeffValid] = 0.0

        outCalib.coeffErr = inCalib.coeffErr
        outCalib.coeffErr[~inCalib.coeffValid] = np.nan

        outCalib.coeffNum = inCalib.coeffNum
        outCalib.coeffValid = inCalib.coeffValid

        return outCalib
Пример #2
0
    def testDirectAPI(self):
        """Test that individual function calls work"""
        config = MeasureCrosstalkTask.ConfigClass()
        measure = MeasureCrosstalkTask(config=config)
        ratios = measure.extractCrosstalkRatios(self.exposure,
                                                threshold=self.value - 1)
        coeff, coeffErr, coeffNum = measure.measureCrosstalkCoefficients(
            ratios)
        self.checkCoefficients(coeff, coeffErr, coeffNum)
        calib = CrosstalkCalib()
        calib.coeffs = coeff.transpose()
        calib.coeffErr = coeffErr.transpose()
        calib.coeffNum = coeffNum.transpose()
        calib.subtractCrosstalk(self.exposure,
                                crosstalkCoeffs=coeff.transpose(),
                                minPixelToMask=self.value - 1,
                                crosstalkStr=self.crosstalkStr)
        self.checkSubtracted(self.exposure)

        outPath = tempfile.mktemp(
        ) if outputName is None else "{}-isrCrosstalk".format(outputName)
        outPath += '.yaml'
        calib.writeText(outPath)