Changeset 3670 for trunk/imports/G2pwd_xye.py
- Timestamp:
- Oct 11, 2018 11:52:33 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/imports/G2pwd_xye.py
r3140 r3670 20 20 import GSASIIobj as G2obj 21 21 import GSASIIpath 22 23 asind = lambda x: 180.*np.arcsin(x)/np.pi 24 22 25 GSASIIpath.SetVersionNumber("$Revision$") 23 26 class xye_ReaderClass(G2obj.ImportPowderData): … … 25 28 def __init__(self): 26 29 super(self.__class__,self).__init__( # fancy way to self-reference 27 extensionlist=('.xye','.chi', ),30 extensionlist=('.xye','.chi','.qchi',), 28 31 strictExtension=False, 29 32 formatName = 'Topas xye or 2th Fit2D chi', 30 longFormatName = 'Topas .xye or 2th Fit2D .chi powder data file'33 longFormatName = 'Topas .xye or 2th Fit2D .chi/.qchi powder data file' 31 34 ) 32 35 self.scriptable = True … … 39 42 self.GSAS = False 40 43 self.Chi = False 44 Qchi = False 45 self.Wave = None 41 46 fp = open(filename,'r') 42 47 if '.chi' in filename: 43 48 self.Chi = True 49 if '.qchi' in filename: 50 Qchi = True 44 51 if2theta = False 52 ifQ = False 45 53 for i,S in enumerate(fp): 46 54 if not S: … … 48 56 if i > 1000: break 49 57 if begin: 50 if self.Chi :58 if self.Chi or Qchi: 51 59 if i < 4: 52 60 if '2-theta' in S.lower(): 53 61 if2theta = True 62 elif 'q ' in S.lower(): 63 ifQ = True 64 wave = '' 65 wave = S.split()[1:] 66 if wave: 67 try: 68 self.Wave = float(wave[0]) 69 except: 70 pass 71 if not self.Wave: 72 self.errors = 'No wavelength in a Q chi file' 73 fp.close() 74 return False 54 75 continue 55 76 else: … … 69 90 # valid line to read? 70 91 #vals = S.split() 71 if not if2theta: 92 if ifQ: 93 pass 94 elif not if2theta: 72 95 self.errors = 'Not a 2-theta chi file' 73 96 fp.close() … … 100 123 # or (GSAS style) each line can begin with '#' 101 124 if begin: 102 if self.Chi :125 if self.Chi or self.Wave: 103 126 if i < 4: 104 127 continue … … 126 149 continue 127 150 try: 128 x.append(float(vals[0])) 151 if self.Wave: 152 try: 153 val = min(0.995,self.Wave/(4.*np.pi/float(vals[0]))) #set max at 168deg 154 x.append(2.0*asind(val)) 155 except: 156 msg = 'Error converting '+str(vals[0] 157 ) + 'with wavelength ' + str(self.Wave) 158 break 159 else: 160 x.append(float(vals[0])) 129 161 f = float(vals[1]) 130 162 if f <= 0.0:
Note: See TracChangeset
for help on using the changeset viewer.