Changeset 981 for trunk/exports/G2cif.py


Ignore:
Timestamp:
Jul 7, 2013 9:58:08 AM (8 years ago)
Author:
toby
Message:

introduce regress option; fix esd printing; more docs; new Mac app with drag & drop for open; control reset of ref list on load

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/exports/G2cif.py

    r963 r981  
    1313import GSASIIlattice as G2lat
    1414import GSASIIspc as G2spg
    15 reload(G2spg)
     15#reload(G2spg)
     16reload(G2mth)
    1617
    1718def getCallerDocString(): # for development
     
    3940          "simple" for a simple CIF with only coordinates
    4041        '''
     42   
    4143        def WriteCIFitem(name,value=''):
    4244            if value:
     
    571573                WriteDistances(phasenam,SymOpList,offsetList,symOpList,G2oprList)
    572574
    573             #raise Exception,'Testing'
    574 
    575575        def WritePowderData(histlbl):
    576576            text = '?'
    577577            histblk = self.Histograms[histlbl]
     578            inst = histblk['Instrument Parameters'][0]
     579            hId = histblk['hId']
     580            pfx = ':' + str(hId) + ':'
    578581            print 'TODO: powder here data for',histblk["Sample Parameters"]['InstrName']
    579582            # see wrpowdhist.for & wrreflist.for
    580583           
    581             refprx = '_refln.' # mm
     584            #refprx = '_refln.' # mm
    582585            refprx = '_refln_' # normal
     586
     587            print histblk.keys()
     588            #            for key in histblk:
     589            #                print key
     590            print inst
     591            print self.parmDict.keys()
     592            print self.sigDict.keys()
     593            WriteCIFitem('\n# SCATTERING FACTOR INFO')
     594            if 'Lam1' in inst:
     595                ratio = self.parmDict.get('I(L2)/I(L1)',inst['I(L2)/I(L1)'][1])
     596                sratio = self.sigDict.get('I(L2)/I(L1)',-0.0009)
     597                lam1 = self.parmDict.get('Lam1',inst['Lam1'][1])
     598                slam1 = self.sigDict.get('Lam1',-0.00009)
     599                lam2 = self.parmDict.get('Lam2',inst['Lam2'][1])
     600                slam2 = self.sigDict.get('Lam2',-0.00009)
     601                # always assume Ka1 & Ka2 if two wavelengths are present
     602                WriteCIFitem('loop_' +
     603                             '\n\t_diffrn_radiation_wavelength' +
     604                             '\n\t_diffrn_radiation_wavelength_wt' +
     605                             '\n\t_diffrn_radiation_type' +
     606                             '\n\t_diffrn_radiation_wavelength_id')
     607                WriteCIFitem('  ' + PutInCol(G2mth.ValEsd(lam1,slam1),15)+
     608                             PutInCol('1.0',15) +
     609                             PutInCol('K\\a~1~',10) +
     610                             PutInCol('1',5))
     611                WriteCIFitem('  ' + PutInCol(G2mth.ValEsd(lam2,slam2),15)+
     612                             PutInCol(G2mth.ValEsd(ratio,sratio),15)+
     613                             PutInCol('K\\a~2~',10) +
     614                             PutInCol('2',5))               
     615            else:
     616                lam1 = self.parmDict.get('Lam',inst['Lam'])
     617                slam1 = self.sigDict.get('Lam',-0.00009)
     618                WriteCIFitem('_diffrn_radiation_wavelength',G2mth.ValEsd(lam1,slam1))
     619
     620            raise Exception, "testing"
    583621
    584622            if not oneblock:
     
    593631                    for phasenam in phasebyhistDict.get(histlbl):
    594632                        pass
    595 
    596             WriteCIFitem('\n# SCATTERING FACTOR INFO')
    597             WriteCIFitem('_diffrn_radiation_wavelength' ,text)
    598             #WriteCIFitem('_diffrn_radiation_type',text)
    599             #C always assume Ka1 & Ka2 if two wavelengths are present
    600             #WriteCIFitem('loop_' +
    601             #             '\n\t_diffrn_radiation_wavelength' +
    602             #             '\n\t_diffrn_radiation_wavelength_wt' +
    603             #             '\n\t_diffrn_radiation_type' +
    604             #             '\n\t_diffrn_radiation_wavelength_id')
    605             #WRITE LAM1,1.0,'K\\a~1~',1, LAM2,ratio,'K\\a~2~',2
    606633
    607634            WriteCIFitem('_pd_proc_ls_prof_R_factor','?')
     
    642669                # instrumental profile terms go here
    643670                WriteCIFitem('_pd_proc_ls_profile_function','?')
     671
     672            #print 'Data'
     673            #for item in histblk['Data']:
     674            #    print item
     675                #try:
     676                #    print key,histblk[key].keys()
     677                #except:
     678                #    print key
     679                #    print histblk[key]
     680            #print 'Background'
     681            print histblk['Reflection Lists']['Garnet'][1]
     682            for i in range(0,80):
     683                for j in [0,1,2,13]:
     684                    print histblk['Reflection Lists']['Garnet'][i][j],
     685                print
     686                #print histblk['Reflection Lists']['Garnet'][i][12].shape
     687                #print histblk['Reflection Lists']['Garnet'][i][14]
     688            #print histblk['Background'][0]
     689            #print histblk['Background'][1]
     690            import numpy as np
     691            refList = np.array([refl[:11] for refl in histblk['Reflection Lists']['Garnet']])
     692            #refList = histblk['Reflection Lists']['Garnet']
     693            Icorr = np.array([refl[13] for refl in histblk['Reflection Lists']['Garnet']])
     694            FO2 = np.array([refl[8] for refl in histblk['Reflection Lists']['Garnet']])
     695            print Icorr
     696            I100 = refList.T[8]*Icorr
     697            print I100
     698            print I100/max(I100)
     699            Icorr = np.array([refl[13] for refl in histblk['Reflection Lists']['Garnet']]) * np.array([refl[8] for refl in histblk['Reflection Lists']['Garnet']])
     700            print I100/max(I100)
    644701
    645702            WriteCIFitem('\n# STRUCTURE FACTOR TABLE')           
     
    733790        #============================================================
    734791        # the export process starts here
    735         # create a dict with refined values and their uncertainties
    736         self.loadParmDict()
    737792        # also load all of the tree into a set of dicts
    738793        self.loadTree()
    739794        #self.dumpTree()
     795        # create a dict with refined values and their uncertainties
     796        self.loadParmDict()
     797        #
    740798
    741799        # get restraint info
     
    881939                WritePubTemplate()
    882940                WriteOverall()
     941                WritePhaseTemplate()
    883942            # report the phase info
    884             WritePhaseTemplate()
    885943            WritePhaseInfo(phasenam)
    886944            if hist.startswith("PWDR") and not self.quickmode:
Note: See TracChangeset for help on using the changeset viewer.