Changeset 535


Ignore:
Timestamp:
Apr 8, 2012 2:36:34 PM (10 years ago)
Author:
vondreele
Message:

now save & load GSAS-II instrument parameter files.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r527 r535  
    7070] = [wx.NewId() for item in range(5)]
    7171
    72 [ wxID_INSTPRMRESET,wxID_CHANGEWAVETYPE,wxID_INSTCOPY, wxID_INSTFLAGCOPY,
    73 ] = [wx.NewId() for item in range(4)]
     72[ wxID_INSTPRMRESET,wxID_CHANGEWAVETYPE,wxID_INSTCOPY, wxID_INSTFLAGCOPY, wxID_INSTLOAD,
     73    wxID_INSTSAVE,
     74] = [wx.NewId() for item in range(6)]
    7475
    7576[ wxID_UNDO,wxID_LSQPEAKFIT,wxID_LSQONECYCLE,wxID_RESETSIGGAM,wxID_CLEARPEAKS,
     
    308309        self.InstMenu.Append(menu=MyHelp(self,helpType='Instrument Parameters'),title='&Help')
    309310        self.InstEdit.Append(help='Reset instrument profile parameters to default',
     311            id=wxID_INSTLOAD, kind=wx.ITEM_NORMAL,text='Load profile...')
     312        self.InstEdit.Append(help='Load instrument profile parameters from file',
     313            id=wxID_INSTSAVE, kind=wx.ITEM_NORMAL,text='Save profile...')
     314        self.InstEdit.Append(help='Save instrument profile parameters to file',
    310315            id=wxID_INSTPRMRESET, kind=wx.ITEM_NORMAL,text='Reset profile')
    311316        self.InstEdit.Append(help='Copy instrument profile parameters to other histograms',
  • trunk/GSASIIpwdGUI.py

    r528 r535  
    641641                    peak[4] = insVal['U']*tand(peak[0]/2.0)**2+insVal['V']*tand(peak[0]/2.0)+insVal['W']
    642642                    peak[6] = insVal['X']/cosd(peak[0]/2.0)+insVal['Y']*tand(peak[0]/2.0)
     643                   
     644    def OnLoad(event):
     645        dlg = wx.FileDialog(G2frame, 'Choose GSAS-II instrument parameters file', '.', '',
     646            'instrument parameter files (*.instprm)|*.instprm',wx.OPEN|wx.CHANGE_DIR)
     647        try:
     648            if dlg.ShowModal() == wx.ID_OK:
     649                filename = dlg.GetPath()
     650                File = open(filename,'r')
     651                S = File.readline()
     652                newItems = []
     653                newVals = []
     654                while S:
     655                    if S[0] == '#':
     656                        S = File.readline()
     657                        continue
     658                    [item,val] = S[:-1].split(':')
     659                    newItems.append(item)
     660                    try:
     661                        newVals.append(float(val))
     662                    except ValueError:
     663                        newVals.append(val)                       
     664                    S = File.readline()               
     665                File.close()
     666                data = [tuple(newVals),newVals,len(newVals)*[False,],newItems]
     667                G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId,'Instrument Parameters'),data)
     668                RefreshInstrumentGrid(event,doAnyway=True)          #to get peaks updated
     669                UpdateInstrumentGrid(G2frame,data)
     670        finally:
     671            dlg.Destroy()
     672       
     673    def OnSave(event):
     674        dlg = wx.FileDialog(G2frame, 'Choose GSAS-II instrument parameters file', '.', '',
     675            'instrument parameter files (*.instprm)|*.instprm',wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT|wx.CHANGE_DIR)
     676        try:
     677            if dlg.ShowModal() == wx.ID_OK:
     678                filename = dlg.GetPath()
     679                File = open(filename,'w')
     680                File.write("#GSAS-II instrument parameter file; do not add/delete or change order of items!")
     681                for i,item in enumerate(data[3]):
     682                    File.write(item+':'+str(data[1][i])+'\n')
     683                File.close()
     684        finally:
     685            dlg.Destroy()
    643686                                               
    644687    def OnReset(event):
     
    786829        if not G2frame.dataFrame.GetStatusBar():
    787830            Status = G2frame.dataFrame.CreateStatusBar()
     831        G2frame.Bind(wx.EVT_MENU,OnLoad,id=G2gd.wxID_INSTLOAD)
     832        G2frame.Bind(wx.EVT_MENU,OnSave,id=G2gd.wxID_INSTSAVE)
    788833        G2frame.Bind(wx.EVT_MENU,OnReset,id=G2gd.wxID_INSTPRMRESET)
    789834        G2frame.Bind(wx.EVT_MENU,OnInstCopy,id=G2gd.wxID_INSTCOPY)
Note: See TracChangeset for help on using the changeset viewer.