Changeset 406 for trunk/GSASIIpwdGUI.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/GSASIIpwdGUI.py

    r405 r406  
    1212import math
    1313import time
     14import copy
    1415import cPickle
    1516import GSASIIpath
     
    288289        Obj.SetValue('%10.4f'%(value))
    289290       
     291    def OnBackCopy(event):
     292        histList = ['All',]+G2gd.GetPatternTreeDataNames(self,['PWDR',])
     293        copyList = []
     294        dlg = wx.MultiChoiceDialog(self,
     295            'Copy parameters to which histograms?', 'Copy parameters',
     296            histList, wx.CHOICEDLG_STYLE)
     297        try:
     298            if dlg.ShowModal() == wx.ID_OK:
     299                result = dlg.GetSelections()
     300                for i in result:
     301                    copyList.append(histList[i])
     302                if 'All' in copyList:
     303                    copyList = histList[1:]
     304            for item in copyList:
     305                Id = G2gd.GetPatternTreeItemId(self,self.root,item)
     306                self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Background'),
     307                    copy.copy(data))
     308        finally:
     309            dlg.Destroy()
     310       
     311       
    290312    if self.dataDisplay:
    291313        self.dataFrame.Clear()
    292314    self.dataDisplay = wx.Panel(self.dataFrame)
     315    self.dataFrame.SetMenuBar(self.dataFrame.BackMenu)
     316    self.dataFrame.SetLabel('Background')
     317    if not self.dataFrame.GetStatusBar():
     318        Status = self.dataFrame.CreateStatusBar()
     319    self.Bind(wx.EVT_MENU,OnBackCopy,id=G2gd.wxID_BACKCOPY)
    293320    BackId = G2gd.GetPatternTreeItemId(self,self.PatternId, 'Background')
    294321    Choices = ['chebyschev','cosine','lin interpolate','inv interpolate','log interpolate']
     
    404431        UpdateInstrumentGrid(self,data)
    405432       
     433    def OnInstCopy(event):
     434        histList = ['All',]+G2gd.GetPatternTreeDataNames(self,['PWDR',])
     435        copyList = []
     436        dlg = wx.MultiChoiceDialog(self,
     437            'Copy parameters to which histograms?', 'Copy parameters',
     438            histList, wx.CHOICEDLG_STYLE)
     439        try:
     440            if dlg.ShowModal() == wx.ID_OK:
     441                result = dlg.GetSelections()
     442                for i in result:
     443                    copyList.append(histList[i])
     444                if 'All' in copyList:
     445                    copyList = histList[1:]
     446            for item in copyList:
     447                Id = G2gd.GetPatternTreeItemId(self,self.root,item)
     448                instData = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Instrument Parameters'))
     449                if len(data) == len(instData):                          #don't mix lam & lam1/lam2 parms!
     450                    for i,item in enumerate(data[1:]):                  #skip default values in tuple
     451                        instData[i+1][:-1] = copy.copy(item[:-1])       #skip azimuth at end
     452                else:
     453                    print item+' not copied - instrument parameters not commensurate'
     454        finally:
     455            dlg.Destroy()
     456       
    406457    def OnWaveChange(event):
    407458        if 'Lam' in insVal:           
     
    481532    ifHisto = IsHistogramInAnyPhase(self,histoName)
    482533    self.dataFrame.SetMenuBar(self.dataFrame.BlankMenu)
     534    self.dataFrame.SetLabel('Instrument Parameters')
    483535    self.dataDisplay = wx.Panel(self.dataFrame)
    484536    instSizer = wx.FlexGridSizer(2,6,5,5)
     
    488540        if not self.dataFrame.GetStatusBar():
    489541            Status = self.dataFrame.CreateStatusBar()
    490         self.Bind(wx.EVT_MENU, OnReset,id=G2gd.wxID_INSTPRMRESET)
    491         self.Bind(wx.EVT_MENU,OnWaveChange,id=G2gd.wxID_CHANGEWAVETYPE)
     542        self.Bind(wx.EVT_MENU,OnReset,id=G2gd.wxID_INSTPRMRESET)
     543        self.Bind(wx.EVT_MENU,OnInstCopy,id=G2gd.wxID_INSTCOPY)
     544        self.Bind(wx.EVT_MENU,OnWaveChange,id=G2gd.wxID_CHANGEWAVETYPE)       
    492545        typePick = wx.ComboBox(self.dataDisplay,value=insVal['Type'],
    493546            choices=['PXC','PNC','PNT'],style=wx.CB_READONLY|wx.CB_DROPDOWN)
     
    643696                Id = G2gd.GetPatternTreeItemId(self,self.root,item)
    644697                sampleData = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Sample Parameters'))
    645                 sampleData.update(copyDict)
     698                sampleData.update(copy.deepcopy(copyDict))
    646699        finally:
    647700            dlg.Destroy()
     
    650703        self.dataFrame.Clear()
    651704    self.dataFrame.SetMenuBar(self.dataFrame.SampleMenu)
     705    self.dataFrame.SetLabel('Sample Parameters')
    652706    self.Bind(wx.EVT_MENU, OnSampleCopy, id=G2gd.wxID_SAMPLECOPY)
    653707    if not self.dataFrame.GetStatusBar():
     
    16481702                        olddata = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,id, 'PDF Controls'))
    16491703                        sample = olddata['Sample']
    1650                         olddata.update(data)
     1704                        olddata.update(copy.deepcopy(data))
    16511705                        olddata['Sample'] = sample
    16521706                        self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,id, 'PDF Controls'),olddata)
Note: See TracChangeset for help on using the changeset viewer.