Coverage for tests/test_imageSubtract.py : 29%

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-2016 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/>. #
# known input images
# This one tests convolve and subtract
# D = I - (K.x.T + bg)
self.config = ipDiffim.ImagePsfMatchTask.ConfigClass() self.config.kernel.name = "AL" self.subconfig = self.config.kernel.active self.kSize = self.subconfig.kernelSize
# gaussian reference kernel self.gSize = self.kSize self.gaussFunction = afwMath.GaussianFunction2D(2, 3) self.gaussKernel = afwMath.AnalyticKernel(self.gSize, self.gSize, self.gaussFunction)
if defDataDir: defImagePath = os.path.join(defDataDir, "DC3a-Sim", "sci", "v5-e0", "v5-e0-c011-a00.sci.fits") self.templateImage = afwImage.MaskedImageF(defImagePath) self.scienceImage = self.templateImage.Factory(self.templateImage.getDimensions())
afwMath.convolve(self.scienceImage, self.templateImage, self.gaussKernel, False)
del self.subconfig del self.gaussFunction del self.gaussKernel if defDataDir: del self.templateImage del self.scienceImage
imsize = int(5 * self.kSize)
p0 = afwGeom.Point2I(xloc - imsize//2, yloc - imsize//2) p1 = afwGeom.Point2I(xloc + imsize//2, yloc + imsize//2) bbox = afwGeom.Box2I(p0, p1)
tmi = afwImage.MaskedImageF(self.templateImage, bbox, origin=afwImage.LOCAL) smi = afwImage.MaskedImageF(self.scienceImage, bbox, origin=afwImage.LOCAL) diffIm = ipDiffim.convolveAndSubtract(tmi, smi, self.gaussKernel, bgVal)
bbox = self.gaussKernel.shrinkBBox(diffIm.getBBox(origin=afwImage.LOCAL)) diffIm2 = afwImage.MaskedImageF(diffIm, bbox, origin=afwImage.LOCAL)
# image is empty (or the additional background you subtracted off) for j in range(diffIm2.getHeight()): for i in range(diffIm2.getWidth()): self.assertAlmostEqual(diffIm2.image[i, j, afwImage.LOCAL], -1.*bgVal, 3)
imsize = int(5 * self.kSize)
p0 = afwGeom.Point2I(xloc - imsize//2, yloc - imsize//2) p1 = afwGeom.Point2I(xloc + imsize//2, yloc + imsize//2) bbox = afwGeom.Box2I(p0, p1)
tmi = afwImage.MaskedImageF(self.templateImage, bbox, origin=afwImage.LOCAL) smi = afwImage.MaskedImageF(self.scienceImage, bbox, origin=afwImage.LOCAL) bgFunc = afwMath.PolynomialFunction2D(bgOrder) # coeffs are 0. by default diffIm = ipDiffim.convolveAndSubtract(tmi, smi, self.gaussKernel, bgFunc)
bbox = self.gaussKernel.shrinkBBox(diffIm.getBBox(origin=afwImage.LOCAL)) diffIm2 = afwImage.MaskedImageF(diffIm, bbox, origin=afwImage.LOCAL) for j in range(diffIm2.getHeight()): for i in range(diffIm2.getWidth()): self.assertAlmostEqual(diffIm2.image[i, j, afwImage.LOCAL], 0., 4)
def testConvolveAndSubtract(self): self.runConvolveAndSubtract1(bgVal=0) self.runConvolveAndSubtract1(bgVal=10) # this one uses a function self.runConvolveAndSubtract2(bgOrder=0) self.runConvolveAndSubtract2(bgOrder=2)
#####
lsst.utils.tests.init()
lsst.utils.tests.init() unittest.main() |