def test_weighted(self): """Perform weighted sigma clipping""" INDICES = numpy.ones(len(self.data), dtype=numpy.bool) indices, niter = sigmaclip.sigmaclip(data=self.data, errors=self.errors, niter=0, siglow=1., sighigh=1., use_median=False) self.assertEqual((indices == INDICES).all(), True) INDICES[1] = INDICES[3] = INDICES[5] = False indices, niter = sigmaclip.sigmaclip(data=self.data, errors=self.errors, niter=1, siglow=1., sighigh=1., use_median=False) self.assertEqual((indices == INDICES).all(), True) INDICES[2] = False indices, niter = sigmaclip.sigmaclip(data=self.data, errors=self.errors, niter=2, siglow=1., sighigh=1., use_median=False) self.assertEqual((indices == INDICES).all(), True) # With three dimensional data indices, niter = sigmaclip.sigmaclip(data=self.data3d, errors=self.errors3d, niter=2, siglow=1., sighigh=1., use_median=True) INDICES = numpy.array([[[False, False, False, False], [False, False, False, False], [ True, True, True, True]], [[ True, True, True, True], [False, False, False, False], [False, False, False, False]]], dtype=bool) self.assertEqual((indices == INDICES).all(), True)
def test_unweighted(self): """Perform unweighted sigma clipping""" INDICES = numpy.ones(len(self.data), dtype=numpy.bool) indices, niter = sigmaclip.sigmaclip(data=self.data, errors=None, niter=0, siglow=1., sighigh=1., use_median=False) self.assertEqual((indices == INDICES).all(), True) INDICES[3] = False indices, niter = sigmaclip.sigmaclip(data=self.data, errors=None, niter=1, siglow=1., sighigh=1., use_median=False) self.assertEqual((indices == INDICES).all(), True) INDICES[1] = INDICES[5] = False indices, niter = sigmaclip.sigmaclip(data=self.data, errors=None, niter=2, siglow=1., sighigh=1., use_median=False) self.assertEqual((indices == INDICES).all(), True)
def test_clip2background(self): """Clip until no more data are clipped""" indices, niter = sigmaclip.sigmaclip(data=self.data, errors=self.errors, niter=-100, siglow=3., sighigh=3.) self.assertEqual(niter, 2) indices, niter = sigmaclip.sigmaclip(data=self.data, errors=self.errors, niter=-100, siglow=2., sighigh=2.) self.assertEqual(niter, 2) indices, niter = sigmaclip.sigmaclip(data=self.data, errors=self.errors, niter=-100, siglow=1., sighigh=1.) self.assertEqual(niter, 3) INDICES = numpy.zeros(len(self.data), dtype=numpy.bool) indices, niter = sigmaclip.sigmaclip(data=self.data, errors=self.errors, niter=-100, siglow=.2, sighigh=.2) self.assertEqual((indices == INDICES).all(), True) self.assertEqual(niter, 1)