Changeset 428


Ignore:
Timestamp:
Nov 22, 2011 3:59:22 PM (10 years ago)
Author:
vondreele
Message:

begin something for plotting size & PO figures as well as mustrain
allow sorting of the indexing result by volume
fix weights for "STD" GSAS powder data files

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r427 r428  
    905905                'Cell':[False,10.,10.,10.,90.,90.,90,1000.],
    906906                'Pawley dmin':1.0,
     907                'Data plot type':'Microstrain',
    907908                'SH Texture':{
    908909                    'Order':0,
  • trunk/GSASIIIO.py

    r400 r428  
    458458            yi = max(sfloat(S[i+2:i+8]),0.0)
    459459            if yi:
    460                 ei = math.sqrt(yi*ni)
     460                ei = yi/ni
    461461            else:
    462462                yi = 0.0
     
    466466                x.append(xi)
    467467                y.append(yi)
    468                 w.append(1.0/ei**2)
     468                w.append(1.0/ei)
    469469        S = File.readline()
    470470    File.close()
  • trunk/GSASIIindex.py

    r342 r428  
    192192    return X
    193193               
     194def sortVolume(cells):
     195    #cells is M20,X20,Bravais,a,b,c,alp,bet,gam,volume
     196    #sort smallest volume 1st
     197    T = []
     198    for i,M in enumerate(cells):
     199        T.append((M[9],i))
     200    D = dict(zip(T,cells))
     201    T.sort()
     202    X = []
     203    for key in T:
     204        X.append(D[key])
     205    return X
     206               
    194207def IndexPeaks(peaks,HKL):
    195208    import bisect
     
    206219            pos = N-i                                       # reverse the order
    207220            if dp > dm: pos += 1                            # closer to upper than lower
     221            if pos >= N:
     222                print pos,N
     223                break
    208224            hkl = HKL[pos]                                 # put in hkl
    209225            if hkl[4] >= 0:                                 # peak already assigned - test if this one better
     
    382398        try:
    383399            Peaks[8] = 1./np.sqrt(G2lat.calc_rDsq(H,A))
     400            peaks = Peaks.T
    384401        except FloatingPointError:
    385             print G2lat.calc_rDsq(H,A)
    386             Peaks[8] = 1.0
    387         peaks = Peaks.T
     402            A = oldA
    388403       
    389404    M20,X20 = calc_M20(peaks,HKL)
  • trunk/GSASIIphsGUI.py

    r416 r428  
    150150        if 'Isotope' not in generalData:
    151151            generalData['Isotope'] = {}
     152        if 'Data plot type' not in generalData:
     153            generalData['Data plot type'] = 'Microstrain'
    152154        generalData['NoAtoms'] = {}
    153155        generalData['BondRadii'] = []
     
    21102112        Indx = {}
    21112113       
     2114        def OnPlotSel(event):
     2115            generalData['Data plot type'] = plotSel.GetStringSelection()
     2116       
    21122117        def OnShowData(event):
    21132118            Obj = event.GetEventObject()
     
    25622567        mainSizer = wx.BoxSizer(wx.VERTICAL)
    25632568        mainSizer.Add(wx.StaticText(dataDisplay,-1,'Histogram data for '+PhaseName+':'),0,wx.ALIGN_CENTER_VERTICAL)
     2569        plotSizer = wx.BoxSizer(wx.HORIZONTAL)
     2570        choice = ['Microstrain','Size','Preferred orientation']
     2571        plotSel = wx.RadioBox(dataDisplay,-1,'Select plot type:',choices=choice,
     2572            majorDimension=3,style=wx.RA_SPECIFY_COLS)
     2573        plotSel.SetStringSelection(generalData['Data plot type'])
     2574        plotSel.Bind(wx.EVT_RADIOBOX,OnPlotSel)   
     2575        plotSizer.Add(plotSel)
     2576        mainSizer.Add(plotSizer)
    25642577        for item in keyList:
    25652578            histData = UseList[item]
  • trunk/GSASIIplot.py

    r426 r428  
    589589        Phases = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,PatternId,'Reflection Lists'))
    590590        HKL = []
    591         for peak in Phases[self.RefList]:
    592             HKL.append(peak[:6])
    593         HKL = np.array(HKL)
     591        if Phases:
     592            for peak in Phases[self.RefList]:
     593                HKL.append(peak[:6])
     594            HKL = np.array(HKL)
    594595    else:
    595596        HKL = np.array(self.HKL)
     
    681682                else:
    682683                    Plot.plot(X,Y,colors[N%6],picker=False)
    683     if PickId:
     684    if PickId and not self.Contour:
    684685        Values,Names = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,PatternId, 'Instrument Parameters'))[1::2]
    685686        Parms = dict(zip(Names,Values))
     
    11791180            Z = np.outer(np.ones(np.size(PHI)),npcosd(PSI))
    11801181            if muStrain[0] == 'isotropic':
    1181                 muiso = muStrain[1][0]*math.pi/0.018      #centidegrees to radians!
     1182#                muiso = muStrain[1][0]*math.pi/0.018      #centidegrees to radians!
     1183                muiso = muStrain[1][0]
    11821184                X *= muiso
    11831185                Y *= muiso
     
    11911193                    R = muiso*muaniso/np.sqrt((muiso*cp)**2+(muaniso*sp)**2)
    11921194#                    S = muiso+muaniso*cp           #old GSAS - wrong math!!
    1193                     return R*xyz*math.pi/0.018      #centidegrees to radians!
     1195#                    return R*xyz*math.pi/0.018      #centidegrees to radians!
     1196                    return R*xyz
    11941197                muiso,muaniso = muStrain[1][:2]
    11951198                axes = np.inner(A,np.array(muStrain[3]))
  • trunk/GSASIIpwdGUI.py

    r416 r428  
    10651065        else:
    10661066            G2plt.PlotPatterns(self)
     1067           
     1068    def OnSortCells(event):
     1069        controls,bravais,cells,dmin = self.PatternTree.GetItemPyData(UnitCellsId)
     1070        c =  event.GetCol()
     1071        if colLabels[c] == 'M20':
     1072            cells = G2indx.sortM20(cells)
     1073        elif colLabels[c] == 'Volume':
     1074            cells = G2indx.sortVolume(cells)
     1075        else:
     1076            return
     1077        data = [controls,bravais,cells,dmin]
     1078        self.PatternTree.SetItemPyData(UnitCellsId,data)
     1079        UpdateUnitCellsGrid(self,data)
     1080
    10671081       
    10681082    def CopyUnitCell(event):
     
    13831397        self.dataFrame.CopyCell.Enable(True)
    13841398        gridDisplay.Bind(wg.EVT_GRID_CELL_LEFT_CLICK,RefreshUnitCellsGrid)
     1399        gridDisplay.Bind(wg.EVT_GRID_LABEL_LEFT_DCLICK,OnSortCells)
    13851400        gridDisplay.SetMargins(0,0)
    13861401        gridDisplay.SetRowLabelSize(0)
Note: See TracChangeset for help on using the changeset viewer.