def analRefresh(self): newNumAnalysed = self.tq.getNumberTasksCompleted(self.image.seriesName) if newNumAnalysed > self.numAnalysed: self.numAnalysed = newNumAnalysed newResults = self.tq.getQueueData(self.image.seriesName, 'FitResults', len(self.fitResults)) if len(newResults) > 0: if len(self.fitResults) == 0: self.fitResults = newResults self.ds = inpFilt.fitResultsSource(self.fitResults) self.dsviewer.pipeline.OpenFile(ds=self.ds) else: self.fitResults = numpy.concatenate((self.fitResults, newResults)) self.ds.setResults(self.fitResults) self.dsviewer.pipeline.Rebuild() self.progPan.fitResults = self.fitResults self.view.points = numpy.vstack((self.fitResults['fitResults']['x0'], self.fitResults['fitResults']['y0'], self.fitResults['tIndex'])).T self.numEvents = len(self.fitResults) if (self.tq.getNumberOpenTasks(self.image.seriesName) + self.tq.getNumberTasksInProgress(self.image.seriesName)) == 0 and 'SpoolingFinished' in self.image.mdh.getEntryNames(): self.dsviewer.statusbar.SetBackgroundColour(wx.GREEN) self.dsviewer.statusbar.Refresh() self.progPan.draw() self.progPan.Refresh() self.dsviewer.Refresh() self.dsviewer.update()
def execute(self, namespace): from PYME.Analysis.FitFactories import GaussMultifitSR img = namespace[self.inputImage] img.mdh['Analysis.PSFSigma'] = self.blobSigma ff = GaussMultifitSR.FitFactory(self.scale*img.data[:,:,:], img.mdh, noiseSigma=np.ones_like(img.data[:,:,:].squeeze())) res = inpFilt.fitResultsSource(ff.FindAndFit(self.threshold)) namespace[self.outputName] = res#inpFilt.mappingFilter(res, x='fitResults_x0', y='fitResults_y0')
def OnCoalesce(self, event): from PYME.Analysis.LMVis import inpFilt from PYME.Analysis.DeClump import pyDeClump pipeline = self.visFr.pipeline dclumped = pyDeClump.coalesceClumps(pipeline.selectedDataSource.resultsSource.fitResults, pipeline.selectedDataSource.clumpIndices) ds = inpFilt.fitResultsSource(dclumped) pipeline.selectedDataSource = ds pipeline.dataSources.append(ds) self.visFr.RegenFilter() self.visFr.CreateFoldPanel()
def OnCoalesce(self, event): from PYME.Analysis.LMVis import inpFilt from PYME.Analysis.DeClump import pyDeClump pipeline = self.visFr.pipeline dclumped = pyDeClump.coalesceClumps( pipeline.selectedDataSource.resultsSource.fitResults, pipeline.selectedDataSource.clumpIndices) ds = inpFilt.fitResultsSource(dclumped) pipeline.selectedDataSource = ds pipeline.dataSources.append(ds) self.visFr.RegenFilter() self.visFr.CreateFoldPanel()
def analRefresh(self): newNumAnalysed = self.tq.getNumberTasksCompleted(self.image.seriesName) if newNumAnalysed > self.numAnalysed: self.numAnalysed = newNumAnalysed newResults = self.tq.getQueueData(self.image.seriesName, 'FitResults', len(self.fitResults)) if len(newResults) > 0: if len(self.fitResults) == 0: self.fitResults = newResults self.ds = inpFilt.fitResultsSource(self.fitResults) self.dsviewer.pipeline.OpenFile(ds=self.ds) else: self.fitResults = numpy.concatenate( (self.fitResults, newResults)) self.ds.setResults(self.fitResults) self.dsviewer.pipeline.Rebuild() self.progPan.fitResults = self.fitResults self.view.points = numpy.vstack( (self.fitResults['fitResults']['x0'], self.fitResults['fitResults']['y0'], self.fitResults['tIndex'])).T self.numEvents = len(self.fitResults) if (self.tq.getNumberOpenTasks(self.image.seriesName) + self.tq.getNumberTasksInProgress(self.image.seriesName) ) == 0 and 'SpoolingFinished' in self.image.mdh.getEntryNames(): self.dsviewer.statusbar.SetBackgroundColour(wx.GREEN) self.dsviewer.statusbar.Refresh() self.progPan.draw() self.progPan.Refresh() self.dsviewer.Refresh() self.dsviewer.update()
def OnGenEvents(self, event): from PYMEnf.Simulation import locify #from PYME.Acquire.Hardware.Simulator import wormlike2 from PYME.Analysis.LMVis import inpFilt from PYME.Analysis.LMVis.visHelpers import ImageBounds import pylab #wc = wormlike2.wormlikeChain(100) pipeline = self.visFr.pipeline pipeline.filename='Simulation' pylab.figure() pylab.plot(self.xp, self.yp, 'x') #, lw=2) if isinstance(self.source, WormlikeSource): pylab.plot(self.xp, self.yp, lw=2) res = locify.eventify(self.xp, self.yp, self.meanIntensity, self.meanDuration, self.backgroundIntensity, self.meanEventNumber, self.scaleFactor, self.meanTime) pylab.plot(res['fitResults']['x0'],res['fitResults']['y0'], '+') pipeline.selectedDataSource = inpFilt.mappingFilter(inpFilt.fitResultsSource(res)) pipeline.imageBounds = ImageBounds.estimateFromSource(pipeline.selectedDataSource) pipeline.dataSources.append(pipeline.selectedDataSource) from PYME.Acquire.MetaDataHandler import NestedClassMDHandler pipeline.mdh = NestedClassMDHandler() pipeline.mdh['Camera.ElectronsPerCount'] = 1 pipeline.mdh['Camera.TrueEMGain'] = 1 pipeline.mdh['Camera.CycleTime'] = 1 pipeline.mdh['voxelsize.x'] = .110 try: pipeline.filterKeys.pop('sig') except: pass self.visFr.RegenFilter() self.visFr.SetFit()