Changeset 406 for trunk/GSASIIimgGUI.py


Ignore:
Timestamp:
Nov 2, 2011 1:11:04 PM (10 years ago)
Author:
vondreele
Message:

implement background subtraction during image integration
implement copy for instrument parms & background
continue constraint GUI development
make sure proper updates in refinement/seq refinement

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIimgGUI.py

    r399 r406  
    209209        data['LRazimuth'] = [Lazm,Razm]
    210210        G2plt.PlotExposedImage(self,event=event)
    211            
     211       
     212    def OnBackImage(event):
     213        data['background image'][0] = backImage.GetValue()
     214       
     215    def OnBackMult(event):
     216        try:
     217            mult = float(backMult.GetValue())
     218            data['background image'][1] = mult
     219        except ValueError:
     220            pass
     221        backMult.SetValue("%.3f" % (data['background image'][1]))          #reset in case of error         
     222                           
    212223    def OnClearCalib(event):
    213224        data['ring'] = []
     
    227238       
    228239    def OnIntegrate(event):
    229         self.Integrate = G2img.ImageIntegrate(self.ImageZ,data,masks)
     240       
     241        if data['background image'][0]:
     242            backImg = data['background image'][0]
     243            backScale = data['background image'][1]
     244            id = G2gd.GetPatternTreeItemId(self, self.root, backImg)
     245            Npix,imagefile = self.PatternTree.GetItemPyData(id)
     246            backImage = G2IO.GetImageData(self,imagefile,True)*backScale
     247            self.Integrate = G2img.ImageIntegrate(self.ImageZ+backImage,data,masks)
     248        else:
     249            self.Integrate = G2img.ImageIntegrate(self.ImageZ,data,masks)
    230250        G2plt.PlotIntegration(self,newPlot=True)
    231251        G2IO.SaveIntegration(self,self.PickId,data)
     
    262282                            Id = G2gd.GetPatternTreeItemId(self,id, 'Image Controls')
    263283                            Data = self.PatternTree.GetItemPyData(Id)
     284                            backImage = []
     285                            if Data['background image'][0]:
     286                                backImg = Data['background image'][0]
     287                                backScale = Data['background image'][1]
     288                                id = G2gd.GetPatternTreeItemId(self, self.root, backImg)
     289                                Npix,imagefile = self.PatternTree.GetItemPyData(id)
     290                                backImage = G2IO.GetImageData(self,imagefile,True)*backScale
    264291                            try:
    265292                                Masks = self.PatternTree.GetItemPyData(
     
    269296                                Masks = {'Points':[],'Rings':[],'Arcs':[],'Polygons':[],'Thresholds':[(Imin,Imax),[Imin,Imax]]}
    270297                                self.PatternTree.SetItemPyData(
    271                                     G2gd.GetPatternTreeItemId(self,self.Image, 'Masks'),Masks)                               
    272                             self.Integrate = G2img.ImageIntegrate(image,Data,Masks)
     298                                    G2gd.GetPatternTreeItemId(self,self.Image, 'Masks'),Masks)
     299                            if len(backImage):                               
     300                                self.Integrate = G2img.ImageIntegrate(image+backImage,Data,Masks)
     301                            else:
     302                                self.Integrate = G2img.ImageIntegrate(image,Data,Masks)
    273303#                            G2plt.PlotIntegration(self,newPlot=True,event=event)
    274304                            G2IO.SaveIntegration(self,Id,Data)
     
    379409    if 'azmthOff' not in data:
    380410        data['azmthOff'] = 0.0
     411    if 'background image' not in data:
     412        data['background image'] = ['',1.0]
    381413    #end fix
    382414   
     
    561593    setDefault.Bind(wx.EVT_CHECKBOX, OnSetDefault)
    562594    setDefault.SetValue(data['setDefault'])
     595    dataSizer.Add((5,5),0)
     596   
     597    dataSizer.Add(wx.StaticText(self.dataDisplay,-1,' Background image'),0,wx.ALIGN_CENTER_VERTICAL)
     598    Choices = ['',]+G2gd.GetPatternTreeDataNames(self,['IMG ',])
     599    backImage = wx.ComboBox(parent=self.dataDisplay,value=data['background image'][0],choices=Choices,
     600        style=wx.CB_READONLY|wx.CB_DROPDOWN)
     601    backImage.Bind(wx.EVT_COMBOBOX,OnBackImage)
     602    dataSizer.Add(backImage)
     603    dataSizer.Add(wx.StaticText(self.dataDisplay,-1,' multiplier'),0,wx.ALIGN_CENTER_VERTICAL)
     604    backMult =  wx.TextCtrl(parent=self.dataDisplay,value=("%.3f" % (data['background image'][1])),
     605        style=wx.TE_PROCESS_ENTER)
     606    backMult.Bind(wx.EVT_TEXT_ENTER,OnBackMult)
     607    backMult.Bind(wx.EVT_KILL_FOCUS,OnBackMult)
     608    dataSizer.Add(backMult,0,wx.ALIGN_CENTER_VERTICAL)
    563609
    564610    mainSizer.Add((5,5),0)       
Note: See TracChangeset for help on using the changeset viewer.