Exemplo n.º 1
0
 def testMismatch(self):
     """Test that we get an exception when there's a size mismatch"""
     scale = 5
     dims = self.image.getDimensions()
     mask = afwImage.MaskU(dims * scale)
     mask.set(0xFF)
     ctrl = afwMath.StatisticsControl()
     ctrl.setAndMask(0xFF)
     subMask = afwImage.MaskU(
         mask, afwGeom.Box2I(afwGeom.Point2I(dims * (scale - 1)), dims))
     subMask.set(0)
     # Whoops, we "forgot" to use "subMask" instead of "mask"...
     # That would ordinarily result in a NAN (because the lower-left is completely masked).
     self.assertRaisesLsstCpp(lsst.pex.exceptions.InvalidParameterException,
                              afwMath.makeStatistics, self.image, mask,
                              afwMath.MEDIAN, ctrl)
Exemplo n.º 2
0
 def testMismatch(self):
     """Test that we get an exception when there's a size mismatch"""
     scale = 5
     dims = self.image.getDimensions()
     mask = afwImage.MaskU(dims * scale)
     mask.set(0xFF)
     ctrl = afwMath.StatisticsControl()
     ctrl.setAndMask(0xFF)
     # If it didn't raise, this would result in a NaN (the image data is completely masked).
     self.assertRaises(lsst.pex.exceptions.InvalidParameterError,
                       afwMath.makeStatistics, self.image, mask,
                       afwMath.MEDIAN, ctrl)
     subMask = afwImage.MaskU(
         mask, afwGeom.Box2I(afwGeom.Point2I(dims * (scale - 1)), dims))
     subMask.set(0)
     # Using subMask is successful.
     self.assertEqual(
         afwMath.makeStatistics(self.image, subMask, afwMath.MEDIAN,
                                ctrl).getValue(), self.val)
Exemplo n.º 3
0
    def testMask(self):
        mask = afwImage.MaskU(afwGeom.Extent2I(10, 10))
        mask.set(0x0)

        mask.set(1, 1, 0x10)
        mask.set(3, 1, 0x08)
        mask.set(5, 4, 0x08)
        mask.set(4, 5, 0x02)

        stats = afwMath.makeStatistics(mask, afwMath.SUM | afwMath.NPOINT)
        self.assertEqual(mask.getWidth() * mask.getHeight(),
                         stats.getValue(afwMath.NPOINT))
        self.assertEqual(0x1a, stats.getValue(afwMath.SUM))

        def tst():
            afwMath.makeStatistics(mask, afwMath.MEAN)

        self.assertRaises(lsst.pex.exceptions.InvalidParameterError, tst)