Changeset 1820


Ignore:
Timestamp:
Apr 29, 2015 2:04:05 PM (7 years ago)
Author:
vondreele
Message:

fix issues in reading powder peak lists (since TOF added)
force reload of data after Refine
add Move Peaks to Background menu - moves fitted background peaks to Peak List for possible indexing
increase number of possible peaks in background to 30!
fix bug in LS output for Pawley refinements
reformat background peak output from Refine

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r1814 r1820  
    22922292               
    22932293    def OnReadPowderPeaks(self,event):
    2294         'Bound to menu Data/Read Powder Peaks -- still needed?'
     2294        'Bound to menu Data/Read Powder Peaks'
    22952295        Cuka = 1.54052
    22962296        self.CheckNotebook()
     
    35373537                        item, cookie = self.PatternTree.GetNextChild(self.root, cookie)               
    35383538                    if Id:
     3539                        self.PickIdText = None  #force reload of PickId contents
    35393540                        self.PatternTree.SelectItem(Id)
    35403541                    if parentName:
     
    35933594                if dlg.ShowModal() == wx.ID_OK:
    35943595                    Id = 0
     3596                    self.PickIdText = None  #force reload of PickId contents
    35953597                    self.PatternTree.DeleteChildren(self.root)
    35963598                    if self.HKL: self.HKL = []
  • trunk/GSASIIgrid.py

    r1817 r1820  
    108108[ wxID_BACKCOPY,wxID_LIMITCOPY, wxID_SAMPLECOPY, wxID_SAMPLECOPYSOME, wxID_BACKFLAGCOPY, wxID_SAMPLEFLAGCOPY,
    109109    wxID_SAMPLESAVE, wxID_SAMPLELOAD,wxID_ADDEXCLREGION,wxID_SETSCALE,wxID_SAMPLE1VAL,wxID_ALLSAMPLELOAD,
    110 ] = [wx.NewId() for item in range(12)]
     110    wxID_PEAKSMOVE,
     111] = [wx.NewId() for item in range(13)]
    111112
    112113[ wxID_INSTPRMRESET,wxID_CHANGEWAVETYPE,wxID_INSTCOPY, wxID_INSTFLAGCOPY, wxID_INSTLOAD,
     
    13671368        self.BackEdit.Append(id=wxID_BACKFLAGCOPY, kind=wx.ITEM_NORMAL,text='Copy flags',
    13681369            help='Copy background refinement flags to other histograms')
     1370        self.BackEdit.Append(id=wxID_PEAKSMOVE, kind=wx.ITEM_NORMAL,text='Move peaks',
     1371            help='Move background peaks to Peak List')
     1372           
    13691373        self.PostfillDataMenu()
    13701374           
     
    37493753    '''Called from GSASII.OnPatternTreeSelChanged when a item is selected on the tree
    37503754    '''
     3755#    if G2frame.PickId:
     3756#        print G2frame.PatternTree.GetItemText(G2frame.PickId)
     3757#        parent = G2frame.PatternTree.GetItemParent(G2frame.PickId)
     3758#        if parent:
     3759#            print G2frame.PatternTree.GetItemText(parent)
    37513760    pickName = G2frame.PatternTree.GetItemText(item)
    37523761    if G2frame.PickIdText == pickName:
     
    37923801    if G2frame.PatternTree.GetItemParent(item) == G2frame.root:
    37933802        G2frame.PatternId = item
    3794 #        G2frame.PickId = item
    37953803        if G2frame.PatternTree.GetItemText(item) == 'Notebook':
    37963804            SetDataMenuBar(G2frame,G2frame.dataFrame.DataNotebookMenu)
     
    38703878                value='Select one phase to see its parameters')           
    38713879    elif 'I(Q)' in G2frame.PatternTree.GetItemText(item):
    3872 #        G2frame.PickId = item
    38733880        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    38743881        data = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,G2frame.PatternId,'PDF Controls'))
     
    38763883        G2plt.PlotISFG(G2frame,type='I(Q)',newPlot=True)
    38773884    elif 'S(Q)' in G2frame.PatternTree.GetItemText(item):
    3878 #        G2frame.PickId = item
    38793885        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    38803886        data = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,G2frame.PatternId,'PDF Controls'))
     
    38823888        G2plt.PlotISFG(G2frame,type='S(Q)',newPlot=True)
    38833889    elif 'F(Q)' in G2frame.PatternTree.GetItemText(item):
    3884 #        G2frame.PickId = item
    38853890        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    38863891        data = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,G2frame.PatternId,'PDF Controls'))
     
    38883893        G2plt.PlotISFG(G2frame,type='F(Q)',newPlot=True)
    38893894    elif 'G(R)' in G2frame.PatternTree.GetItemText(item):
    3890 #        G2frame.PickId = item
    38913895        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    38923896        data = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,G2frame.PatternId,'PDF Controls'))
     
    38943898        G2plt.PlotISFG(G2frame,type='G(R)',newPlot=True)           
    38953899    elif G2frame.PatternTree.GetItemText(parentID) == 'Phases':
    3896 #        G2frame.PickId = item
    38973900        data = G2frame.PatternTree.GetItemPyData(item)
    38983901        G2phG.UpdatePhaseData(G2frame,item,data,oldPage)
     
    39003903        SetDataMenuBar(G2frame,G2frame.dataFrame.DataCommentsMenu)
    39013904        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    3902 #        G2frame.PickId = item
    39033905        data = G2frame.PatternTree.GetItemPyData(item)
    39043906        UpdateComments(G2frame,data)
    39053907    elif G2frame.PatternTree.GetItemText(item) == 'Image Controls':
    39063908        G2frame.dataFrame.SetTitle('Image Controls')
    3907 #        G2frame.PickId = item
    39083909        G2frame.Image = G2frame.PatternTree.GetItemParent(item)
    39093910        masks = G2frame.PatternTree.GetItemPyData(
     
    39143915    elif G2frame.PatternTree.GetItemText(item) == 'Masks':
    39153916        G2frame.dataFrame.SetTitle('Masks')
    3916 #        G2frame.PickId = item
    39173917        G2frame.Image = G2frame.PatternTree.GetItemParent(item)
    39183918        data = G2frame.PatternTree.GetItemPyData(item)
     
    39213921    elif G2frame.PatternTree.GetItemText(item) == 'Stress/Strain':
    39223922        G2frame.dataFrame.SetTitle('Stress/Strain')
    3923 #        G2frame.PickId = item
    39243923        G2frame.Image = G2frame.PatternTree.GetItemParent(item)
    39253924        data = G2frame.PatternTree.GetItemPyData(item)
     
    39303929        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    39313930        for i in G2frame.ExportPDF: i.Enable(True)
    3932 #        G2frame.PickId = item
    39333931        data = G2frame.PatternTree.GetItemPyData(item)
    39343932        G2pdG.UpdatePDFGrid(G2frame,data)
     
    39403938        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    39413939        for i in G2frame.ExportPeakList: i.Enable(True)
    3942 #        G2frame.PickId = item
    39433940        data = G2frame.PatternTree.GetItemPyData(item)
    39443941#patch
     
    39513948    elif G2frame.PatternTree.GetItemText(item) == 'Background':
    39523949        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    3953 #        G2frame.PickId = item
    39543950        data = G2frame.PatternTree.GetItemPyData(item)
    39553951        G2pdG.UpdateBackground(G2frame,data)
     
    39583954        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    39593955        datatype = G2frame.PatternTree.GetItemText(G2frame.PatternId)[:4]
    3960 #        G2frame.PickId = item
    39613956        data = G2frame.PatternTree.GetItemPyData(item)
    39623957        G2pdG.UpdateLimitsGrid(G2frame,data,datatype)
     
    39643959    elif G2frame.PatternTree.GetItemText(item) == 'Instrument Parameters':
    39653960        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    3966 #        G2frame.PickId = item
    39673961        data = G2frame.PatternTree.GetItemPyData(item)[0]
    39683962        G2pdG.UpdateInstrumentGrid(G2frame,data)
     
    39713965    elif G2frame.PatternTree.GetItemText(item) == 'Models':
    39723966        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    3973 #        G2frame.PickId = item
    39743967        data = G2frame.PatternTree.GetItemPyData(item)
    39753968        G2pdG.UpdateModelsGrid(G2frame,data)
     
    39793972    elif G2frame.PatternTree.GetItemText(item) == 'Substances':
    39803973        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    3981 #        G2frame.PickId = item
    39823974        data = G2frame.PatternTree.GetItemPyData(item)
    39833975        G2pdG.UpdateSubstanceGrid(G2frame,data)
    39843976    elif G2frame.PatternTree.GetItemText(item) == 'Sample Parameters':
    39853977        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    3986 #        G2frame.PickId = item
    39873978        data = G2frame.PatternTree.GetItemPyData(item)
    39883979        datatype = G2frame.PatternTree.GetItemPyData(G2frame.PatternId)[2][:4]
     
    40003991        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    40013992        for i in G2frame.ExportPeakList: i.Enable(True)
    4002 #        G2frame.PickId = item
    40033993        data = G2frame.PatternTree.GetItemPyData(item)
    40043994#patch
     
    40144004    elif G2frame.PatternTree.GetItemText(item) == 'Unit Cells List':
    40154005        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    4016 #        G2frame.PickId = item
    40174006        data = G2frame.PatternTree.GetItemPyData(item)
    40184007        if not data:
     
    40354024    elif G2frame.PatternTree.GetItemText(item) == 'Reflection Lists':   #powder reflections
    40364025        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    4037 #        G2frame.PickId = item
    40384026        data = G2frame.PatternTree.GetItemPyData(item)
    40394027        G2frame.RefList = ''
     
    40434031        G2plt.PlotPatterns(G2frame)
    40444032    elif G2frame.PatternTree.GetItemText(item) == 'Reflection List':    #HKLF reflections
    4045 #        G2frame.PickId = item
    40464033        G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    40474034        name = G2frame.PatternTree.GetItemText(G2frame.PatternId)
     
    40494036        G2pdG.UpdateReflectionGrid(G2frame,data,HKLF=True,Name=name)
    40504037
    4051     if G2frame.PickId: 
     4038    if G2frame.PickId:
    40524039        G2frame.PickIdText = G2frame.PatternTree.GetItemText(G2frame.PickId)
    40534040    G2frame.dataFrame.Raise()
  • trunk/GSASIIlattice.py

    r1793 r1820  
    423423    ''' convert powder pattern position (2-theta or TOF, musec) to d-spacing
    424424    '''
    425     if 'C' in Inst['Type'][0]:
     425    if 'C' in Inst['Type'][0] or 'PKS' in Inst['Type'][0]:
    426426        wave = G2mth.getWave(Inst)
    427427        return wave/(2.0*sind((pos-Inst.get('Zero',[0,0])[1])/2.0))
     
    445445    ''' convert d-spacing to powder pattern position (2-theta or TOF, musec)
    446446    '''
    447     if 'C' in Inst['Type'][0]:
     447    if 'C' in Inst['Type'][0] or 'PKS' in Inst['Type'][0]:
    448448        wave = G2mth.getWave(Inst)
    449449        pos = 2.0*asind(wave/(2.*dsp))+Inst.get('Zero',[0,0])[1]             
  • trunk/GSASIIpwdGUI.py

    r1804 r1820  
    625625                    G2frame.dataDisplay.ProcessTableMessage(msg)
    626626                data = G2frame.PeakTable.GetData()
    627                 G2frame.PatternTree.SetItemPyData(G2frame.PickId,data[:-nDel])
     627                G2frame.PatternTree.SetItemPyData(G2frame.PickId,data['peaks'][:-nDel])
    628628                G2frame.dataDisplay.ForceRefresh()
    629629                setBackgroundColors()
     
    789789            G2frame.PatternTree.SetItemPyData(
    790790                G2gd.GetPatternTreeItemId(G2frame,Id,'Background'),copy.copy(data))
     791               
     792    def OnPeaksMove(event):
     793        if not data[1]['nPeaks']:
     794            G2frame.ErrorDialog('Error','No peaks to move')
     795            return
     796        Peaks = {'peaks':[],'sigDict':{}}
     797        for peak in data[1]['peaksList']:
     798            Peaks['peaks'].append([peak[0],0,peak[2],0,peak[4],0,peak[6],0])
     799        G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Peak List'),Peaks)
    791800       
    792801    def BackSizer():
     
    950959        topSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Peaks in background: '),0,WACV)
    951960        topSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' No. peaks: '),0,WACV)
    952         peaks = wx.ComboBox(G2frame.dataDisplay,-1,value=str(data[1]['nPeaks']),choices=[str(i) for i in range(12)],
     961        peaks = wx.ComboBox(G2frame.dataDisplay,-1,value=str(data[1]['nPeaks']),choices=[str(i) for i in range(30)],
    953962            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    954963        peaks.Bind(wx.EVT_COMBOBOX,OnPeaks)
     
    982991    G2frame.Bind(wx.EVT_MENU,OnBackCopy,id=G2gd.wxID_BACKCOPY)
    983992    G2frame.Bind(wx.EVT_MENU,OnBackFlagCopy,id=G2gd.wxID_BACKFLAGCOPY)
     993    G2frame.Bind(wx.EVT_MENU,OnPeaksMove,id=G2gd.wxID_PEAKSMOVE)
    984994    BackId = G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Background')
    985995    Choices = ['chebyschev','cosine','Q^2 power series','Q^-2 powder series','lin interpolate','inv interpolate','log interpolate']
     
    14251435                    instSizer.Add(itemVal,0,WACV)
    14261436                    instSizer.Add(RefineBox(item),0,WACV)
    1427             else:                                   #time of flight (neutrons)
     1437            elif 'T' in insVal['Type']:                                   #time of flight (neutrons)
    14281438                subSizer = wx.BoxSizer(wx.HORIZONTAL)
    14291439                subSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Fligth path: '),0,WACV)
     
    14781488                    refFlgElem.append([item,2])
    14791489                    instSizer.Add(RefineBox(item),0,WACV)
     1490            elif 'PKS' in insVal['Type']:   #peak positions only
     1491                key = 'Lam'
     1492                instSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,u' Lam (\xc5): (%10.6f)'%(insDef[key])),
     1493                    0,WACV)
     1494                waveVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,insVal,key,nDig=(10,6),typeHint=float,OnLeave=AfterChange)
     1495                labelLst.append(u'Lam (\xc5)')
     1496                elemKeysLst.append([key,1])
     1497                dspLst.append([10,6])
     1498                instSizer.Add(waveVal,0,WACV)
     1499                refFlgElem.append([key,2])                   
     1500#                    instSizer.Add(RefineBox(key),0,WACV)
     1501                for item in ['Zero',]:
     1502                    if item in insDef:
     1503                        labelLst.append(item)
     1504                        elemKeysLst.append([item,1])
     1505                        dspLst.append([10,4])
     1506                        instSizer.Add(
     1507                            wx.StaticText(G2frame.dataDisplay,-1,lblWdef(item,4,insDef[item])),
     1508                            0,WACV)
     1509                        itemVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,insVal,item,nDig=(10,4),typeHint=float,OnLeave=AfterChange)
     1510                        instSizer.Add(itemVal,0,WACV)
     1511                        refFlgElem.append([item,2])
     1512#                        instSizer.Add(RefineBox(item),0,WACV)
     1513               
     1514               
    14801515        elif 'S' in insVal['Type']:                       #single crystal data
    14811516            if 'C' in insVal['Type']:               #constant wavelength
     
    22242259        'P 4/m m m','F m m m','I m m m','C m m m','P m m m','C 2/m','P 2/m','P -1']
    22252260    Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters'))[0]
    2226     if 'C' in Inst['Type'][0]:
     2261    if 'C' in Inst['Type'][0] or 'PKS' in Inst['Type'][0]:
    22272262        wave = G2mth.getWave(Inst)
    22282263    else:
  • trunk/GSASIIstrIO.py

    r1815 r1820  
    19051905                    SHtextureSig[name] = sigDict[aname]
    19061906            PrintSHtextureAndSig(textureData,SHtextureSig)
    1907         if phase in RestraintDict:
     1907        if phase in RestraintDict and not Phase['General'].get('doPawley'):
    19081908            PrintRestraints(cell[1:7],SGData,General['AtomPtrs'],Atoms,AtLookup,
    19091909                textureData,RestraintDict[phase],pFile)
     
    26522652                line = ' peak'+'%2d'%(j)+':'
    26532653                for i in range(4):
    2654                     line += '%10.3f %5s'%(term[2*i],bool(term[2*i+1]))                   
     2654                    line += '%12.3f %5s'%(term[2*i],bool(term[2*i+1]))                   
    26552655                print >>pFile,line
    26562656       
     
    28672867                print >>pFile,sigstr
    28682868        if DebyePeaks['nPeaks']:
    2869             ifAny = False
    2870             ptfmt = "%14.3f"
    2871             names =  ' names :'
    2872             ptstr =  ' values:'
    2873             sigstr = ' esds  :'
    2874             for item in sigDict:
    2875                 if 'BkPk' in item:
    2876                     ifAny = True
    2877                     names += '%14s'%(item)
    2878                     ptstr += ptfmt%(parmDict[item])
    2879                     sigstr += ptfmt%(sigDict[item])
    2880             if ifAny:
    2881                 print >>pFile,'\n Single peak coefficients'
    2882                 print >>pFile,names
     2869            print >>pFile,'\n Single peak coefficients:'
     2870            parms =    ['BkPkpos','BkPkint','BkPksig','BkPkgam']
     2871            line = ' peak no. '
     2872            for parm in parms:
     2873                line += '%14s%12s'%(parm.center(14),'esd'.center(12))
     2874            print >>pFile,line
     2875            for ip in range(DebyePeaks['nPeaks']):
     2876                ptstr = ' %4d '%(ip)
     2877                for parm in parms:
     2878                    fmt = '%14.3f'
     2879                    efmt = '%12.3f'
     2880                    if parm == 'BkPkpos':
     2881                        fmt = '%14.4f'
     2882                        efmt = '%12.4f'
     2883                    name = pfx+parm+';%d'%(ip)
     2884                    ptstr += fmt%(parmDict[name])
     2885                    if name in sigDict:
     2886                        ptstr += efmt%(sigDict[name])
     2887                    else:
     2888                        ptstr += 12*' '
    28832889                print >>pFile,ptstr
    2884                 print >>pFile,sigstr
    28852890        sumBk = np.array(Histogram['sumBk'])
    28862891        print >>pFile,' Background sums: empirical %.3g, Debye %.3g, peaks %.3g, Total %.3g'    \
Note: See TracChangeset for help on using the changeset viewer.