Changeset 2056


Ignore:
Timestamp:
Nov 17, 2015 12:32:25 PM (6 years ago)
Author:
vondreele
Message:

peak list read/list/indexing now fixed

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r2050 r2056  
    7676import GSASIIstrMain as G2stMn
    7777import GSASIIstrIO as G2stIO
     78import GSASIImath as G2mth
    7879import GSASIImapvars as G2mv
    7980import GSASIIobj as G2obj
     
    24062407                self.HKL = []
    24072408                self.powderfile = dlg.GetPath()
    2408                 comments,peaks = G2IO.GetPowderPeaks(self.powderfile)
     2409                comments,peaks,limits,wave = G2IO.GetPowderPeaks(self.powderfile)
    24092410                Id = self.PatternTree.AppendItem(parent=self.root,text='PKS '+os.path.basename(self.powderfile))
    2410                 data = ['PKS',Cuka,0.0]
     2411                data = ['PKS',wave,0.0]
    24112412                names = ['Type','Lam','Zero']
    24122413                codes = [0,0,0]
     
    24142415                self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),inst)
    24152416                self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),comments)
     2417                self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Limits'),[tuple(limits),limits])
    24162418                self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[peaks,[]])
    24172419                self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Unit Cells List'),[])             
     
    31223124                    if 'PWDR' in name:
    31233125                        item2, cookie2 = self.PatternTree.GetFirstChild(item)
     3126                        wave = 0.0
    31243127                        while item2:
    31253128                            name2 = self.PatternTree.GetItemText(item2)
    3126                             if name2 == 'Peak List':
     3129                            if name2 == 'Instrument Parameters':
     3130                                Inst = self.PatternTree.GetItemPyData(item2)[0]
     3131                                Type = Inst['Type'][0]
     3132                                if 'T' not in Type:
     3133                                    wave = G2mth.getWave(Inst)
     3134                            elif name2 == 'Peak List':
    31273135                                peaks = self.PatternTree.GetItemPyData(item2)['peaks']
    3128                                 file.write("%s \n" % (name+' Peak List'))
    3129                                 if len(peaks[0]) == 8:
    3130                                     file.write('%10s %12s %10s %10s %10s\n'%('pos','int','sig','gam','FWHM'))
    3131                                 else:
    3132                                     file.write('%10s %12s %10s %10s %10s %10s %10s\n'%('pos','int','alp','bet','sig','gam','FWHM'))                                   
    3133                                 for peak in peaks:
    3134                                     if len(peak) == 8:  #CW
    3135                                         FWHM = 2.*G2pwd.getgamFW(peak[6],peak[4])      #to get delta-2-theta in deg. from Gam(peak)
    3136                                         file.write("%10.5f %12.2f %10.5f %10.5f %10.5f \n" % \
    3137                                             (peak[0],peak[2],np.sqrt(max(0.0001,peak[4]))/100.,peak[6]/100.,FWHM/100.)) #convert to deg
    3138                                     else:               #TOF - more cols
    3139                                         FWHM = 2.*G2pwd.getgamFW(peak[10],peak[8])      #to get delta-TOF from Gam(peak)
    3140                                         file.write("%10.5f %12.2f %10.3f %10.3f %10.3f %10.3f %10.3f\n" % \
    3141                                             (peak[0],peak[2],np.sqrt(max(0.0001,peak[4])),peak[6],peak[8],peak[10],FWHM))
    31423136                            item2, cookie2 = self.PatternTree.GetNextChild(item, cookie2)                           
     3137                        file.write("#%s \n" % (name+' Peak List'))
     3138                        if wave:
     3139                            file.write('#wavelength = %10.6f\n'%(wave))
     3140                        if 'T' in Type:
     3141                            file.write('#%10s %12s %10s %10s %10s %10s %10s\n'%('pos','int','alp','bet','sig','gam','FWHM'))                                   
     3142                        else:
     3143                            file.write('#%10s %12s %10s %10s %10s\n'%('pos','int','sig','gam','FWHM'))
     3144                        for peak in peaks:
     3145                            if 'T' in Type:  #TOF - more cols
     3146                                FWHM = 2.*G2pwd.getgamFW(peak[10],peak[8])      #to get delta-TOF from Gam(peak)
     3147                                file.write("%10.5f %12.2f %10.3f %10.3f %10.3f %10.3f %10.3f\n" % \
     3148                                    (peak[0],peak[2],np.sqrt(max(0.0001,peak[4])),peak[6],peak[8],peak[10],FWHM))
     3149                            else:               #CW
     3150                                FWHM = 2.*G2pwd.getgamFW(peak[6],peak[4])      #to get delta-2-theta in deg. from Gam(peak)
     3151                                file.write("%10.5f %12.2f %10.5f %10.5f %10.5f \n" % \
     3152                                    (peak[0],peak[2],np.sqrt(max(0.0001,peak[4]))/100.,peak[6]/100.,FWHM/100.)) #convert to deg
    31433153                    item, cookie = self.PatternTree.GetNextChild(self.root, cookie)                           
    31443154                file.close()
  • trunk/GSASIIIO.py

    r2042 r2056  
    9494    sind = lambda x: math.sin(x*math.pi/180.)
    9595    asind = lambda x: 180.*math.asin(x)/math.pi
    96     Cuka = 1.54052
     96    wave = 1.54052
    9797    File = open(fileName,'Ur')
    9898    Comments = []
     
    112112    if Comments:
    113113       print 'Comments on file:'
    114        for Comment in Comments: print Comment
     114       for Comment in Comments:
     115            print Comment
     116            if 'wavelength' in Comment:
     117                wave = float(Comment.split('=')[1])
    115118    Peaks = []
    116119    if peaks[0][0] > peaks[-1][0]:          # d-spacings - assume CuKa
    117120        for peak in peaks:
    118121            dsp = peak[0]
    119             sth = Cuka/(2.0*dsp)
     122            sth = wave/(2.0*dsp)
    120123            if sth < 1.0:
    121124                tth = 2.0*asind(sth)
     
    126129        for peak in peaks:
    127130            tth = peak[0]
    128             dsp = Cuka/(2.0*sind(tth/2.0))
     131            dsp = wave/(2.0*sind(tth/2.0))
    129132            Peaks.append([tth,peak[1],True,False,0,0,0,dsp,0.0])
    130     return Comments,Peaks
     133    limits = [1000.,0.]
     134    for peak in Peaks:
     135        limits[0] = min(limits[0],peak[0])
     136        limits[1] = max(limits[1],peak[0])
     137    limits[0] = max(1.,(int(limits[0]-1.)/5)*5.)
     138    limits[1] = min(170.,(int(limits[1]+1.)/5)*5.)
     139    return Comments,Peaks,limits,wave
    131140
    132141def CheckImageFile(G2frame,imagefile):
  • trunk/GSASIIindex.py

    r2055 r2056  
    939939                                cycle = 10
    940940                finally:
    941                     dlg.Destroy()
     941                    pass
     942                dlg.Destroy()
    942943            print '%s%s%s%s'%('finished cell search for ',bravaisNames[ibrav], \
    943944                ', elapsed time = ',G2lat.sec2HMS(time.time()-begin))
  • trunk/GSASIIplot.py

    r2052 r2056  
    10441044    plottype = plotType
    10451045    if not G2frame.PatternId:
     1046        return
     1047    if 'PKS' in plottype:
     1048        PlotPowderLines(G2frame)
    10461049        return
    10471050#patch
     
    25172520        Plot.axvline(peak[0],color='b')
    25182521    for hkl in G2frame.HKL:
    2519         Plot.axvline(hkl[-1],color='r',dashes=(5,5))
     2522        Plot.axvline(hkl[-2],color='r',dashes=(5,5))
    25202523    xmin = peaks[0][0]
    25212524    xmax = peaks[-1][0]
     
    25462549    Parms,Parms2 = G2frame.PatternTree.GetItemPyData( \
    25472550        G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Instrument Parameters'))
    2548     if 'C' in Parms['Type'][0]:
     2551    if 'PKS' in Parms['Type'][0]:
     2552        return
     2553    elif 'T' in Parms['Type'][0]:
     2554        difC = Parms['difC'][0]
     2555    else:
    25492556        lam = G2mth.getWave(Parms)
    2550     else:
    2551         difC = Parms['difC'][0]
    25522557    try:  # PATCH: deal with older peak lists, before changed to dict to implement TOF
    25532558        peaks = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'))['peaks']
  • trunk/GSASIIpwdGUI.py

    r2050 r2056  
    22302230    IndexId = G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Index Peak List')
    22312231    Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters'))[0]
    2232     Limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Limits'))
    2233 
     2232    limitId = G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Limits')
     2233    Limits = G2frame.PatternTree.GetItemPyData(limitId)
    22342234    def RefreshIndexPeaksGrid(event):
    22352235        r,c =  event.GetRow(),event.GetCol()
     
    23002300                Unit.append({})
    23012301            controls,bravais,cellist,dmin,ssopt = Unit
    2302             if 'C' in Inst['Type'][0]:
     2302            if 'T' in Inst['Type'][0]:   #TOF - use other limit!
     2303                dmin = G2lat.Pos2dsp(Inst,Limits[1][0])
     2304            else:
    23032305                dmin = G2lat.Pos2dsp(Inst,Limits[1][1])
    2304             else:   #TOF - use other limit!
    2305                 dmin = G2lat.Pos2dsp(Inst,Limits[1][0])
    23062306            G2frame.HKL = []
    23072307            if ssopt.get('Use',False):
     
    26852685        ibrav = bravaisSymb.index(controls[5])
    26862686        SGData = G2spc.SpcGroup(controls[13])[1]
    2687         if 'C' in Inst['Type'][0]:
     2687        if 'C' in Inst['Type'][0] or 'PKS' in Inst['Type'][0]:
    26882688            if ssopt.get('Use',False):
    26892689                vecFlags = [True if x in ssopt['ssSymb'] else False for x in ['a','b','g']]
Note: See TracChangeset for help on using the changeset viewer.