Changeset 2712


Ignore:
Timestamp:
Feb 17, 2017 1:03:35 PM (7 years ago)
Author:
vondreele
Message:

add export of G(R) in a format suitable for pdfGUI import

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r2710 r2712  
    35483548        if names:
    35493549            od = {'label_1':'Export I(Q)','value_1':False,'label_2':'Export S(Q)','value_2':False,
    3550                   'label_3':'Export F(Q)','value_3':False,'label_4':'Export G(R)','value_4':True}
     3550                  'label_3':'Export F(Q)','value_3':False,'label_4':'Export G(R)','value_4':True,
     3551                  'label_5':'Make G(R) for pdfGUI','value_5':False}
    35513552            dlg = G2G.G2MultiChoiceDialog(self,'Select','PDF patterns to export',names,extraOpts=od)
    35523553            if dlg.ShowModal() == wx.ID_OK:
     
    35563557            dlg.Destroy()
    35573558        if exports:
    3558             PDFsaves = [od['value_1'],od['value_2'],od['value_3'],od['value_4']]
     3559            PDFsaves = [od['value_1'],od['value_2'],od['value_3'],od['value_4'],od['value_5']]
    35593560            G2IO.PDFSave(self,exports,PDFsaves)
    35603561       
  • trunk/GSASIIIO.py

    r2710 r2712  
    3636import GSASIIobj as G2obj
    3737import GSASIIlattice as G2lat
     38import GSASIImath as G2mth
    3839import GSASIIpwdGUI as G2pdG
    3940import GSASIIimgGUI as G2imG
     
    10251026            print ' S(Q) saved to: ',sqfilename
    10261027           
    1027            
    10281028        if PDFsaves[2]:     #F(Q)
    10291029            fqfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.fq')
     
    10401040            print ' F(Q) saved to: ',fqfilename
    10411041           
    1042 
    10431042        if PDFsaves[3]:     #G(R)
    10441043            grfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.gr')
     
    10531052                grfile.write("%15.6g %15.6g\n" % (r,gr))
    10541053            grfile.close()
    1055             print ' G)R) saved to: ',grfilename
     1054            print ' G(R) saved to: ',grfilename
     1055       
     1056        if PDFsaves[4]: #pdfGUI file for G(R)
     1057            pId = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, 'PWDR'+export[4:])
     1058            Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame, pId,'Instrument Parameters'))[0]
     1059            Limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame, pId,'Limits'))
     1060            grfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.gr')
     1061            grdata = PDFControls['G(R)'][1]
     1062            qdata = PDFControls['I(Q)'][1][0]
     1063            grfxn = scintp.interp1d(grdata[0],grdata[1],kind='linear')
     1064            grfile = open(grfilename,'w')
     1065            rnew = np.arange(grdata[0][0],grdata[0][-1],0.010)
     1066            grnew = zip(rnew,grfxn(rnew))
     1067
     1068            grfile.write('[DEFAULT]\n')
     1069            grfile.write('\n')
     1070            grfile.write('version = GSAS-II-v'+str(GSASIIpath.GetVersionNumber())+'\n')
     1071            grfile.write('\n')
     1072            grfile.write('# input and output specifications\n')
     1073            grfile.write('dataformat = Qnm\n')
     1074            grfile.write('inputfile = %s\n'%(PDFControls['Sample']['Name']))
     1075            grfile.write('backgroundfile = %s\n'%(PDFControls['Sample Bkg.']['Name']))
     1076            grfile.write('outputtype = gr\n')
     1077            grfile.write('\n')
     1078            grfile.write('# PDF calculation setup\n')
     1079            if 'x' in Inst['Type']:
     1080                grfile.write('mode = %s\n'%('xray'))
     1081            elif 'N' in Inst['Type']:
     1082                grfile.write('mode = %s\n'%('neutron'))
     1083            wave = G2mth.getMeanWave(Inst)
     1084            grfile.write('wavelength = %.5f\n'%(wave))
     1085            formula = ''
     1086            for el in PDFControls['ElList']:
     1087                formula += el
     1088                num = PDFControls['ElList'][el]['FormulaNo']
     1089                if num == round(num):
     1090                    formula += '%d'%(int(num))
     1091                else:
     1092                    formula += '%.2f'%(num)
     1093            grfile.write('composition = %s\n'%(formula))
     1094            grfile.write('bgscale = %.3f\n'%(-PDFControls['Sample Bkg.']['Mult']))
     1095            grfile.write('rpoly = 1.05\n')
     1096            highQ = 2.*np.pi/G2lat.Pos2dsp(Inst,Limits[1][1])
     1097            grfile.write('qmaxinst = %.2f\n'%(highQ))
     1098            grfile.write('qmin = %.5f\n'%(qdata[0]))
     1099            grfile.write('qmax = %.4f\n'%(qdata[-1]))
     1100            grfile.write('rmin = %.2f\n'%(PDFControls['Rmin']))
     1101            grfile.write('rmax = %.2f\n'%(PDFControls['Rmax']))
     1102            grfile.write('rstep = 0.01\n')
     1103           
     1104           
     1105            grfile.write('\n')
     1106            grfile.write('# End of config '+63*'-')
     1107            grfile.write('\n')
     1108            grfile.write('#### start data\n')
     1109            grfile.write('#S 1\n')
     1110            grfile.write('#L r($\AA$)  G($\AA^{-2}$)\n')           
     1111            for r,gr in grnew:
     1112                grfile.write("%15.2F %15.6F\n" % (r,gr))
     1113            grfile.close()
     1114            print ' G(R) saved to: ',grfilename
     1115           
     1116           
     1117           
    10561118   
    10571119def PeakListSave(G2frame,file,peaks):
Note: See TracChangeset for help on using the changeset viewer.