Changeset 2152
- Timestamp:
- Feb 18, 2016 1:01:27 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r2151 r2152 441 441 filelist1.append(filename) 442 442 filelist = filelist1 443 Start = True #1st time read - clear selections below 443 444 for filename in filelist: 444 445 # is this a zip file? … … 476 477 errorReport = '' 477 478 for rd in primaryReaders+secondaryReaders: 479 if Start: #clear old bank selections to allow new ones to be selected by user 480 rd.selections = [] 481 Start = False 478 482 rd.ReInitialize() # purge anything from a previous read 479 483 fp.seek(0) # rewind … … 948 952 return lines 949 953 950 def ReadPowderInstprm(self,instLines,bank ):954 def ReadPowderInstprm(self,instLines,bank,databanks,rd): 951 955 '''Read lines from a GSAS-II (new) instrument parameter file 952 956 similar to G2pwdGUI.OnLoad … … 1149 1153 s = Iparm['INS FPATH1'].split() 1150 1154 fltPath0 = G2IO.sfloat(s[0]) 1155 if 'INS 1BNKPAR' not in Iparm: #bank missing from Iparm file 1156 return [] 1151 1157 s = Iparm['INS 1BNKPAR'].split() 1152 1158 fltPath1 = G2IO.sfloat(s[0]) … … 1251 1257 prompts=['Total FP','2-theta',],values=[25.0,150.,], 1252 1258 limits=[[6.,200.],[5.,175.],],formats=['%6.2f','%6.1f',]) 1253 if dlg.ShowModal() == wx.ID_OK: 1259 if dlg.ShowModal() == wx.ID_OK: #strictly empirical approx. 1254 1260 FP,tth = dlg.GetValues() 1255 difC = 252.816*2.*FP*sind(tth/2.)1261 difC = 505.632*FP*sind(tth/2.) 1256 1262 sig1 = 50.+2.5e-6*(difC/tand(tth/2.))**2 1263 bet1 = .00226+7.76e+11/difC**4 1257 1264 rd.instmsg = 'default: '+dI.defaultIparm_lbl[res] 1258 1265 Inst = self.ReadPowderInstprm(dI.defaultIparms[res],bank) 1259 1266 Inst[0]['difC'] = [difC,difC,0] 1260 1267 Inst[0]['sig-1'] = [sig1,sig1,0] 1268 Inst[0]['beta-1'] = [bet1,bet1,0] 1261 1269 return Inst #this is [Inst1,Inst2] a pair of dicts 1262 1270 dlg.Destroy() … … 1282 1290 if 'instprm' in instfile: 1283 1291 Lines = self.OpenPowderInstprm(instfile) 1284 instParmList = self.ReadPowderInstprm(Lines,bank ) #this is [Inst1,Inst2] a pair of dicts1292 instParmList = self.ReadPowderInstprm(Lines,bank,numbanks,rd) #this is [Inst1,Inst2] a pair of dicts 1285 1293 if 'list' in str(type(instParmList)): 1286 1294 rd.instfile = instfile … … 1303 1311 #2nd priority: is there an instrument parameter file defined for the current data set? 1304 1312 # or if this is a read on a set of set of files, use the last one again 1305 #if rd.instparm or (lastdatafile == filename and lastIparmfile):1313 #if rd.instparm as found in data file header or (lastdatafile == filename and lastIparmfile): 1306 1314 if rd.instparm or lastIparmfile: 1307 1315 if rd.instparm: … … 1318 1326 Lines = self.OpenPowderInstprm(instfile) 1319 1327 if Lines is not None: 1320 instParmList = self.ReadPowderInstprm(Lines,bank ) #this is [Inst1,Inst2] a pair of dicts1328 instParmList = self.ReadPowderInstprm(Lines,bank,numbanks,rd) #this is [Inst1,Inst2] a pair of dicts 1321 1329 else: #old GSAS style iparm file - could be named anything! 1322 1330 Iparm = self.ReadPowderIparm(instfile,bank,numbanks,rd) … … 1386 1394 Lines = self.OpenPowderInstprm(instfile) 1387 1395 if Lines is not None: 1388 instParmList = self.ReadPowderInstprm(Lines,bank ) #this is [Inst1,Inst2] a pair of dicts1396 instParmList = self.ReadPowderInstprm(Lines,bank,numbanks,rd) #this is [Inst1,Inst2] a pair of dicts 1389 1397 if 'list' in str(type(instParmList)): 1390 1398 rd.instfile = instfile … … 1437 1445 for rd in rdlist: 1438 1446 if 'Instrument Parameters' not in rd.pwdparms: 1439 # get instrument parameters for each dataset, unless already set 1440 Iparm1,Iparm2 = self.GetPowderIparm(rd, Iparm, lastIparmfile, lastdatafile) 1447 # get instrument parameters for each dataset, unless already set 1448 Iparms = self.GetPowderIparm(rd, Iparm, lastIparmfile, lastdatafile) 1449 if not Iparms: 1450 continue 1451 Iparm1,Iparm2 = Iparms 1441 1452 if rd.repeat_instparm: 1442 1453 lastIparmfile = rd.instfile … … 1451 1462 HistName = 'PWDR '+HistName 1452 1463 # make new histogram names unique 1464 if HistName in PWDRlist: 1465 dlg = wx.MessageDialog(self,'Skip %s?'%(HistName),'Duplicate data name',wx.YES_NO) 1466 try: 1467 if dlg.ShowModal() == wx.ID_YES: 1468 Id = 0 1469 continue 1470 finally: 1471 dlg.Destroy() 1453 1472 HistName = G2obj.MakeUniqueLabel(HistName,PWDRlist) 1454 1473 print 'Read powder data '+str(HistName)+ \ … … 1528 1547 Controls.update(rd.Controls) 1529 1548 newHistList.append(HistName) 1549 rd.repeat_instparm = False #clear the iparm reuse flag 1530 1550 else: 1531 1551 self.EnablePlot = True 1532 self.PatternTree.Expand(Id) 1533 self.PatternTree.SelectItem(Id) 1534 1552 if Id: 1553 self.PatternTree.Expand(Id) 1554 self.PatternTree.SelectItem(Id) 1555 1535 1556 if not newHistList: return # somehow, no new histograms 1536 1557 # make a list of phase names … … 2947 2968 name = self.PatternTree.GetItemText(self.PickId) 2948 2969 if 'PWDR' in name or 'HKLF' in name or 'IMG' in name: 2949 dataType = name[:name.index(' ')+1] #includes the ' ' 2950 dlg = wx.TextEntryDialog(self,'Data name: '+dataType,'Change data name', 2951 defaultValue=name[name.index(' ')+1:]) 2970 if 'Bank' in name: 2971 names = name.split('Bank') 2972 names[1] = ' Bank'+names[1] 2973 elif 'Azm' in name: 2974 names = name.split('Azm') 2975 names[1] = ' Azm'+names[1] 2976 else: 2977 names = [name,''] 2978 dataType = names[0][:names[0].index(' ')+1] #includes the ' ' 2979 dlg = wx.TextEntryDialog(self,'Data name: '+name,'Change data name', 2980 defaultValue=names[0][names[0].index(' ')+1:]) 2952 2981 try: 2953 2982 if dlg.ShowModal() == wx.ID_OK: 2954 self.PatternTree.SetItemText(self.PickId,dataType+dlg.GetValue()) 2983 name = dataType+dlg.GetValue()+names[1] 2984 self.PatternTree.SetItemText(self.PickId,name) 2955 2985 finally: 2956 2986 dlg.Destroy() -
trunk/GSASIIIO.py
r2150 r2152 1322 1322 SGData = None 1323 1323 P1SGData = SGData 1324 ###################################################################### 1324 1325 class ImportBaseclass(object): 1325 1326 '''Defines a base class for the reading of input files (diffraction … … 1337 1338 1338 1339 UseReader = True # in __init__ set value of self.UseReader to False to skip use of current importer 1339 def __init__(self, 1340 formatName, 1341 longFormatName=None, 1342 extensionlist=[], 1343 strictExtension=False, 1344 ): 1340 def __init__(self,formatName,longFormatName=None, 1341 extensionlist=[],strictExtension=False,): 1345 1342 self.formatName = formatName # short string naming file type 1346 1343 if longFormatName: # longer string naming file type … … 1374 1371 self.readfilename = '?' 1375 1372 1376 def BlockSelector(self, ChoiceList, ParentFrame=None, 1377 title='Select a block', 1378 size=None, header='Block Selector', 1379 useCancel=True): 1373 def BlockSelector(self, ChoiceList, ParentFrame=None,title='Select a block', 1374 size=None, header='Block Selector',useCancel=True): 1380 1375 ''' Provide a wx dialog to select a block if the file contains more 1381 1376 than one set of data and one must be selected … … 1508 1503 return False 1509 1504 1505 ###################################################################### 1510 1506 class ImportPhase(ImportBaseclass): 1511 1507 '''Defines a base class for the reading of files with coordinates … … 1533 1529 size,header) 1534 1530 1531 ###################################################################### 1535 1532 class ImportStructFactor(ImportBaseclass): 1536 1533 '''Defines a base class for the reading of files with tables … … 1601 1598 for an explanation on how to use this class. 1602 1599 ''' 1603 def __init__(self, 1604 formatName, 1605 longFormatName=None, 1606 extensionlist=[], 1607 strictExtension=False, 1608 ): 1609 ImportBaseclass.__init__(self,formatName, 1610 longFormatName, 1611 extensionlist, 1612 strictExtension) 1600 def __init__(self,formatName,longFormatName=None, 1601 extensionlist=[],strictExtension=False,): 1602 ImportBaseclass.__init__(self,formatName,longFormatName, 1603 extensionlist,strictExtension) 1613 1604 self.clockWd = None # used in TOF 1614 1605 self.ReInitialize() … … 1764 1755 file without invoking any GUI objects. 1765 1756 ''' 1766 def __init__(self, 1767 G2frame, 1768 formatName, 1769 extension, 1770 longFormatName=None, 1771 ): 1757 def __init__(self,G2frame,formatName,extension,longFormatName=None,): 1772 1758 self.G2frame = G2frame 1773 1759 self.formatName = formatName # short string naming file type -
trunk/GSASIIplot.py
r2140 r2152 1734 1734 X *= (1.01)**(offsetX*N) 1735 1735 else: 1736 X += offsetX*.005*N 1736 xlim = Plot.get_xlim() 1737 DX = xlim[1]-xlim[0] 1738 X += 0.002*offsetX*DX*N 1737 1739 Xum = ma.getdata(X) 1738 1740 DifLine = [''] -
trunk/exports/G2export_FIT2D.py
r2133 r2152 65 65 filenamelist = [] 66 66 for hist in self.histnam: 67 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(self.histnam[0]),filenamelist) 67 # multiple files: create a unique name from the histogram 68 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 69 # create an instrument parameter file 68 70 self.filename = os.path.join(self.dirname,fileroot + self.extension) 69 71 self.Writer(hist) -
trunk/exports/G2export_csv.py
r2132 r2152 127 127 128 128 def Writer(self,TreeName,filename=None): 129 print filename 129 130 self.OpenFile(filename) 130 131 histblk = self.Histograms[TreeName] … … 157 158 filenamelist = [] 158 159 for hist in self.histnam: 159 #if len(self.histnam) > 1: 160 # # multiple files: create a unique name from the histogram 161 # fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 162 # # create an instrument parameter file 163 # self.filename = os.path.join(self.dirname,fileroot + self.extension) 160 # multiple files: create a unique name from the histogram 161 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 162 # create an instrument parameter file 163 self.filename = os.path.join(self.dirname,fileroot + self.extension) 164 164 self.Writer(hist) 165 165 print('Histogram '+str(hist)+' written to file '+str(self.fullpath)) -
trunk/exports/G2export_pwdr.py
r2026 r2152 97 97 filenamelist = [] 98 98 for hist in self.histnam: 99 if len(self.histnam) > 1: 100 # multiple files: create a unique name from the histogram 101 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 102 # create an instrument parameter file 103 self.filename = os.path.join(self.dirname,fileroot + self.extension) 104 else: 105 # use the supplied name, but force the extension 106 self.filename= os.path.splitext(self.filename)[0] + self.extension 107 99 # multiple files: create a unique name from the histogram 100 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 101 # create an instrument parameter file 102 self.filename = os.path.join(self.dirname,fileroot + self.extension) 108 103 histblk = self.Histograms[hist] 109 104 prmname = self.WriteInstFile(hist,histblk['Instrument Parameters'][0]) 110 105 self.Writer(hist,prmname=prmname) 111 106 print('Histogram '+str(hist)+' written to file '+str(self.fullpath)) 112 113 107 114 108 class ExportPowderXYE(G2IO.ExportBaseclass): … … 157 151 filenamelist = [] 158 152 for hist in self.histnam: 159 if len(self.histnam) > 1: 160 # multiple files: create a unique name from the histogram 161 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 162 # create an instrument parameter file 163 self.filename = os.path.join(self.dirname,fileroot + self.extension) 164 else: 165 # use the supplied name, but force the extension 166 self.filename= os.path.splitext(self.filename)[0] + self.extension 167 153 # multiple files: create a unique name from the histogram 154 fileroot = G2obj.MakeUniqueLabel(self.MakePWDRfilename(hist),filenamelist) 155 # create an instrument parameter file 156 self.filename = os.path.join(self.dirname,fileroot + self.extension) 168 157 self.Writer(hist) 169 158 print('Histogram '+str(hist)+' written to file '+str(self.fullpath)) -
trunk/imports/G2pwd_fxye.py
r1878 r2152 25 25 def __init__(self): 26 26 super(self.__class__,self).__init__( # fancy way to self-reference 27 extensionlist=('.fxye','.raw','.gsas','.gda',' gsa.','.RAW','.GSAS','.GDA','.GSA'),27 extensionlist=('.fxye','.raw','.gsas','.gda','.gsa','.gss','.RAW','.GSAS','.GDA','.GSA'), 28 28 strictExtension=False, 29 29 formatName = 'GSAS powder data', … … 258 258 title = '' 259 259 comments = None 260 # selections = None 261 262 # reload previously saved values 260 261 # reload previously saved values - used for multibank reads 263 262 if self.repeat and rdbuffer is not None: 264 263 Banks = rdbuffer.get('Banks')
Note: See TracChangeset
for help on using the changeset viewer.