Changeset 792 for trunk/GSASII.py
- Timestamp:
- Oct 24, 2012 8:54:20 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r776 r792 557 557 S = File.readline() 558 558 File.close() 559 return [tuple(newVals),newVals,len(newVals)*[False,],newItems]559 return dict(zip(newItems,zip(newVals,newVals,len(newVals)*[False,]))) 560 560 561 561 def ReadPowderIparm(self,instfile,bank,databanks,rd): … … 577 577 except: 578 578 ibanks = 1 579 hType = Iparm['INS HTYPE '].strip() 579 580 if ibanks == 1: # there is only one bank here, return it 580 581 rd.instbank = 1 581 582 return Iparm 582 if ibanks != databanks: 583 if 'PNT' in hType: 584 rd.instbank = bank 585 elif ibanks != databanks: 583 586 # number of banks in data and prm file not not agree, need a 584 587 # choice from a human here … … 588 591 bank = rd.BlockSelector( 589 592 choices, self, 590 title='Select an instrument parameter b lock for '+591 os.path.split(rd.powderentry[0])[1]+' block'+str(bank)+593 title='Select an instrument parameter bank for '+ 594 os.path.split(rd.powderentry[0])[1]+' BANK '+str(bank)+ 592 595 '\nOr use Cancel to select from the default parameter sets', 593 596 header='Block Selector') … … 612 615 Create and return the contents of the instrument parameter tree entry. 613 616 ''' 614 DataType = Iparm['INS HTYPE '].strip()[ 0:3] # take 1st 3 chars617 DataType = Iparm['INS HTYPE '].strip()[:3] # take 1st 3 chars 615 618 # override inst values with values read from data file 616 619 if rd.instdict.get('type'): 617 620 DataType = rd.instdict.get('type') 618 wave1 = None619 wave2 = 0.0620 if rd.instdict.get('wave'):621 wl = rd.instdict.get('wave')622 wave1 = wl[0]623 if len(wl) > 1: wave2 = wl[1]624 621 data = [DataType,] 625 622 if 'C' in DataType: 623 wave1 = None 624 wave2 = 0.0 625 if rd.instdict.get('wave'): 626 wl = rd.instdict.get('wave') 627 wave1 = wl[0] 628 if len(wl) > 1: wave2 = wl[1] 626 629 s = Iparm['INS 1 ICONS'] 627 630 if not wave1: … … 652 655 data.extend([0.0,0.0,0.002,azm]) #OK defaults if fxn #3 not 1st in iprm file 653 656 codes.extend([0,0,0,0,0,0,0]) 654 return [tuple(data),data,codes,names] 657 return dict(zip(names,zip(data,data,codes))) 658 elif 'T' in DataType: 659 names = ['Type','2-theta','difC','difA','Zero','alpha','beta-0','beta-1','var-inst','X','Y','Azimuth'] 660 codes = [0,0,0,0,0,0,0,0,0,0,0,0] 661 azm = Iparm.get('INS 1DETAZM') 662 if azm is None: #not in this Iparm file 663 azm = 0.0 664 else: 665 azm = float(azm) 666 s = Iparm['INS 1BNKPAR'].split() 667 data.extend([G2IO.sfloat(s[1]),]) #2-theta for bank 668 s = Iparm['INS 1 ICONS'].split() 669 data.extend([G2IO.sfloat(s[0]),G2IO.sfloat(s[1]),G2IO.sfloat(s[2])]) #difC, difA, Zero 670 s = Iparm['INS 1PRCF1 '].split() 671 pfType = int(s[0]) 672 s = Iparm['INS 1PRCF11'].split() 673 if pfType == 1: 674 data.extend([G2IO.sfloat(s[1]),G2IO.sfloat(s[2]),G2IO.sfloat(s[3])]) 675 s = Iparm['INS 1PRCF12'].split() 676 data.extend([G2IO.sfloat(s[1]),0.0,0.0,azm]) 677 elif pfType in [3,4,5]: 678 data.extend([G2IO.sfloat(s[0]),G2IO.sfloat(s[1]),G2IO.sfloat(s[2])]) 679 if pfType == 4: 680 data.extend([G2IO.sfloat(s[3]),0.0,0.0,azm]) 681 else: 682 s = Iparm['INS 1PRCF12'].split() 683 data.extend([G2IO.sfloat(s[0]),0.0,0.0,azm]) 684 return dict(zip(names,zip(data,data,codes))) 655 685 656 686 # stuff we might need from the reader … … 785 815 ''' 786 816 reqrdr = self.ImportMenuId.get(event.GetId()) # look up which format was requested 787 rdlist = self.OnImportGeneric(reqrdr, 788 self.ImportPowderReaderlist, 789 'Powder Data',multiple=True) 817 rdlist = self.OnImportGeneric(reqrdr,self.ImportPowderReaderlist, 818 'Powder Data',multiple=True) 790 819 if len(rdlist) == 0: return 791 820 self.CheckNotebook() … … 798 827 lastIparmfile = rd.instfile 799 828 lastdatafile = rd.powderentry[0] 800 print 'Read powder data '+str( 801 rd.idstring)+' from file '+str( 802 self.lastimport) + ' with parameters from '+str( 803 rd.instmsg) 829 print 'Read powder data '+str(rd.idstring)+ \ 830 ' from file '+str(self.lastimport) + \ 831 ' with parameters from '+str(rd.instmsg) 804 832 # data are read, now store them in the tree 805 Id = self.PatternTree.AppendItem( 806 parent=self.root, 833 Id = self.PatternTree.AppendItem(parent=self.root, 807 834 text='PWDR '+rd.idstring) 808 835 self.PatternTree.SetItemPyData(Id,[{'wtFactor':1.0},rd.powderdata]) … … 1018 1045 self.Legend = False 1019 1046 self.SinglePlot = False 1047 self.SubBack = False 1020 1048 self.plotView = 0 1021 1049 self.Image = 0 … … 1092 1120 names = ['Type','Lam','Zero'] 1093 1121 codes = [0,0] 1094 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'), [tuple(data),data,codes,names])1122 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),dict(zip(names,zip(data,data,codes)))) 1095 1123 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),comments) 1096 1124 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),peaks)
Note: See TracChangeset
for help on using the changeset viewer.