Coverage for tests/test_suspectMasking.py : 22%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# # LSST Data Management System # Copyright 2008, 2009, 2010 LSST Corporation. # # This product includes software developed by the # LSST Project (http://www.lsst.org/). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the LSST License Statement and # the GNU General Public License along with this program. If not, # see <http://www.lsstcorp.org/LegalNotices/>. #
ampInfoShema = afwTable.AmpInfoTable.makeMinimalSchema() ampInfoCat = afwTable.AmpInfoCatalog(ampInfoShema) ampInfo = ampInfoCat.addNew() ampInfo.setRawBBox(lsst.geom.Box2I(lsst.geom.Point2I(-5, 7), lsst.geom.Extent2I(53, 104))) ampInfo.setSuspectLevel(25000) self.ampInfo = ampInfo self.isrTask = ipIsr.IsrTask()
self.ampInfo = None self.isrTask = None
"""Test that masking works """ maxVal = 32000 fracSuspect = 0.3 suspectLevel = maxVal*(1 - fracSuspect)
bbox = self.ampInfo.getRawBBox() self.ampInfo.setSuspectLevel(suspectLevel) maskedImage = makeRampMaskedImage(bbox, 0, maxVal) imArr = maskedImage.getImage().getArray() desSetArr = imArr >= suspectLevel exposure = afwImage.ExposureF(maskedImage) inMaskedImage = maskedImage.Factory(maskedImage, True) # deep copy self.isrTask.suspectDetection(exposure, self.ampInfo) maskArr = maskedImage.getMask().getArray() suspectMask = maskedImage.getMask().getPlaneBitMask("SUSPECT") measSetArr = maskArr == suspectMask self.assertImagesEqual(desSetArr, measSetArr) self.assertMaskedImagesAlmostEqual(inMaskedImage, maskedImage, doMask=False)
"""Test that setting the suspect level to nan disables masking """ bbox = self.ampInfo.getRawBBox() self.ampInfo.setSuspectLevel(float("nan")) maskedImage = makeRampMaskedImage(bbox, 0, 32000) exposure = afwImage.ExposureF(maskedImage) inMaskedImage = maskedImage.Factory(maskedImage, True) # deep copy self.isrTask.suspectDetection(exposure, self.ampInfo) self.assertMaskedImagesAlmostEqual(inMaskedImage, maskedImage)
"""Test that masking works using some other mask name instead of the default """ AltMaskName = "BAD" # pick something that exists for simplicity
isrConfig = ipIsr.IsrTask.ConfigClass() isrConfig.suspectMaskName = AltMaskName isrTask = ipIsr.IsrTask(config=isrConfig)
maxVal = 32000 fracSuspect = 0.3 suspectLevel = maxVal*(1 - fracSuspect)
bbox = self.ampInfo.getRawBBox() self.ampInfo.setSuspectLevel(suspectLevel) maskedImage = makeRampMaskedImage(bbox, 0, maxVal) imArr = maskedImage.getImage().getArray() desSetArr = imArr >= suspectLevel exposure = afwImage.ExposureF(maskedImage) inMaskedImage = maskedImage.Factory(maskedImage, True) # deep copy isrTask.suspectDetection(exposure, self.ampInfo) maskArr = maskedImage.getMask().getArray() suspectMask = maskedImage.getMask().getPlaneBitMask(AltMaskName) measSetArr = maskArr == suspectMask self.assertImagesEqual(desSetArr, measSetArr) self.assertMaskedImagesAlmostEqual(inMaskedImage, maskedImage, doMask=False)
"""Make a ramp image of the specified size and image class
Image values start from 0 at the lower left corner and increase by 1 along rows Variance values equal image values + 100 Mask values equal 0 """ mi = imgClass(bbox) imageArr = mi.getImage().getArray() varianceArr = mi.getVariance().getArray() maskArr = mi.getMask().getArray() imData = np.linspace(minVal, maxVal, imageArr.size) imData.shape = (bbox.getHeight(), bbox.getWidth()) imageArr[:] = imData varianceArr[:] = 100 + imData maskArr[:] = 0 return mi
lsst.utils.tests.init()
lsst.utils.tests.init() unittest.main() |