Пример #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()
Пример #2
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
Пример #3
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()
Пример #4
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
Пример #5
0
 def setPlotMode(self, plotmode=GuiPlotMode.TWOD):
     #		guibean=GuiBean();
     guibean = SDAPlotter.getGuiBean(self.panel)
     guibean[GuiParameters.PLOTMODE] = plotmode
     SDAPlotter.setGuiBean(self.panel, guibean)
Пример #6
0
def plot_getbean(name):
    jb = _plotter.getGuiBean(name)
    if jb is not None:
        return _wrap_gui_bean(jb, _guibean())
    return jb
Пример #7
0
def plot_getbean(name):
    jb = _plotter.getGuiBean(name)
    if jb is not None:
        return _wrap_gui_bean(jb, _guibean())
    return jb
Пример #8
0
    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)
Пример #9
0
def plot_getbean(name):
    jb = _plotter.getGuiBean(name)
    _wrap_gui_bean(jb)
    return jb
Пример #10
0
    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)