def testNoPsf(self): """Test InstallGaussianPsfTask when the input exposure has no PSF.""" for width in (21, 25): for fwhm in (2.8, 7.1): config = InstallGaussianPsfTask.ConfigClass() config.width = width config.fwhm = fwhm task = InstallGaussianPsfTask(config=config) exposure = ExposureF(100, 100) task.run(exposure=exposure) self.assertTrue(exposure.hasPsf()) psf = exposure.getPsf() psfIm = psf.computeImage() self.assertEqual(psfIm.getWidth(), width) self.assertEqual(psfIm.getHeight(), width) measFwhm = psf.computeShape().getDeterminantRadius()*FwhmPerSigma self.assertAlmostEqual(measFwhm, fwhm, delta=1e-3)
def testNoPsf(self): """Test InstallGaussianPsfTask when the input exposure has no PSF.""" for width in (21, 25): for fwhm in (2.8, 7.1): config = InstallGaussianPsfTask.ConfigClass() config.width = width config.fwhm = fwhm task = InstallGaussianPsfTask(config=config) exposure = ExposureF(100, 100) task.run(exposure=exposure) self.assertTrue(exposure.hasPsf()) psf = exposure.getPsf() psfIm = psf.computeImage() self.assertEqual(psfIm.getWidth(), width) self.assertEqual(psfIm.getHeight(), width) measFwhm = psf.computeShape().getDeterminantRadius( ) * FwhmPerSigma self.assertAlmostEqual(measFwhm, fwhm, delta=1e-3)
def testMatchSingleGaussianPsf(self): """Test InstallGaussianPsfTask when the input exposure has a single Gaussian PSF.""" config = InstallGaussianPsfTask.ConfigClass() task = InstallGaussianPsfTask(config=config) for desWidth, desHeight, desSigma in ( (21, 23, 1.2), (23, 25, 3.5), ): exposure = ExposureF(100, 100) inPsf = SingleGaussianPsf(desWidth, desHeight, desSigma) exposure.setPsf(inPsf) task.run(exposure=exposure) self.assertTrue(exposure.hasPsf()) psf = exposure.getPsf() psfIm = psf.computeImage() self.assertEqual(psfIm.getWidth(), desWidth) self.assertEqual(psfIm.getHeight(), desHeight) self.assertAlmostEqual(psf.computeShape().getDeterminantRadius(), desSigma, delta=1e-3)
def testMatchSingleGaussianPsf(self): """Test InstallGaussianPsfTask when the input exposure has a single Gaussian PSF """ config = InstallGaussianPsfTask.ConfigClass() task = InstallGaussianPsfTask(config=config) for desWidth, desHeight, desSigma in ( (21, 23, 1.2), (23, 25, 3.5), ): exposure = ExposureF(100, 100) inPsf = SingleGaussianPsf(desWidth, desHeight, desSigma) exposure.setPsf(inPsf) task.run(exposure=exposure) self.assertTrue(exposure.hasPsf()) psf = exposure.getPsf() psfIm = psf.computeImage() self.assertEqual(psfIm.getWidth(), desWidth) self.assertEqual(psfIm.getHeight(), desHeight) self.assertAlmostEqual(psf.computeShape().getDeterminantRadius(), desSigma, delta=1e-3)
def testMatchDoubleGaussianPsf(self): """Test InstallGaussianPsfTask when the input exposure has a DoubleGaussian PSF.""" config = InstallGaussianPsfTask.ConfigClass() task = InstallGaussianPsfTask(config=config) for doubleGaussParms in ( # width, height, inner sigma, outer sigma, outer/inner peak amplitude (21, 23, 1.2, 3.5, 0.02), (23, 25, 3.5, 9.0, 0.02), ): exposure = ExposureF(100, 100) inPsf = DoubleGaussianPsf(*doubleGaussParms) exposure.setPsf(inPsf) desWidth, desHeight, innerSigma = doubleGaussParms[0:3] task.run(exposure=exposure) self.assertTrue(exposure.hasPsf()) psf = exposure.getPsf() psfIm = psf.computeImage() self.assertEqual(psfIm.getWidth(), desWidth) self.assertEqual(psfIm.getHeight(), desHeight) self.assertAlmostEqual(psf.computeShape().getDeterminantRadius(), innerSigma, delta=0.1)
def testMatchDoubleGaussianPsf(self): """Test InstallGaussianPsfTask when the input exposure has a DoubleGaussian PSF """ config = InstallGaussianPsfTask.ConfigClass() task = InstallGaussianPsfTask(config=config) for doubleGaussParms in ( # width, height, inner sigma, outer sigma, outer/inner peak amplitude (21, 23, 1.2, 3.5, 0.02), (23, 25, 3.5, 9.0, 0.02), ): exposure = ExposureF(100, 100) inPsf = DoubleGaussianPsf(*doubleGaussParms) exposure.setPsf(inPsf) desWidth, desHeight, innerSigma = doubleGaussParms[0:3] task.run(exposure=exposure) self.assertTrue(exposure.hasPsf()) psf = exposure.getPsf() psfIm = psf.computeImage() self.assertEqual(psfIm.getWidth(), desWidth) self.assertEqual(psfIm.getHeight(), desHeight) self.assertAlmostEqual(psf.computeShape().getDeterminantRadius(), innerSigma, delta=0.1)