예제 #1
0
    def test_overscanCorrection_isNotInt(self):
        """Expect smaller median/smaller std after.
        Expect exception if overscan fit type isn't known.
        """
        inputExp = isrMock.RawMock().run()

        amp = inputExp.getDetector()[0]
        ampI = inputExp.maskedImage[amp.getRawDataBBox()]
        overscanI = inputExp.maskedImage[amp.getRawHorizontalOverscanBBox()]

        for fitType in ('MEAN', 'MEDIAN', 'MEANCLIP', 'POLY', 'CHEB',
                        'NATURAL_SPLINE', 'CUBIC_SPLINE', 'UNKNOWN'):
            if fitType in ('NATURAL_SPLINE', 'CUBIC_SPLINE'):
                order = 3
            else:
                order = 1

            if fitType == 'UNKNOWN':
                with self.assertRaises(
                        pexExcept.Exception,
                        msg=
                        f"overscanCorrection overscanIsNotInt fitType: {fitType}"
                ):
                    ipIsr.overscanCorrection(ampI,
                                             overscanI,
                                             fitType=fitType,
                                             order=order,
                                             collapseRej=3.0,
                                             statControl=None,
                                             overscanIsInt=False)
            else:
                response = ipIsr.overscanCorrection(ampI,
                                                    overscanI,
                                                    fitType=fitType,
                                                    order=order,
                                                    collapseRej=3.0,
                                                    statControl=None,
                                                    overscanIsInt=False)
            self.assertIsInstance(
                response,
                pipeBase.Struct,
                msg=
                f"overscanCorrection overscanIsNotInt Bad response: {fitType}")
            self.assertIsNotNone(
                response.imageFit,
                msg=
                f"overscanCorrection overscanIsNotInt Bad imageFit: {fitType}")
            self.assertIsNotNone(
                response.overscanFit,
                msg=
                f"overscanCorrection overscanIsNotInt Bad overscanFit: {fitType}"
            )
            self.assertIsInstance(
                response.overscanImage,
                afwImage.MaskedImageF,
                msg=
                f"overscanCorrection overscanIsNotInt Bad overscanImage: {fitType}"
            )
예제 #2
0
    def test_untrimmedSimple(self):
        """Confirm untrimmed data classes are generated consistently.
        """
        exposure = isrMock.RawMock().run()
        fringe = isrMock.UntrimmedFringeMock().run()

        initialStd = np.std(exposure.getMaskedImage().getImage().getArray()[:])

        diff = (exposure.getMaskedImage().getImage().getArray()[:] -
                fringe.getMaskedImage().getImage().getArray()[:])

        newStd = np.std(diff[:])

        self.assertLess(newStd, initialStd)
예제 #3
0
    def setUp(self):
        self.config = IsrTaskConfig()
        self.config.qa = IsrQaConfig()
        self.task = IsrTask(config=self.config)

        self.mockConfig = isrMock.IsrMockConfig()
        self.mockConfig.isTrimmed = False
        self.doGenerateImage = True
        self.dataRef = isrMock.DataRefMock(config=self.mockConfig)
        self.camera = isrMock.IsrMock(config=self.mockConfig).getCamera()

        self.inputExp = isrMock.RawMock(config=self.mockConfig).run()
        self.amp = self.inputExp.getDetector()[0]
        self.mi = self.inputExp.getMaskedImage()
예제 #4
0
 def testAssembleCcdTask_exp_doTrim(self):
     self.assertEqual(self.runTest(inputExp=isrMock.RawMock().run(), doTrim=True).getBBox(),
                      self.outputExp.getBBox())
예제 #5
0
 def setUp(self):
     self.outputExp = isrMock.TrimmedRawMock().run()
     self.outputUntrimmedExp = isrMock.RawMock().run()