Changeset 1781


Ignore:
Timestamp:
Apr 8, 2015 10:13:30 AM (7 years ago)
Author:
vondreele
Message:

fix bug from old Pref.Ori. not having penalty items
Implement colors for bad items in Reflection Lists; Prfo < 0 for PWDR
red Fc for abs(Fo-Fc)/sig > 10 & yellow if > 3.
Implement user selected rejection scheme for HKLF; set mul < 0. Get calculated but not used in least squares

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r1779 r1781  
    144144] = [wx.NewId() for item in range(12)]
    145145
    146 [ wxID_SELECTPHASE,wxID_PWDHKLPLOT,wxID_PWD3DHKLPLOT,
    147 ] = [wx.NewId() for item in range(3)]
     146[ wxID_SELECTPHASE,wxID_PWDHKLPLOT,wxID_PWD3DHKLPLOT,wxID_REJECTHKL,
     147] = [wx.NewId() for item in range(4)]
    148148
    149149[ wxID_PDFCOPYCONTROLS, wxID_PDFSAVECONTROLS, wxID_PDFLOADCONTROLS,
     
    13431343        self.ErrorAnal.Append(id=wxID_PWD3DHKLPLOT,kind=wx.ITEM_NORMAL,text='Plot 3D HKLs',
    13441344            help='Plot HKLs from single crystal data in 3D')
     1345           
    13451346        self.ErrorAnal.Append(id=wxID_PWDCOPY,kind=wx.ITEM_NORMAL,text='Copy params',
    13461347            help='Copy of HKLF parameters')
     
    14841485        self.ReflEdit.Append(id=wxID_PWD3DHKLPLOT,kind=wx.ITEM_NORMAL,text='Plot 3D HKLs',
    14851486            help='Plot HKLs from powder pattern in 3D')
     1487        self.RejectHKL = self.ReflEdit.Append(id=wxID_REJECTHKL,kind=wx.ITEM_NORMAL,text='Reject selected HKL',
     1488            help='Reject selected HKL; make mul < 0')
    14861489        self.PostfillDataMenu()
    14871490       
  • trunk/GSASIIpwdGUI.py

    r1780 r1781  
    29452945        G2plt.Plot3DSngl(G2frame,newPlot=True,Data=controls,hklRef=refList,Title=phaseName)
    29462946       
     2947    def OnRejectHKL(event):
     2948        phaseName = G2frame.RefList
     2949        pId = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Phases')
     2950        phaseId =  G2gd.GetPatternTreeItemId(G2frame,pId,phaseName)
     2951        General = G2frame.PatternTree.GetItemPyData(phaseId)['General']
     2952        im = General.get('Super',0)
     2953        rowList = G2frame.refTable[phaseName].GetSelectedRows()
     2954        for row in rowList:
     2955            data[1]['RefList'][row][3+im] *= -1 #toggles mul & -mul
     2956        ShowReflTable(phaseName)
     2957       
    29472958    def MakeReflectionTable(phaseName):
    29482959        '''Returns a wx.grid table (G2gd.Table) containing a list of all reflections
     
    30063017        if needed using MakeReflectionTable
    30073018        '''
    3008         def setBackgroundColors(im):
     3019        def setBackgroundColors(im,it):
    30093020            for r in range(G2frame.refTable[phaseName].GetNumberRows()):
    3010                 Fosq = float(G2frame.refTable[phaseName].GetCellValue(r,5+im))
    3011                 Fcsq = float(G2frame.refTable[phaseName].GetCellValue(r,7+im))
    3012                 sig = float(G2frame.refTable[phaseName].GetCellValue(r,6+im))
    3013                 rat = abs(Fosq-Fcsq)/sig
    3014                 if  rat > 10.:
    3015                     G2frame.refTable[phaseName].SetCellBackgroundColour(r,7+im,wx.RED)
    3016                 elif rat > 3.0:
    3017                     G2frame.refTable[phaseName].SetCellBackgroundColour(r,7+im,wx.Colour(255,255,0))
    3018                 else:
    3019                     G2frame.refTable[phaseName].SetCellBackgroundColour(r,7+im,wx.WHITE)
     3021                if HKLF:
     3022                    if float(G2frame.refTable[phaseName].GetCellValue(r,3+im)) < 0.:
     3023                        G2frame.refTable[phaseName].SetCellBackgroundColour(r,3+im,wx.RED)
     3024                    Fosq = float(G2frame.refTable[phaseName].GetCellValue(r,5+im))
     3025                    Fcsq = float(G2frame.refTable[phaseName].GetCellValue(r,7+im))
     3026                    sig = float(G2frame.refTable[phaseName].GetCellValue(r,6+im))
     3027                    rat = abs(Fosq-Fcsq)/sig
     3028                    if  rat > 10.:
     3029                        G2frame.refTable[phaseName].SetCellBackgroundColour(r,7+im,wx.RED)
     3030                    elif rat > 3.0:
     3031                        G2frame.refTable[phaseName].SetCellBackgroundColour(r,7+im,wx.Colour(255,255,0))
     3032#                    else:
     3033#                        G2frame.refTable[phaseName].SetCellBackgroundColour(r,7+im,wx.WHITE)
     3034                else:   #PWDR
     3035                    if float(G2frame.refTable[phaseName].GetCellValue(r,12+im+it)) < 0.:
     3036                        G2frame.refTable[phaseName].SetCellBackgroundColour(r,12+im+it,wx.RED)
    30203037                                                 
    30213038        G2frame.RefList = phaseName
    30223039        G2frame.dataFrame.SetLabel('Reflection List for '+phaseName)
     3040        if HKLF:
     3041            Status.SetStatusText('abs(Fo-Fc)/sig > 10 in red; > 3 in yellow; mul < 0 (user rejected) in red')
     3042        else:
     3043            Status.SetStatusText('Prfo < 0. in red')
     3044        it = 0
     3045        if HKLF:
     3046            im = data[1]['Super']
     3047        else:
     3048            if 'T' in data[phaseName]['Type']:
     3049                it = 3
     3050            im = data[phaseName].get('Super',0)
    30233051        # has this table already been displayed?
    30243052        if G2frame.refTable[phaseName].GetTable() is None:
     
    30283056            G2frame.refTable[phaseName].SetMargins(0,0)
    30293057            G2frame.refTable[phaseName].AutoSizeColumns(False)
    3030             setBackgroundColors(0)
     3058            setBackgroundColors(im,it)
    30313059        # raise the tab (needed for 1st use and from OnSelectPhase)
    30323060        for PageNum in range(G2frame.dataDisplay.GetPageCount()):
     
    30793107        G2frame.Bind(wx.EVT_MENU, OnPlotHKL, id=G2gd.wxID_PWDHKLPLOT)
    30803108        G2frame.Bind(wx.EVT_MENU, OnPlot3DHKL, id=G2gd.wxID_PWD3DHKLPLOT)
     3109        G2frame.Bind(wx.EVT_MENU,OnRejectHKL, id=G2gd.wxID_REJECTHKL)
    30813110        G2frame.dataFrame.SelectPhase.Enable(False)
    30823111    else:
     
    30873116        G2frame.Bind(wx.EVT_MENU, OnPlotHKL, id=G2gd.wxID_PWDHKLPLOT)
    30883117        G2frame.Bind(wx.EVT_MENU, OnPlot3DHKL, id=G2gd.wxID_PWD3DHKLPLOT)
     3118        G2frame.dataFrame.RejectHKL.Enable(False)
    30893119        G2frame.dataFrame.SelectPhase.Enable(False)
    30903120           
  • trunk/GSASIIstrIO.py

    r1777 r1781  
    20732073                    controlDict[pfx+'SHnames'] = G2lat.GenSHCoeff(SGData['SGLaue'],'0',controlDict[pfx+'SHord'],False)
    20742074                    controlDict[pfx+'SHhkl'] = []
    2075                     if hapData['Pref.Ori.'][6][0] != '':
    2076                         controlDict[pfx+'SHhkl'] = [eval(a.replace(' ',',')) for a in hapData['Pref.Ori.'][6]]
    2077                     controlDict[pfx+'SHtoler'] = hapData['Pref.Ori.'][7]
     2075                    try: #patch for old Pref.Ori. items
     2076                        controlDict[pfx+'SHtoler'] = 0.1
     2077                        if hapData['Pref.Ori.'][6][0] != '':
     2078                            controlDict[pfx+'SHhkl'] = [eval(a.replace(' ',',')) for a in hapData['Pref.Ori.'][6]]
     2079                        controlDict[pfx+'SHtoler'] = hapData['Pref.Ori.'][7]
     2080                    except IndexError:
     2081                        pass
    20782082                    for item in hapData['Pref.Ori.'][5]:
    20792083                        hapDict[pfx+item] = hapData['Pref.Ori.'][5][item]
  • trunk/GSASIIstrMath.py

    r1777 r1781  
    27042704                        ref[7+im] = parmDict[phfx+'Scale']*ref[9+im]*ref[11+im]  #correct Fc^2 for extinction
    27052705                        ref[8+im] = ref[5+im]/(parmDict[phfx+'Scale']*ref[11+im])
    2706                         if w*ref[5+im] >= calcControls['minF/sig']:
     2706                        if w*ref[5+im] >= calcControls['minF/sig'] and ref[3+im] > 0:  #min cutoff & user rejection
    27072707                            Fo = np.sqrt(ref[5+im])
    27082708                            sumFo += Fo
     
    27222722                        Fc = np.sqrt(ref[7+im])
    27232723                        w = 2.0*Fo/ref[6+im]
    2724                         if w*Fo >= calcControls['minF/sig']:
     2724                        if w*Fo >= calcControls['minF/sig'] and ref[3+im] > 0:  #min cutoff & user rejection
    27252725                            sumFo += Fo
    27262726                            sumFo2 += ref[5+im]
Note: See TracChangeset for help on using the changeset viewer.