Changeset 3670


Ignore:
Timestamp:
Oct 11, 2018 11:52:33 AM (3 years ago)
Author:
toby
Message:

read in qchi files

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/exports/G2export_FIT2D.py

    r3223 r3670  
    9393        inst = histblk['Instrument Parameters'][0]
    9494        self.Write(str(TreeName)[5:]) # drop 'PWDR '
    95         self.Write("Q")
     95        if 'Lam1' in inst:
     96            print('Do you really want to write a multi-wavelength pattern in Q?')
     97            lam = 0.
     98        else:
     99            lam = inst['Lam'][1]
     100        self.Write("Q{:>20.6f}".format(lam))
    96101        self.Write("Intensity")
    97102        self.Write("       "+str(len(histblk['Data'][0])))
  • trunk/imports/G2pwd_xye.py

    r3140 r3670  
    2020import GSASIIobj as G2obj
    2121import GSASIIpath
     22
     23asind = lambda x: 180.*np.arcsin(x)/np.pi
     24
    2225GSASIIpath.SetVersionNumber("$Revision$")
    2326class xye_ReaderClass(G2obj.ImportPowderData):
     
    2528    def __init__(self):
    2629        super(self.__class__,self).__init__( # fancy way to self-reference
    27             extensionlist=('.xye','.chi',),
     30            extensionlist=('.xye','.chi','.qchi',),
    2831            strictExtension=False,
    2932            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'
    3134            )
    3235        self.scriptable = True
     
    3942        self.GSAS = False
    4043        self.Chi = False
     44        Qchi = False
     45        self.Wave = None
    4146        fp = open(filename,'r')
    4247        if '.chi' in filename:
    4348            self.Chi = True
     49        if '.qchi' in filename:
     50            Qchi = True
    4451        if2theta = False
     52        ifQ = False
    4553        for i,S in enumerate(fp):
    4654            if not S:
     
    4856            if i > 1000: break
    4957            if begin:
    50                 if self.Chi:
     58                if self.Chi or Qchi:
    5159                    if i < 4:
    5260                        if  '2-theta' in S.lower():
    5361                            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
    5475                        continue
    5576                    else:
     
    6990                # valid line to read?
    7091            #vals = S.split()
    71             if not if2theta:
     92            if ifQ:
     93                pass
     94            elif not if2theta:
    7295                self.errors = 'Not a 2-theta chi file'
    7396                fp.close()
     
    100123            # or (GSAS style) each line can begin with '#'
    101124            if begin:
    102                 if self.Chi:
     125                if self.Chi or self.Wave:
    103126                    if i < 4:
    104127                        continue
     
    126149                continue
    127150            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]))
    129161                f = float(vals[1])
    130162                if f <= 0.0:
Note: See TracChangeset for help on using the changeset viewer.