def run(plot=True): ## Suppress mundane output # When running scripts, especially involving multiple trials, it can be # useful to suppress many of the diffpy.srmise messages. Valid levels # include "debug", "info" (the default), "warning", "error", and # "critical." See diffpy.srmise.srmiselog for more information. sml.setlevel("warning") ## Initialize peak extraction ppe = PDFPeakExtraction() ppe.loadpdf("data/C60_fine_qmax21.gr") ## Set up extraction parameters # The FromSequence baseline interpolates (r, G(r)) values read from a # specified file. It has parameters. This particular baseline was # calculated by approximating the C60 sample as a face-centered cubic # lattice of hollow spheres. blfunc = FromSequence("data/C60baseline.dat") kwds = {} kwds["rng"] = [1., 7.25] kwds["baseline"] = blfunc.actualize([]) kwds["cres"] = 0.05 ppe.setvars(**kwds) ## Create multimodel selection object. # The MultimodelSelection class keeps track of the results of peak # extraction as the assumed uncertainty dg is varied. ms = MultimodelSelection() ms.setppe(ppe) ## Define range of dg values # For the purpose of illustration use 20 evenly-spaced values of dg where # 1% < dg < 10% of max gr value between r=1 and 7.25. grmax = np.max(ppe.y[ppe.getrangeslice()]) dgs = np.linspace(.01 * grmax, .10 * grmax, 20) ## Perform peak extraction for each of the assumed uncertainties. ms.run(dgs) ## Save results # The file C60_models.dat saves the models generated above. The file # C60_aics.dat saves the value of the AIC of each model when evaluated # on a Nyquist-sampled grid using each of the dg values used to generate # the models in the first place. dr = np.pi / ppe.qmax ms.save("output/unknown_dG_models.dat") ms.makeaics(dgs, dr, filename="output/unknown_dG_aics.dat")
def run(plot=True): ## Suppress mundane output # When running scripts, especially involving multiple trials, it can be # useful to suppress many of the diffpy.srmise messages. Valid levels # include "debug", "info" (the default), "warning", "error", and # "critical." See diffpy.srmise.srmiselog for more information. sml.setlevel("warning") ## Initialize peak extraction ppe = PDFPeakExtraction() ppe.loadpdf("data/C60_fine_qmax21.gr") ## Set up extraction parameters # The FromSequence baseline interpolates (r, G(r)) values read from a # specified file. It has parameters. This particular baseline was # calculated by approximating the C60 sample as a face-centered cubic # lattice of hollow spheres. blfunc = FromSequence("data/C60baseline.dat") kwds={} kwds["rng"] = [1., 7.25] kwds["baseline"] = blfunc.actualize([]) kwds["cres"] = 0.05 ppe.setvars(**kwds) ## Create multimodel selection object. # The MultimodelSelection class keeps track of the results of peak # extraction as the assumed uncertainty dg is varied. ms = MultimodelSelection() ms.setppe(ppe) ## Define range of dg values # For the purpose of illustration use 20 evenly-spaced values of dg where # 1% < dg < 10% of max gr value between r=1 and 7.25. grmax = np.max(ppe.y[ppe.getrangeslice()]) dgs = np.linspace(.01*grmax, .10*grmax, 20) ## Perform peak extraction for each of the assumed uncertainties. ms.run(dgs) ## Save results # The file C60_models.dat saves the models generated above. The file # C60_aics.dat saves the value of the AIC of each model when evaluated # on a Nyquist-sampled grid using each of the dg values used to generate # the models in the first place. dr = np.pi/ppe.qmax ms.save("output/unknown_dG_models.dat") ms.makeaics(dgs, dr, filename="output/unknown_dG_aics.dat")
def run(plot=True): ## Suppress mundane output # When running scripts, especially involving multiple trials, it can be # useful to suppress many of the diffpy.srmise messages. Valid levels # include "debug", "info" (the default), "warning", "error", and # "critical." See diffpy.srmise.srmiselog for more information. sml.setlevel("warning") ## Initialize peak extraction from saved trial ppe = PDFPeakExtraction() ppe.read("output/query_results.srmise") ppe.clearcalc() ## Set up extraction parameters # All parameters loaded from .srmise file. # Setting new values will override the previous values. kwds = {} kwds["rng"] = [10.9, 15] # Region of PDF with some overlap. ppe.setvars(**kwds) ## Create multimodel selection object. # The MultimodelSelection class keeps track of the results of peak # extraction as the assumed uncertainty dg is varied. ms = MultimodelSelection() ms.setppe(ppe) ## Define range of dg values # For the purpose of illustration use 15 evenly-spaced values of dg where # 50% < dg < 120% of mean experimental dG in extraction range. dg_mean = np.mean(ppe.dy[ppe.getrangeslice()]) dgs = np.linspace(.5 * dg_mean, 1.2 * dg_mean, 15) ## Perform peak extraction for each of the assumed uncertainties. ms.run(dgs) ## Save results # The file known_dG_models.dat saves the models generated above. The file # known_dG_aics.dat saves the value of the AIC of each model when evaluated # on a Nyquist-sampled grid using each of the dg values used to generate # the models in the first place. dr = np.pi / ppe.qmax ms.save("output/known_dG_models.dat") ms.makeaics(dgs, dr, filename="output/known_dG_aics.dat")
def run(plot=True): ## Suppress mundane output # When running scripts, especially involving multiple trials, it can be # useful to suppress many of the diffpy.srmise messages. Valid levels # include "debug", "info" (the default), "warning", "error", and # "critical." See diffpy.srmise.srmiselog for more information. sml.setlevel("warning") ## Initialize peak extraction from saved trial ppe = PDFPeakExtraction() ppe.read("output/query_results.srmise") ppe.clearcalc() ## Set up extraction parameters # All parameters loaded from .srmise file. # Setting new values will override the previous values. kwds={} kwds["rng"] = [10.9, 15] # Region of PDF with some overlap. ppe.setvars(**kwds) ## Create multimodel selection object. # The MultimodelSelection class keeps track of the results of peak # extraction as the assumed uncertainty dg is varied. ms = MultimodelSelection() ms.setppe(ppe) ## Define range of dg values # For the purpose of illustration use 15 evenly-spaced values of dg where # 50% < dg < 120% of mean experimental dG in extraction range. dg_mean = np.mean(ppe.dy[ppe.getrangeslice()]) dgs = np.linspace(.5*dg_mean, 1.2*dg_mean, 15) ## Perform peak extraction for each of the assumed uncertainties. ms.run(dgs) ## Save results # The file known_dG_models.dat saves the models generated above. The file # known_dG_aics.dat saves the value of the AIC of each model when evaluated # on a Nyquist-sampled grid using each of the dg values used to generate # the models in the first place. dr = np.pi/ppe.qmax ms.save("output/known_dG_models.dat") ms.makeaics(dgs, dr, filename="output/known_dG_aics.dat")