Changeset 1780


Ignore:
Timestamp:
Apr 7, 2015 5:14:33 PM (7 years ago)
Author:
vondreele
Message:

force collapse of all children when main tree item is collapsed
begin texture fitting from seq. refinements
fix bugs in plotting if all SH coeff = 0
set background on Fcsq when delt = 3sig & 10 sig

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r1779 r1780  
    21992199       
    22002200    def OnPatternTreeItemCollapsed(self, event):
    2201         'Called when a tree item is collapsed'
    2202         event.Skip()
     2201        'Called when a tree item is collapsed - all children will be collapsed'
     2202        self.PatternTree.CollapseAllChildren(event.GetItem())
    22032203
    22042204    def OnPatternTreeItemExpanded(self, event):
     
    22482248    def OnPatternTreeKeyDown(self,event):
    22492249        'Allows stepping through the tree with the up/down arrow keys'
     2250        keyevt = event.GetKeyEvent()
    22502251        key = event.GetKeyCode()
    2251         item = self.PickId
     2252        item = self.PatternTree.GetSelection()
    22522253        if type(item) is int: return # is this the toplevel in tree?
     2254        name = self.PatternTree.GetItemText(item)
     2255        parent = self.PatternTree.GetItemParent(item)
    22532256        if key == wx.WXK_UP:
    22542257            self.oldFocus = wx.Window.FindFocus()
     2258#            if keyevt.GetModifiers() == wx.MOD_SHIFT:
     2259#                if type(parent) is int: return # is this the toplevel in tree?
     2260#                prev = self.PatternTree.GetPrevSibling(parent)
     2261#                self.PatternTree.Expand(prev)
     2262#                id = G2gd.GetPatternTreeItemId(self,prev,name)
     2263#                G2gd.MovePatternTreeToGrid(self,id)
     2264#            else:   
    22552265            self.PatternTree.GetPrevSibling(item)
    22562266        elif key == wx.WXK_DOWN:
    2257             self.oldFocus = wx.Window.FindFocus()
     2267#            if keyevt.GetModifiers() == wx.MOD_SHIFT:
     2268#                if type(parent) is int: return # is this the toplevel in tree?
     2269#                next = self.PatternTree.GetNextSibling(parent)
     2270#                self.PatternTree.Expand(next)
     2271#                id = G2gd.GetPatternTreeItemId(self,next,name)
     2272#                G2gd.MovePatternTreeToGrid(self,id)
     2273#            else:   
    22582274            self.PatternTree.GetNextSibling(item)
    22592275               
     
    35203536            wx.Yield()
    35213537        oldId =  self.PatternTree.GetSelection()        #retain current selection
    3522         oldName = self.PatternTree.GetItemText(oldId)
    3523         parentId = self.PatternTree.GetItemParent(oldId)
    35243538        parentName = ''
    3525         if parentId:
    3526             parentName = self.PatternTree.GetItemText(parentId)     #find the current data tree name
     3539        if type(oldId) is int:  #nothing had been selected!
     3540            oldName = self.PatternTree.GetItemText(oldId)
     3541            parentId = self.PatternTree.GetItemParent(oldId)
     3542            if parentId:
     3543                parentName = self.PatternTree.GetItemText(parentId)     #find the current data tree name
    35273544        dlg2 = wx.MessageDialog(self,'Load new result?','Refinement results, Rw =%.3f'%(Rw),wx.OK|wx.CANCEL)
    35283545        try:
  • trunk/GSASIImath.py

    r1683 r1780  
    15881588        out += ("e{:d}").format(valoff) # add an exponent, when needed
    15891589    return out
    1590 
     1590################################################################################
     1591##### Texture fitting stuff
     1592################################################################################
     1593
     1594def FitTexture(General,SamAngs,refData):
     1595    print 'fit texture for '+General["Name"]
     1596    SGData = General['SGData']
     1597    Texture = General['SH Texture']
     1598    if not Texture['Order']:
     1599        return 'No spherical harmonics coefficients'
     1600       
     1601       
     1602    return None
     1603   
    15911604################################################################################
    15921605##### Fourier & charge flip stuff
  • trunk/GSASIIphsGUI.py

    r1778 r1780  
    38973897       
    38983898    def OnSelDataCopy(event):
    3899         print 'selected data copy'
    3900         event.Skip()
     3899        hst = G2frame.PatternTree.GetItemText(G2frame.PatternId)
     3900        histList = GetHistsLikeSelected(G2frame)
     3901        if not histList:
     3902            G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame)
     3903            return
     3904#        # Assemble a list of item labels
     3905#        TextTable = {key:label for key,label,dig in
     3906#                     SetupSampleLabels(hst,data.get('Type'),Inst['Type'][0])
     3907#                     }
     3908#        # get flexible labels
     3909#        TextTable.update({
     3910#            key:Controls[key] for key in Controls if key.startswith('FreePrm')
     3911#            })
     3912#        # add a few extra
     3913#        TextTable.update({
     3914#            'Type':'Diffractometer type',
     3915#            'InstrName':'Instrument Name',
     3916#            })
     3917#        # Assemble a list of dict entries that would be labeled in the Sample
     3918#        # params data window (drop ranId and items not used).
     3919#        keyList = [i for i in data.keys() if i in TextTable]
     3920#        keyText = [TextTable[i] for i in keyList]
     3921#        # sort both lists together, ordered by keyText
     3922#        keyText, keyList = zip(*sorted(zip(keyText,keyList))) # sort lists
     3923#        selectedKeys = []
     3924#        dlg = G2G.G2MultiChoiceDialog(
     3925#            G2frame.dataFrame,
     3926#            'Select which sample parameters\nto copy',
     3927#            'Select sample parameters', keyText)
     3928#        try:
     3929#            if dlg.ShowModal() == wx.ID_OK:
     3930#                selectedKeys = [keyList[i] for i in dlg.GetSelections()]
     3931#        finally:
     3932#            dlg.Destroy()
     3933#        if not selectedKeys: return # nothing to copy
     3934#        copyDict = {}
     3935#        for parm in selectedKeys:
     3936#            copyDict[parm] = data[parm]
     3937#        dlg = G2G.G2MultiChoiceDialog(
     3938#            G2frame.dataFrame,
     3939#            'Copy sample params from\n'+str(hst[5:])+' to...',
     3940#            'Copy sample parameters', histList)
     3941#        try:
     3942#            if dlg.ShowModal() == wx.ID_OK:
     3943#                result = dlg.GetSelections()
     3944#                for i in result:
     3945#                    item = histList[i]
     3946#                    Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item)
     3947#                    sampleData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Sample Parameters'))
     3948#                    sampleData.update(copy.deepcopy(copyDict))
     3949#        finally:
     3950#            dlg.Destroy()           
     3951        G2plt.PlotPatterns(G2frame,plotType='SASD',newPlot=False)
     3952
    39013953       
    39023954    def OnPwdrAdd(event):
     
    58705922                           
    58715923    def OnTextureRefine(event):
    5872         print 'refine texture from C[i,j] in seq. result'
     5924        General = data['General']
     5925        phaseName = General['Name']
     5926        Histograms = data['Histograms']
     5927        histNames = []
     5928        refData = {}
     5929        SamAngs = {}
     5930        for name in Histograms.keys():
     5931            if 'PWDR' in name:
     5932                im = 0
     5933                it = 0
     5934                histNames.append(name)
     5935                Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,name)
     5936                Sample = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Sample Parameters'))
     5937                SamAngs[name] = copy.copy([Sample[item] for item in['Omega','Chi','Phi','Azimuth']])
     5938                RefDict = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Reflection Lists'))[phaseName]
     5939                Refs = RefDict['RefList'].T  #np.array!
     5940                if 'T' in RefDict['Type']: it = 3  #TOF offset for alp, bet, wave
     5941                if RefDict['Super']: im = 1     #(3+1) offset for m
     5942                refData[name] = np.column_stack((Refs[0],Refs[1],Refs[2],Refs[8+im],Refs[12+im+it]))
     5943        Error = G2mth.FitTexture(General,SamAngs,refData)
     5944        if Error:
     5945            wx.MessageBox(Error,caption='Fit Texture Error',style=wx.ICON_EXCLAMATION)
     5946        G2ddG.UpdateDData(G2frame,DData,data)
    58735947           
    58745948    def OnTextureClear(event):
  • trunk/GSASIIplot.py

    r1779 r1780  
    27272727    phi,beta = G2lat.CrsAng(PH,cell,SGData)
    27282728    ODFln = G2lat.Flnh(Start,SHCoef,phi,beta,SGData)
     2729    if not np.any(ODFln):
     2730        return
    27292731    PX = np.array(SHData['PFxyz'])
    27302732    gam = atan2d(PX[0],PX[1])
     
    27542756            Z = G2lat.invpolfcal(IODFln,SGData,R,P)
    27552757            Z = np.reshape(Z,(npts,npts))
    2756             CS = Plot.contour(Y,X,Z,aspect='equal')
    2757             Plot.clabel(CS,fontsize=9,inline=1)
    27582758            try:
    2759                 Img = Plot.imshow(Z.T,aspect='equal',cmap=G2frame.ContourColor,extent=[-1,1,-1,1])
     2759                CS = Plot.contour(Y,X,Z,aspect='equal')
     2760                Plot.clabel(CS,fontsize=9,inline=1)
    27602761            except ValueError:
    27612762                pass
     2763            Img = Plot.imshow(Z.T,aspect='equal',cmap=G2frame.ContourColor,extent=[-1,1,-1,1])
    27622764            Page.figure.colorbar(Img)
    27632765            Plot.set_title('Inverse pole figure for XYZ='+str(SHData['PFxyz']))
  • trunk/GSASIIpwdGUI.py

    r1778 r1780  
    30063006        if needed using MakeReflectionTable
    30073007        '''
     3008        def setBackgroundColors(im):
     3009            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)
     3020                                                 
    30083021        G2frame.RefList = phaseName
    30093022        G2frame.dataFrame.SetLabel('Reflection List for '+phaseName)
     
    30153028            G2frame.refTable[phaseName].SetMargins(0,0)
    30163029            G2frame.refTable[phaseName].AutoSizeColumns(False)
     3030            setBackgroundColors(0)
    30173031        # raise the tab (needed for 1st use and from OnSelectPhase)
    30183032        for PageNum in range(G2frame.dataDisplay.GetPageCount()):
Note: See TracChangeset for help on using the changeset viewer.