Changeset 238


Ignore:
Timestamp:
Jan 11, 2011 12:17:17 PM (13 years ago)
Author:
vondreele
Message:

add new image data types SXAS & REFL
make image controls save file a user editable text file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIimgGUI.py

    r230 r238  
    2929def UpdateImageControls(self,data,masks):
    3030    import ImageCalibrants as calFile
     31   
     32    def OnDataType(event):
     33        data['type'] = typeSel.GetValue()[:4]
    3134   
    3235    def OnNewColorBar(event):
     
    283286            if dlg.ShowModal() == wx.ID_OK:
    284287                filename = dlg.GetPath()
    285                 File = open(filename,'wb')
     288                File = open(filename,'w')
    286289                save = {}
    287                 keys = ['wavelength','calibrant','distance','center','tilt','rotation']
     290                keys = ['type','wavelength','calibrant','distance','center','tilt','rotation']
    288291                for key in keys:
    289                     save[key] = data[key]
    290                 cPickle.dump(save,File,1)
     292                    File.write(key+':'+str(data[key])+'\n')
    291293                File.close()
    292294        finally:
     
    301303            if dlg.ShowModal() == wx.ID_OK:
    302304                filename = dlg.GetPath()
    303                 File = open(filename,'rb')
    304                 save = cPickle.load(File)
     305                File = open(filename,'r')
     306                save = {}
     307                S = File.readline()
     308                while S:
     309                    if S[0] == '#':
     310                        S = File.readline()
     311                        continue
     312                    [key,val] = S[:-1].split(':')
     313                    if key in ['type','calibrant']:
     314                        save[key] = val
     315                    elif key in ['wavelength','distance','tilt','rotation']:
     316                        save[key] = float(val)
     317                    elif key in ['center',]:
     318                        vals = val.strip('[] ').split()
     319                        save[key] = [float(vals[0]),float(vals[1])]                   
     320                    S = File.readline()
    305321                data.update(save)
    306322                calSel.SetValue(data['calibrant'])
     
    317333    colorList = [m for m in mpl.cm.datad.keys() if not m.endswith("_r")]
    318334    calList = [m for m in calFile.Calibrants.keys()]
     335    typeList = ['PWDR - powder diffraction data','SXAS - small angle scattering data',
     336        'REFL - reflectometry data']
     337    if not data.get('type'):                        #patch for old project files
     338        data['type'] = 'PWDR'
     339    typeDict = {'PWDR':typeList[0],'SXAS':typeList[1],'REFL':typeList[2]}
    319340    if self.dataDisplay:
    320341        self.dataDisplay.Destroy()
     
    337358    mainSizer.Add((5,10),0)
    338359   
     360    typeSizer = wx.BoxSizer(wx.HORIZONTAL)
     361    typeSizer.Add(wx.StaticText(parent=self.dataDisplay,label='Type of image data: '),0,
     362        wx.ALIGN_CENTER_VERTICAL)
     363    typeSel = wx.ComboBox(parent=self.dataDisplay,value=typeDict[data['type']],choices=typeList,
     364        style=wx.CB_READONLY|wx.CB_DROPDOWN)
     365    typeSel.SetValue(data['type'])
     366    typeSel.Bind(wx.EVT_COMBOBOX, OnDataType)
     367    typeSizer.Add(typeSel,0,wx.ALIGN_CENTER_VERTICAL)
     368    mainSizer.Add(typeSizer,0,wx.ALIGN_CENTER_HORIZONTAL)
     369           
    339370    maxSizer = wx.FlexGridSizer(2,2,0,5)
    340371    maxSizer.AddGrowableCol(1,1)
Note: See TracChangeset for help on using the changeset viewer.