def __init__(self, model, workers=None, setup=True, **kwargs): # constants: if workers is None: workers = max(1, cpu_count() - 1) self.model = model self.metadata = DictionaryTreeBrowser() self._scale = 1.0 # -1 -> done pixel, use # -2 -> done, ignore when diffusion # 0 -> bad fit/no info # >0 -> select when turn comes self.metadata.add_node('marker') self.metadata.add_node('goodness_test') marker = np.empty(self.model.axes_manager.navigation_shape[::-1]) marker.fill(self._scale) self.metadata.marker = marker self.strategies = StrategyList(self) self.strategies.append(ReducedChiSquaredStrategy()) self.strategies.append(HistogramStrategy()) self._active_strategy_ind = 0 self.update_every = max(10, workers * 2) # some sensible number.... from hyperspy.samfire_utils.fit_tests import red_chisq_test self.metadata.goodness_test = red_chisq_test(tolerance=1.0) self.metadata._gt_dump = None from hyperspy.samfire_utils.samfire_kernel import single_kernel self.single_kernel = single_kernel self._workers = workers if len(kwargs) or setup: self._setup(**kwargs) self.refresh_database()