Changeset 2710 for trunk/GSASIIIO.py


Ignore:
Timestamp:
Feb 16, 2017 4:31:20 PM (7 years ago)
Author:
vondreele
Message:

improve ExportPDF with G2file selector & allow selection of I(Q), S(Q), F(Q) & G(R)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIIO.py

    r2703 r2710  
    991991    print ' XY data saved to: ',filename
    992992           
    993 def PDFSave(G2frame,exports):
    994     'Save a PDF G(r) and F(Q), S(Q) in column formats'
     993def PDFSave(G2frame,exports,PDFsaves):
     994    'Save a PDF I(Q), S(Q), F(Q) and G(r) in column formats'
    995995    import scipy.interpolate as scintp
    996996    for export in exports:
    997997        PickId = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, export)
    998998        PDFControls = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame, PickId,'PDF Controls'))
    999         sqfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.sq')
    1000         fqfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.fq')
    1001         grfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.gr')
    1002         sqdata = PDFControls['S(Q)'][1]
    1003         sqfxn = scintp.interp1d(sqdata[0],sqdata[1],kind='linear')
    1004         fqdata = PDFControls['F(Q)'][1]
    1005         fqfxn = scintp.interp1d(fqdata[0],fqdata[1],kind='linear')
    1006         grdata = PDFControls['G(R)'][1]
    1007         grfxn = scintp.interp1d(grdata[0],grdata[1],kind='linear')
    1008         sqfile = open(sqfilename,'w')
    1009         fqfile = open(sqfilename,'w')
    1010         grfile = open(grfilename,'w')
    1011         sqfile.write('#T S(Q) %s\n'%(export))
    1012         fqfile.write('#T F(Q) %s\n'%(export))
    1013         grfile.write('#T G(R) %s\n'%(export))
    1014         sqfile.write('#L Q     S(Q)\n')
    1015         fqfile.write('#L Q     F(Q)\n')
    1016         grfile.write('#L R     G(R)\n')
    1017         qnew = np.arange(sqdata[0][0],sqdata[0][-1],0.005)
    1018         rnew = np.arange(grdata[0][0],grdata[0][-1],0.010)
    1019         sqnew = zip(qnew,sqfxn(qnew))
    1020         for q,sq in sqnew:
    1021             sqfile.write("%15.6g %15.6g\n" % (q,sq))
    1022         sqfile.close()
    1023         print ' S(Q) saved to: ',sqfilename
    1024         fqnew = zip(qnew,fqfxn(qnew))
    1025         for q,fq in fqnew:
    1026             fqfile.write("%15.6g %15.6g\n" % (q,fq))
    1027         fqfile.close()
    1028         print ' F(Q) saved to: ',fqfilename
    1029         grnew = zip(rnew,grfxn(rnew))
    1030         for r,gr in grnew:
    1031             grfile.write("%15.6g %15.6g\n" % (r,gr))
    1032         grfile.close()
    1033         print ' G)R) saved to: ',grfilename
     999        if PDFsaves[0]:     #I(Q)
     1000            iqfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.iq')
     1001            iqdata = PDFControls['I(Q)'][0]
     1002            iqfxn = scintp.interp1d(iqdata[0],iqdata[1],kind='linear')
     1003            iqfile = open(iqfilename,'w')
     1004            iqfile.write('#T I(Q) %s\n'%(export))
     1005            iqfile.write('#L Q     I(Q)\n')
     1006            qnew = np.arange(iqdata[0][0],iqdata[0][-1],0.005)
     1007            iqnew = zip(qnew,iqfxn(qnew))
     1008            for q,iq in iqnew:
     1009                iqfile.write("%15.6g %15.6g\n" % (q,iq))
     1010            iqfile.close()
     1011            print ' I(Q) saved to: ',iqfilename
     1012           
     1013        if PDFsaves[1]:     #S(Q)
     1014            sqfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.sq')
     1015            sqdata = PDFControls['S(Q)'][1]
     1016            sqfxn = scintp.interp1d(sqdata[0],sqdata[1],kind='linear')
     1017            sqfile = open(sqfilename,'w')
     1018            sqfile.write('#T S(Q) %s\n'%(export))
     1019            sqfile.write('#L Q     S(Q)\n')
     1020            qnew = np.arange(sqdata[0][0],sqdata[0][-1],0.005)
     1021            sqnew = zip(qnew,sqfxn(qnew))
     1022            for q,sq in sqnew:
     1023                sqfile.write("%15.6g %15.6g\n" % (q,sq))
     1024            sqfile.close()
     1025            print ' S(Q) saved to: ',sqfilename
     1026           
     1027           
     1028        if PDFsaves[2]:     #F(Q)
     1029            fqfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.fq')
     1030            fqdata = PDFControls['F(Q)'][1]
     1031            fqfxn = scintp.interp1d(fqdata[0],fqdata[1],kind='linear')
     1032            fqfile = open(sqfilename,'w')
     1033            fqfile.write('#T F(Q) %s\n'%(export))
     1034            fqfile.write('#L Q     F(Q)\n')
     1035            qnew = np.arange(sqdata[0][0],sqdata[0][-1],0.005)
     1036            fqnew = zip(qnew,fqfxn(qnew))
     1037            for q,fq in fqnew:
     1038                fqfile.write("%15.6g %15.6g\n" % (q,fq))
     1039            fqfile.close()
     1040            print ' F(Q) saved to: ',fqfilename
     1041           
     1042
     1043        if PDFsaves[3]:     #G(R)
     1044            grfilename = ospath.join(G2frame.dirname,export.replace(' ','_')[5:]+'.gr')
     1045            grdata = PDFControls['G(R)'][1]
     1046            grfxn = scintp.interp1d(grdata[0],grdata[1],kind='linear')
     1047            grfile = open(grfilename,'w')
     1048            grfile.write('#T G(R) %s\n'%(export))
     1049            grfile.write('#L R     G(R)\n')
     1050            rnew = np.arange(grdata[0][0],grdata[0][-1],0.010)
     1051            grnew = zip(rnew,grfxn(rnew))
     1052            for r,gr in grnew:
     1053                grfile.write("%15.6g %15.6g\n" % (r,gr))
     1054            grfile.close()
     1055            print ' G)R) saved to: ',grfilename
    10341056   
    10351057def PeakListSave(G2frame,file,peaks):
Note: See TracChangeset for help on using the changeset viewer.