Exemplo n.º 1
0
def test_nsigma():
    lower = 3.0
    upper = 3.0
    reject = NSigmaOutlierRejector(lower, upper)
    size = (9, 9, 9)
    ninvalid = 5
    nforeground = 20
    mean = 20

    def assert_is_correct(data, mask):
        (
            invalid,
            foreground,
            background,
            background_used,
            background_valid,
        ) = assert_basic_mask_is_correct(mask, ninvalid, nforeground)
        subdata = data.select(background_valid)
        mv = flex.mean_and_variance(subdata)
        m = mv.mean()
        s = mv.unweighted_sample_standard_deviation()
        p0 = m - lower * s
        p1 = m + upper * s
        mask = (subdata >= p0) & (subdata <= p1)
        exp = background_valid.select(mask)
        assert len(exp) == len(background_used)
        assert all(ii == jj for ii, jj in zip(exp, background_used))

    for i in range(10):
        data, mask = generate_shoebox(size, mean, nforeground, ninvalid)
        reject(data, mask)
        assert_is_correct(data, mask)
Exemplo n.º 2
0
 def __init__(self):
   from dials.algorithms.background.simple import NSigmaOutlierRejector
   self.lower = 3.0
   self.upper = 3.0
   self.reject = NSigmaOutlierRejector(self.lower, self.upper)
   self.size = (9,9,9)
   self.ninvalid = 5
   self.nforeground = 20
   self.mean = 20
Exemplo n.º 3
0
    def run(self):
        from dials.algorithms.background.simple import Creator
        from dials.algorithms.background.simple import Constant2dModeller
        from dials.algorithms.background.simple import TruncatedOutlierRejector
        from dials.algorithms.background.simple import NSigmaOutlierRejector
        from dials.algorithms.background.simple import NormalOutlierRejector

        modeller = Constant2dModeller()

        outlier_rejector = [
            None,
            TruncatedOutlierRejector(0.01, 0.01),
            NSigmaOutlierRejector(3.0, 3.0),
            NormalOutlierRejector(10),
        ]

        for rejector in outlier_rejector:
            self.tst(Creator(modeller, rejector))
Exemplo n.º 4
0
 def select_rejector():
     if outlier == 'null':
         return None
     elif outlier == 'truncated':
         return TruncatedOutlierRejector(kwargs.get("lower", 0.01),
                                         kwargs.get("upper", 0.01))
     elif outlier == 'nsigma':
         return NSigmaOutlierRejector(kwargs.get("lower", 3),
                                      kwargs.get("upper", 3))
     elif outlier == 'normal':
         return NormalOutlierRejector(kwargs.get("min_pixels", 10))
     elif outlier == 'plane':
         return MosflmOutlierRejector(kwargs.get("fraction", 1.0),
                                      kwargs.get("n_sigma", 4.0))
     elif outlier == 'tukey':
         return TukeyOutlierRejector(kwargs.get("lower", 1.5),
                                     kwargs.get("upper", 1.5))
     raise RuntimeError("Unexpected outlier rejector: %s" % outlier)
Exemplo n.º 5
0
 def select_rejector():
     if outlier == "null":
         return None
     elif outlier == "truncated":
         return TruncatedOutlierRejector(kwargs.get("lower", 0.01),
                                         kwargs.get("upper", 0.01))
     elif outlier == "nsigma":
         return NSigmaOutlierRejector(kwargs.get("lower", 3),
                                      kwargs.get("upper", 3))
     elif outlier == "normal":
         return NormalOutlierRejector(kwargs.get("min_pixels", 10))
     elif outlier == "plane":
         return MosflmOutlierRejector(kwargs.get("fraction", 1.0),
                                      kwargs.get("n_sigma", 4.0))
     elif outlier == "tukey":
         return TukeyOutlierRejector(kwargs.get("lower", 1.5),
                                     kwargs.get("upper", 1.5))
     raise RuntimeError(f"Unexpected outlier rejector: {outlier}")