示例#1
0
    def addRoi(self, x=None, y=None, width=None, height=None, angle=0):
        #To get the current GUI situation
        guibean = SDAPlotter.getGuiBean(self.panel)
        #roi=gbean.get(GuiParameters.ROIDATA)
        roi = guibean[GuiParameters.ROIDATA]
        roiList = guibean[GuiParameters.ROIDATALIST]

        if None in [x, y, width, height, angle]:  #No ROI parameter defined.
            print "Not enough ROI info defined in the command. Use GUI ROI box selection"
            if roi is None:  # No ROI selection on the gui
                print "Can not add ROI. Please either give ROI five parameters or draw a box in the GUI"
                return
        else:
            roi = RectangularROI(x, y, width, height, angle)

        if roiList is None:  #No ROI Table on the gui
            roiList = RectangularROIList()

        roiList.add(roi)

        #Update the view with new ROI table
        #		guibean=GuiBean();
        guibean[GuiParameters.ROIDATALIST] = roiList
        SDAPlotter.setGuiBean(self.panel, guibean)

        self.getRoiTable()
    def call(self):

        # 1. Register file
        if self.pathToRegister:
            self.fileRegistrar.registerFile(self.pathToRegister)

        # 2. generate position
        position = [self.collectionTime]
        if self.filepathToReport:
            position.append(self.filepathToReport)

        processorResults = []
        for processor in self.processors:
            processorResults += list(
                processor.getPosition(self.datasetProvider.getDataset()))
        # 3. display image
        if self.panelName:
            #print "Plotter.plotImage(%r, ...)" % self.panelName
            Plotter.plotImage(
                self.panelName,
                self.renderer.renderShapesOntoDataset(
                    self.datasetProvider.getDataset()))
        if self.panelNameRCP:
            #print "RCPPlotter.imagePlot(%r, ...)" % self.panelNameRCP
            SDAPlotter.imagePlot(
                self.panelNameRCP,
                self.renderer.renderShapesOntoDataset(
                    self.datasetProvider.getDataset()))
        metricsResults = [time.time() - self.time_created
                          ] if self.return_performance_metrics else []
        return position + metricsResults + processorResults
示例#3
0
def plot_viewnexustree(name, tree):
    if not isinstance(tree, _h5mgr):
        import sys #@Reimport
        print >> sys.stderr, "Only tree from loadnexus works for now"
        return
#        import jyhdf5io._tojavatree as _tojtree
#        tree = _tojtree(tree)
    _plotter.viewHDF5Tree(name, tree.gettree())
示例#4
0
def plot_viewtree(name, tree):
    if not isinstance(tree, _h5mgr):
        import sys #@Reimport
        print >> sys.stderr, "Only tree from loadnexus works for now"
        return
#        import jyhdf5io._tojavatree as _tojtree
#        tree = _tojtree(tree)
    _plotter.viewTree(name, tree.gettree())
示例#5
0
 def imagePlot(self, panel=None):
     if panel is None:
         panel=self.panel;
         
     da=self.chData.cagetArrayUnsigned();
     ds = IntegerDataset.createFromObject(da);
     newds=ds.reshape([self.height, self.width]);
 
     SDAPlotter.imagePlot(panel, newds);
示例#6
0
 def imagePlot0(self, panel=None):
     if panel is None:
         panel=self.panel;
         
     da=self.chData.cagetArrayByte()
     ds = ByteDataset.createFromObject(da);
 
     newds=ds.reshape([self.height, self.width]);
 
     SDAPlotter.imagePlot(panel, newds);
示例#7
0
    def clearRois(self):
        guibean = SDAPlotter.getGuiBean(self.panel)

        if GuiParameters.ROIDATALIST in guibean:
            #guibean[GuiParameters.ROIDATALIST]=None;
            guibean.clear()

        SDAPlotter.setGuiBean(self.panel, guibean)

        self.roiList = []
        self.updateRoiList()
示例#8
0
	def display(self, fileName):
		if fileName is None:
			print "Please give a full file name to display";
			return;
		else:
			dataset = self.loadDataset(fileName)
				
		if self.panel:
			SDAPlotter.imagePlot(self.panel, dataset);
		else:
			print "No panel set to display"
			raise Exception("No panel_name set in %s. Set this or set %s.setAlive(False)" % (self.name,self.name));
示例#9
0
	def display(self,file=None):
		if file==None:
			file = self.getFullFileName()
#		self.data.loadPilatusData(file)
		self.data.load(PilatusTiffLoader(file));
		dataset = self.data.getAxis(0);

		if self.panel:
			if self.logScale:
				SDAPlotter.imagePlot(self.panel, DatasetUtils.lognorm(dataset)); #For RCP GUI
			else:
				SDAPlotter.imagePlot(self.panel, dataset); #For RCP GUI
		else:
			print "No panel set to display"
			raise Exception("No panel_name set in %s. Set this or set %s.setAlive(False)" % (self.name,self.name));
示例#10
0
	def display(self, fileName=None):
		if fileName is None:
			fileName = self.fileName;
			
		self.dataHolder=dnp.io.load(fileName);
		dataset = self.dataHolder[0];

		if self.panel:
			if self.logScale:
				SDAPlotter.imagePlot(self.panel, DatasetUtils.lognorm(dataset)); #For RCP GUI
			else:
				SDAPlotter.imagePlot(self.panel, dataset); #For RCP GUI
		else:
			print "No panel set to display"
			raise Exception("No panel_name set in %s. Set this or set %s.setAlive(False)" % (self.name,self.name));
示例#11
0
    def display(self, dataset=None):
        if dataset is None:
            if self.dataset is None:
                print "No dataset to display"
                return
            else:
                dataset = self.dataset

        if self.panel:
            SDAPlotter.imagePlot(self.panel, dataset)
        else:
            print "No panel set to display"
            raise Exception(
                "No panel_name set in %s. Set this or set %s.setAlive(False)" %
                (self.name, self.name))
示例#12
0
def plot_getdatabean(name):
    jdb = _plotter.getDataBean(name)
    if jdb is not None:
        jgb = jdb.getGuiParameters()
        if jgb is not None:
            _wrap_gui_bean(jgb, jgb)
    return jdb
示例#13
0
    def display(self, dataset=None):
        if dataset is None:
            dataset = self.dataset

        if dataset is None:
            print("No dataset to display")
            return

        if self.panel:
            from uk.ac.diamond.scisoft.analysis import SDAPlotter
            SDAPlotter.imagePlot(self.panel, dataset)
        else:
            print("No panel set to display")
            raise ValueError(
                "No panel_name set in %s. Set this or set %s.setAlive(False)" %
                (self.name, self.name))
示例#14
0
def plot_getdatabean(name):
    jdb = _plotter.getDataBean(name)
    if jdb is not None:
        jgb = jdb.getGuiParameters()
        if jgb is not None:
            _wrap_gui_bean(jgb, jgb)
    return jdb
示例#15
0
 def imagePlot2(self, panel=None):
     if panel is None:
         panel=self.panel;
         
     da=self.chData.cagetArrayByte();
     
     #To convert from singed to unsigned
     #method 2
     da=[x&0xff for x in da]
     
 #method 3
 #    ds1=array.array('B' [x&0xff for x in ds1] )
         
     ds = IntegerDataset.createFromObject(da);
     newds=ds.reshape([self.height, self.width]);
     
     SDAPlotter.imagePlot(panel, newds);
    def display(self, retryUntilTimeout=True):
        if self.panel_name == None and self.panel_name_rcp == None:
            raise Exception("No panel_name or panel_name_rcp set in %s. " +
                            "Set this or set %s.display_image=False" %
                            (self.name, self.name))

        if self.panel_name:
            #print "Plotter.plotImage(%r, ...)" % self.panel_name
            Plotter.plotImage(
                self.panel_name,
                self.renderer.renderShapesOntoDataset(
                    self.getDataset(retryUntilTimeout)))
        if self.panel_name_rcp:
            #print "RCPPlotter.imagePlot(%r, ...)" % self.panel_name_rcp
            SDAPlotter.imagePlot(
                self.panel_name_rcp,
                self.renderer.renderShapesOntoDataset(
                    self.getDataset(retryUntilTimeout)))
示例#17
0
 def getRoiSelectionBox(self):
     #Get current ROI info from the View
     guibean = SDAPlotter.getGuiBean(self.panel)
     #roi=gbean.get(GuiParameters.ROIDATA)
     roi = guibean[GuiParameters.ROIDATA]
     if roi is None:
         print None
     else:
         print self.getRoiParameters(roi)
     return roi
示例#18
0
    def display(self, file=None):
        if file == None:
            file = self.getFullFileName()
#		self.data.loadPilatusData(file)
        self.data.load(PilatusTiffLoader(file))
        dataset = self.data.getAxis(0)

        if self.panel:
            if self.logScale:
                SDAPlotter.imagePlot(self.panel, DatasetUtils.lognorm(dataset))
                #For RCP GUI
            else:
                SDAPlotter.imagePlot(self.panel, dataset)
                #For RCP GUI
        else:
            print "No panel set to display"
            raise Exception(
                "No panel_name set in %s. Set this or set %s.setAlive(False)" %
                (self.name, self.name))
示例#19
0
    def display(self, file=None):
        if file is None:
            file = self.fileName

#		self.dataHolder.loadPilatusData(file)
#		self.dataHolder.load(PilatusTiffLoader(file));
#		dataset = self.dataHolder.getAxis(0);
        self.dataHolder = dnp.io.load(file)
        dataset = self.dataHolder[0]

        if self.panel:
            if self.logScale:
                SDAPlotter.imagePlot(self.panel, DatasetMaths.lognorm(dataset))
                #For RCP GUI
            else:
                SDAPlotter.imagePlot(self.panel, dataset)
                #For RCP GUI
        else:
            print "No panel set to display"
            raise Exception(
                "No panel_name set in %s. Set this or set %s.setAlive(False)" %
                (self.name, self.name))
示例#20
0
    def updateRoiList(self):
        guibean = SDAPlotter.getGuiBean(self.panel)

        roiList = guibean[GuiParameters.ROIDATALIST]
        tempRoiList = []

        if not isinstance(
                roiList,
                RectangularROIList):  #No rectangular roi list defined.
            return
        else:
            for roi in roiList:
                if isinstance(roi, RectangularROI):
                    tempRoiList.append(roi)

        tempRoiList.sort(key=lambda roi: roi.name)
        self.roiList = tempRoiList
示例#21
0
def plot_addline(*arg, **kwarg):
    _plotter.addPlot(*arg, **kwarg)
示例#22
0
def plot_surface(*arg, **kwarg):
    _plotter.surfacePlot(*arg, **kwarg)
示例#23
0
def plot_updatepoints2d(*arg, **kwarg):
    _plotter.scatter2DPlotOver(*arg, **kwarg)
示例#24
0
def plot_image(*arg, **kwarg):
    _plotter.imagePlot(*arg, **kwarg)
示例#25
0
def plot_setupimagegrid(*arg, **kwarg):
    _plotter.setupNewImageGrid(*arg, **kwarg)
示例#26
0
def plot_updateline(*arg, **kwarg):
    _plotter.updatePlot(*arg, **kwarg)
示例#27
0
def plot_addstack(*arg, **kwarg):
    _plotter.addStackPlot(*arg, **kwarg)
示例#28
0
def plot_images(*arg, **kwarg):
    _plotter.imagesPlot(*arg, **kwarg)
示例#29
0
def plot_setdatabean(name, bean):
    gb = bean.getGuiParameters()
    _unwrap_gui_bean(gb, gb)
    _plotter.setDataBean(name, bean)
示例#30
0
def plot_updatestack(*arg, **kwarg):
    _plotter.updateStackPlot(*arg, **kwarg)
示例#31
0
def plot_image(*arg, **kwarg):
    _plotter.imagePlot(*arg, **kwarg)
示例#32
0
def plot_addstack(*arg, **kwarg):
    _plotter.addStackPlot(*arg, **kwarg)
示例#33
0
def plot_stack(*arg, **kwarg):
    _plotter.stackPlot(*arg, **kwarg)
示例#34
0
def plot_updateline(*arg, **kwarg):
    _plotter.updatePlot(*arg, **kwarg)
示例#35
0
def plot_line(*arg, **kwarg):
    _plotter.plot(*arg, **kwarg)
示例#36
0
def plot_setbean(name, bean):
    _plotter.setGuiBean(name, _unwrap_gui_bean(bean, _jyguibean()))
示例#37
0
def plot_addline(*arg, **kwarg):
    _plotter.addPlot(*arg, **kwarg)
示例#38
0
 def setPlotMode(self, plotmode=GuiPlotMode.TWOD):
     #		guibean=GuiBean();
     guibean = SDAPlotter.getGuiBean(self.panel)
     guibean[GuiParameters.PLOTMODE] = plotmode
     SDAPlotter.setGuiBean(self.panel, guibean)
示例#39
0
def plot_stack(*arg, **kwarg):
    _plotter.stackPlot(*arg, **kwarg)
示例#40
0
def plot_viewtree(name, tree):
    _plotter.viewTree(name, tree._getnative())
示例#41
0
def plot_updatestack(*arg, **kwarg):
    _plotter.updateStackPlot(*arg, **kwarg)
示例#42
0
def plot_getbean(name):
    jb = _plotter.getGuiBean(name)
    if jb is not None:
        return _wrap_gui_bean(jb, _guibean())
    return jb
示例#43
0
def plot_images(*arg, **kwarg):
    _plotter.imagesPlot(*arg, **kwarg)
示例#44
0
def plot_scanforimages(*arg, **kwarg):
    _plotter.scanForImages(*arg, **kwarg)
示例#45
0
def plot_imagetogrid(*arg, **kwarg):
    _plotter.plotImageToGrid(*arg, **kwarg)
示例#46
0
def plot_points3d(*arg, **kwarg):
    _plotter.scatter3DPlot(*arg, **kwarg)
示例#47
0
def plot_points2d(*arg, **kwarg):
    _plotter.scatter2DPlot(*arg, **kwarg)
示例#48
0
def plot_setdatabean(name, bean):
    gb = bean.getGuiParameters()
    _unwrap_gui_bean(gb, gb)
    _plotter.setDataBean(name, bean)
示例#49
0
def plot_getdatabean(name):
    jdb = _plotter.getDataBean(name)
    jgb = jdb.getGuiParameters()
    _wrap_gui_bean(jgb)
    return jdb
示例#50
0
def plot_line(*arg, **kwarg):
    _plotter.plot(*arg, **kwarg)
示例#51
0
def plot_volume(*arg, **kwarg):
    _plotter.volumePlot(*arg, **kwarg)
示例#52
0
def plot_points2d(*arg, **kwarg):
    _plotter.scatter2DPlot(*arg, **kwarg)
示例#53
0
def plot_updatepoints2d(*arg, **kwarg):
    _plotter.scatter2DPlotOver(*arg, **kwarg)
示例#54
0
def plot_setbean(name, bean):
    _plotter.setGuiBean(name, _unwrap_gui_bean(bean, _jyguibean()))
示例#55
0
def plot_setupimagegrid(*arg, **kwarg):
    _plotter.setupNewImageGrid(*arg, **kwarg)
示例#56
0
文件: redux.py 项目: openGDA/gda-core
    def ncdredconf(self, detector, **kwords):
        """
            if default None passed in no change is made
            default is everything off
        """
        
        if detector.lower() == "Waxs".lower():
            detector="Waxs"
        else:
            detector="Saxs"
            
        if not detector in self.settings:
            self.settings[detector] = {}
        for i in self.options:
            if not i in self.settings[detector]:
                self.settings[detector][i] = False
            if i in kwords:
                if kwords[i] == None:
                    self.settings[detector][i] = False
                else:
                    self.settings[detector][i] = kwords[i]
        
        realdet=ncdutils.getDetectorByType(self.detsystem, detector.upper())
        realdetname = realdet.getName()
        ncdutils.removeDetectorByName(self.detsystem, detector+" chain")
        
        saxsrc=ReductionChain(detector+" chain", realdetname)
        saxsrclist=saxsrc.getChain()
        
        panel=detector+" Plot"
        beanbag=SDAPlotter.getGuiBean(panel)
        if beanbag == None:
            beanbag = {}
        
        sroi = None
        if self.is2D(realdet):
            if GuiParameters.ROIDATA in beanbag:
                roi = beanbag[GuiParameters.ROIDATA]
                if isinstance(roi, SectorROI):
                    sroi = roi
                    radii = sroi.getRadii()
                    self.settings[detector]["length"]=int(math.ceil(radii[1]-radii[0]))
                    self.settings[detector]["disttobeamstop"]=radii[0]

        length =  self.settings[detector]["length"]
        slope =  self.settings[detector]["slope"]
        intercept =  self.settings[detector]["intercept"]
        if slope == 0 or slope == False:
            axisds=None
        else:
            axis=[]
            pis = realdet.getPixelSize()*1000
            d2b = self.settings[detector]["disttobeamstop"]
            for i in range(length):
                axis.append(float((i+d2b)*pis*slope+intercept))
            axisds=DataSet("qaxis", axis)
            
        mask =  self.settings[detector]["mask"]
        sect =  self.settings[detector]["sect"]
        if sroi != None:
            if sect or isinstance(axisds, DataSet):
                    start = sroi.getPoint()
                    realdet.setAttribute("beam_center_x", start[0])
                    realdet.setAttribute("beam_center_y", start[1])
            else:
                    realdet.setAttribute("beam_center_x", None)
                    realdet.setAttribute("beam_center_y", None)
                    
        cameralength = self.settings[detector]["cameralength"]
        if cameralength != False:
            realdet.setAttribute("distance", cameralength)
        else:
            realdet.setAttribute("distance", None)
            
        norm = self.settings[detector]["norm"]
        if (norm != False):
            saxsnorm=Normalisation(detector+"norm","ignored")
            saxsnorm.setCalibChannel(1)
            saxsnorm.setCalibName(ncdutils.getDetectorByType(self.detsystem, "CALIB").getName())
            saxsrclist.add(saxsnorm)
            
        bg =  self.settings[detector]["bg"]
        if bg != False: 
            if os.path.isfile(bg):
                saxsbgs=BackgroundSubtraction(detector+"bg","ignored")
                sfh=ScanFileHolder()
                if (norm>=0):
                    upstream=detector+"norm.data"
                else:
                    upstream=realdetname+".data"
                sfh.load(NexusLoader(bg,[upstream]))
                ds=sfh.getAxis(upstream)
                saxsbgs.setBackground(ds)
                saxsrclist.add(saxsbgs)
            else:
                print "background file \"%s\" does not exist." % bg
        

        if (sect):
            if sroi != None:
                    saxssect=SectorIntegration(detector+"sect","ignored")
                    saxssect.setROI(sroi)
                    if isinstance(axisds, DataSet):
                        saxssect.setqAxis(axisds)
                    if (mask):
                        if not GuiParameters.MASKING in beanbag:
                            print "no mask defined for %s" % panel
                        else:
                            mb=beanbag[GuiParameters.MASKING]
                            if not isinstance(mb, MaskingBean):
                                print "no mask defined for %s" % panel
                            else:
                                saxssect.setMask(mb.getMask())
                    saxsrclist.add(saxssect)
            else:
                print "sector integration requested but no ROI found"
                
        inv =  self.settings[detector]["inv"]
        if (inv):
            saxsinvariant=Invariant(detector+"invariant", "ignored")
            saxsrclist.add(saxsinvariant)
            
        aver =  self.settings[detector]["aver"]
        if (aver):
            saxsaver=Average(detector+"average", "ignored")
            saxsrclist.add(saxsaver)
        self.detsystem.addDetector(saxsrc)
示例#57
0
def plot_imagetogrid(*arg, **kwarg):
    _plotter.plotImageToGrid(*arg, **kwarg)
示例#58
0
def plot_surface(*arg, **kwarg):
    _plotter.surfacePlot(*arg, **kwarg)
示例#59
0
def plotdata(filename, dataType=MAC, plotPane="DataPlot", Overlay=True):
    '''Plot existing data on "MAC, PSD", or "SRS" (if any) Panel, the default is MAC data on DataPlot panel and overlay is True.
       
       syntax:
               plotdata(filename,[MAC|SRS|PSD],["MAC"|"Mythen"|"DataPlot"],[True|False])
       
               where:
                    filename: the filename string in quote. 
                
                    dataType: the input data types or formats available
		                MAC - plot MAC data on MAC panel
		                PSD - plot PSD data on Mythen panel
		                SRS - plot SRS data on SRS panel
		            
		            plotPane: the graph panel to display the plot
		        
		            Overlay:
                        'True': plot over the exist data on the graph (Default) 
                        'False': clear existing plot data from the graph before plotting new data
                         
    '''
    print("Data plotting to " + plotPane + " panel, please wait ...")
    if dataType == MAC:
        sfh = loadMacData(filename)
        dataset=sfh.getAxis(1)
        dataset.setName(filename)
        if Overlay:
            Plotter.plotOver(plotPane, sfh.getAxis(0), dataset)
        else:
            Plotter.plot(plotPane, sfh.getAxis(0), dataset)
    elif dataType == SRS:
        sfh = loadSRSData(filename)
        if Overlay:
            Plotter.plotOver(plotPane, sfh.getAxis(0), sfh.getAxis(1))
        else:
            Plotter.plot(plotPane, sfh.getAxis(0), sfh.getAxis(1))
    elif dataType == PSD:
        if not str(filename).find("mythen") == -1:
            # mythen data file
            dataset = loadMythenData(filename)
            data=dataset.getCountDataSet()
            data.setName(filename)
            if Overlay:
                Plotter.plotOver(plotPane, dataset.getAngleDataSet(), data)
            else:
                Plotter.plot(plotPane, dataset.getAngleDataSet(), data)
        else:
            parts = str(filename).split(File.separator)
            name=parts[-1]
            names=str(name).split(".")
            if representsInt(names[0]):
                # Mythen SRS file
                for each in loadMythenSRSFile(filename):
                    dataset = loadMythenData(str(each) + ".dat")
                    data=dataset.getCountDataSet()
                    data.setName(each)
                    if Overlay:
                        Plotter.plotOver(plotPane, dataset.getAngleDataSet(), data)
                    else:
                        Plotter.plot(plotPane, dataset.getAngleDataSet(), data)
            else:
                dataset = loadMythenData(filename)
                data=dataset.getCountDataSet()
                data.setName(filename)
                if Overlay:
                    Plotter.plotOver(plotPane, dataset.getAngleDataSet(), data)
                else:
                    Plotter.plot(plotPane, dataset.getAngleDataSet(), data)
    elif dataType == RAW:
            # mythen raw data file
            dataset = loadMythenRawData(filename)
            data=DoubleDataset(dataset.getCountArray(), dataset.getCountArray().length)
            channeldata=DoubleDataset(dataset.getChannelArray(),dataset.getChannelArray().length)
            data.setName(filename)
            if Overlay:
                Plotter.plotOver(plotPane, channeldata, data)
                SDAPlotter.addPlot(plotPane, "", channeldata, data, "delta", "counts")
            else:
                Plotter.plot(plotPane, channeldata, data)
                SDAPlotter.plot(plotPane, "", channeldata, data, "delta", "counts")
    else:
        print "Data Type is not recognised or supported."
    print "Plotting completed."
示例#60
0
def plot_getbean(name):
    jb = _plotter.getGuiBean(name)
    _wrap_gui_bean(jb)
    return jb