def test_sima(self): """ (BlockMethod) with SIMA strategy """ # NOTE: this test was brittle and failed non-deterministically with any # more than one source import sima.segment # construct the SIMA strategy simaStrategy = sima.segment.STICA(components=1) simaStrategy.append(sima.segment.SparseROIsFromMasks(min_size=20)) simaStrategy.append(sima.segment.SmoothROIBoundaries()) simaStrategy.append(sima.segment.MergeOverlapping(threshold=0.5)) tsc = ThunderContext(self.sc) data = tsc.makeExample('sources', dims=(60, 60), centers=[[20, 15]], noise=0.5, seed=42) # create and fit the thunder extraction strategy strategy = SourceExtraction('sima', simaStrategy=simaStrategy) model = strategy.fit(data, size=(30, 30)) assert(model.count == 1) # check that the one center is recovered ep = 1.5 assert(model[0].distance([20, 15]) < ep)
def test_sima(self): """ (BlockMethod) with SIMA strategy """ # NOTE: this test was brittle and failed non-deterministically with any # more than one source import sima.segment # construct the SIMA strategy simaStrategy = sima.segment.STICA(components=1) simaStrategy.append(sima.segment.SparseROIsFromMasks(min_size=20)) simaStrategy.append(sima.segment.SmoothROIBoundaries()) simaStrategy.append(sima.segment.MergeOverlapping(threshold=0.5)) tsc = ThunderContext(self.sc) data = tsc.makeExample('sources', dims=(60, 60), centers=[[20, 15]], noise=0.5, seed=42) # create and fit the thunder extraction strategy strategy = SourceExtraction('sima', simaStrategy=simaStrategy) model = strategy.fit(data, size=(30, 30)) assert (model.count == 1) # check that the one center is recovered ep = 1.5 assert (model[0].distance([20, 15]) < ep)
def run(data): """ Run a source extraction algorithm on an Images object Parameters ---------- data : thunder.rdds.images.Images The data the algorithm will be run on Returns ------- result : thunder.extraction.source.SourceModel Sources found by the algorithm as a SourceModel object """ from thunder import SourceExtraction method = SourceExtraction('localmax') result = method.fit(data) return result
def test_sima(self): """ (BlockMethod) with SIMA strategy """ import sima.segment # construct the SIMA strategy simaStrategy = sima.segment.STICA(components=2) simaStrategy.append(sima.segment.SparseROIsFromMasks(min_size=20)) simaStrategy.append(sima.segment.SmoothROIBoundaries()) simaStrategy.append(sima.segment.MergeOverlapping(threshold=0.5)) tsc = ThunderContext(self.sc) data = tsc.makeExample('sources', dims=(60, 60), centers=[[20, 15], [40, 45]], noise=0.1, seed=42) # create and fit the thunder extraction strategy strategy = SourceExtraction('sima', simaStrategy=simaStrategy) model = strategy.fit(data, size=(30, 30)) # order is irrelevant, but one of these must be true ep = 1.5 cond1 = (model[0].distance([20, 15]) < ep) and (model[1].distance([40, 45]) < ep) cond2 = (model[1].distance([20, 15]) < ep) and (model[0].distance([40, 45]) < ep) assert(cond1 or cond2)