Changeset 171 for trunk/GSASII.py


Ignore:
Timestamp:
Nov 12, 2010 10:53:07 AM (12 years ago)
Author:
vondreele
Message:

GSASIIIO.py:
read phase from cif file
fix esd output for powder data
prints space group info when pdb phase read in
GSASIIplot.py:
allow with 'u' & 'd' to vary max value in contour plot
select atom on drawing with Alt-LB
GSASIIpwdGUI.py:
Fix "UnDo?" in peak fitting
GSASII.py:
As above

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r169 r171  
    4747
    4848[wxID_FILECLOSE, wxID_FILEEXIT, wxID_FILEOPEN,
    49  wxID_FILESAVE, wxID_FILESAVEAS, wxID_UNDO, wxID_REFINE,
    50 ] = [wx.NewId() for _init_coll_File_Items in range(7)]
     49 wxID_FILESAVE, wxID_FILESAVEAS, wxID_REFINE,
     50] = [wx.NewId() for _init_coll_File_Items in range(6)]
    5151
    5252[wxID_PWDRREAD,wxID_SNGLREAD,wxID_ADDPHASE,wxID_DELETEPHASE,
     
    130130        self.Refine.Enable(False)
    131131        self.Bind(wx.EVT_MENU, self.OnRefine, id=wxID_REFINE)
    132 #        self.UnDo = parent.Append(help='', id=wxID_UNDO, kind=wx.ITEM_NORMAL,
    133 #            text='UnDo')
    134 #        self.UnDo.Enable(False)
    135 #        self.Bind(wx.EVT_MENU, self.OnUnDo, id=wxID_UNDO)
    136132       
    137133    def _init_coll_Import_Items(self,parent):
     
    140136        self.ImportPDB = parent.Append(help='Import phase data from PDB file',
    141137            id=wxID_IMPORTPDB, kind=wx.ITEM_NORMAL,text='Import PDB Phase...')
     138        self.ImportCIF = parent.Append(help='Import phase data from cif file',id=wxID_IMPORTCIF, kind=wx.ITEM_NORMAL,
     139            text='Import CIF Phase...')
    142140        self.ImportPattern = parent.Append(help='',id=wxID_IMPORTPATTERN, kind=wx.ITEM_NORMAL,
    143141            text='Import Powder Pattern...')
    144142        self.ImportHKL = parent.Append(help='',id=wxID_IMPORTHKL, kind=wx.ITEM_NORMAL,
    145143            text='Import HKLs...')
    146         self.ImportCIF = parent.Append(help='',id=wxID_IMPORTCIF, kind=wx.ITEM_NORMAL,
    147             text='Import CIF...')
    148144        self.Bind(wx.EVT_MENU, self.OnImportPhase, id=wxID_IMPORTPHASE)
    149145        self.Bind(wx.EVT_MENU, self.OnImportPDB, id=wxID_IMPORTPDB)
     146        self.Bind(wx.EVT_MENU, self.OnImportCIF, id=wxID_IMPORTCIF)
    150147        self.Bind(wx.EVT_MENU, self.OnImportPattern, id=wxID_IMPORTPATTERN)
    151148        self.Bind(wx.EVT_MENU, self.OnImportHKL, id=wxID_IMPORTHKL)
    152         self.Bind(wx.EVT_MENU, self.OnImportCIF, id=wxID_IMPORTCIF)
    153149
    154150    def _init_coll_Export_Items(self,parent):
     
    646642                    Xsum = []
    647643                    Ysum = []
    648                     Wsum = []
     644                    Vsum = []
    649645                    result = dlg.GetData()
    650646                    for i,item in enumerate(result[:-1]):
     
    654650                            Comments.append("%10.3f %s" % (scale,' * '+name))
    655651                            x,y,w,yc,yb,yd = data
     652                            v = 1./w
    656653                            if lenX:
    657654                                if lenX != len(x):
     
    671668                                    for j,yi in enumerate(y):
    672669                                         Ysum[j] += scale*yi
     670                                         Vsum[j] += abs(scale)*v[j]
    673671                            else:
    674672                                Xminmax = [x[0],x[-1]]
     
    677675                                    Xsum.append(x[j])
    678676                                    Ysum.append(scale*yi)
    679                                     Wsum.append(w[j])
     677                                    Vsum.append(abs(scale*v[j]))
     678                    Wsum = 1./np.array(Vsum)
    680679                    outname = 'PWDR '+result[-1]
    681680                    Id = 0
     
    10691068            try:
    10701069                if dlg.ShowModal() == wx.ID_OK:
    1071                     self.CIFfile = dlg.GetPath()
     1070                    CIFfile = dlg.GetPath()
    10721071                    self.dirname = dlg.GetDirectory()
     1072                    Phase = G2IO.ReadCIFPhase(CIFfile)
    10731073            finally:
    10741074                dlg.Destroy()
     1075            if Phase:
     1076                PhaseName = Phase['General']['Name']
     1077                if not G2gd.GetPatternTreeItemId(self,self.root,'Phases'):
     1078                    sub = self.PatternTree.AppendItem(parent=self.root,text='Phases')
     1079                else:
     1080                    sub = G2gd.GetPatternTreeItemId(self,self.root,'Phases')
     1081                sub = self.PatternTree.AppendItem(parent=sub,text=PhaseName)
     1082                self.PatternTree.SetItemPyData(sub,Phase)       
    10751083       
    10761084    def OnExportPattern(self,event):
     
    11291137        event.Skip()
    11301138       
    1131 #    def OnUnDo(self,event):
    1132 #        self.DoUnDo()
    1133 #        self.UnDo.Enable(False)
    1134 #       
    11351139    def OnRefine(self,event):
    11361140        #works - but it'd be better if it could restore plots
     
    11471151            dlg.Destroy()
    11481152       
    1149 #    def DoUnDo(self):
    1150 #        print 'Undo last refinement'
    1151 #        file = open(self.undofile,'rb')
    1152 #        PatternId = self.PatternId
    1153 #        for item in ['Background','Instrument Parameters','Peak List']:
    1154 #            self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,PatternId, item),cPickle.load(file))
    1155 #            if self.dataDisplay.GetName() == item:
    1156 #                if item == 'Background':
    1157 #                    G2pdG.UpdateBackgroundGrid(self,self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,PatternId, item)))
    1158 #                elif item == 'Instrument Parameters':
    1159 #                    G2pdG.UpdateInstrumentGrid(self,self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,PatternId, item)))
    1160 #                elif item == 'Peak List':
    1161 #                    G2pdG.UpdatePeakGrid(self,self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,PatternId, item)))
    1162 #            print item,' recovered'
    1163 #        file.close()
    1164 #       
    1165 #    def SaveState(self):
    1166 #        self.undofile = self.dirname+'\\GSASII.save'
    1167 #        file = open(self.undofile,'wb')
    1168 #        PatternId = self.PatternId
    1169 #        for item in ['Background','Instrument Parameters','Peak List']:
    1170 #            cPickle.dump(self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,PatternId,item)),file,1)
    1171 #        file.close()
    1172 #        self.UnDo.Enable(True)
    1173 #               
    11741153    def ErrorDialog(self,title,message):
    11751154        dlg = wx.MessageDialog(self, message, title,  wx.OK)
Note: See TracChangeset for help on using the changeset viewer.