Full pattern summation of X-ray powder diffraction data as
described in Chipera and Bish (2002)
powdR is an implementation of the full pattern summation approach to quantitative mineralogy from X-ray powder diffraction data (Chipera and Bish 2002; Chipera and Bish 2013; Eberl 2003). More specifically,
powdR implements a standardless approach, which assumes all phases within a sample can be identified, and thus they sum to 100 %.
powdR has several advantages over the excel based implementations of full pattern summation such as FULLPAT (Chipera and Bish 2002) and ROCKJOCK (Eberl 2003). First, computation is faster and, when quantifying multiple samples, can be used in combination with other packages (e.g
foreach) for parralel processing. Secondly, powdR can be run via a
shiny web application, which offers a user friendly interface for fast and iterative mineral quantification. Lastly, R represents a powerful tool for data manipulation, allowing users to creatively adapt, pre-treat and visualise their XRPD data.
The stable version of
powdR is on CRAN:
Alternatively, the development version can be downloaded from Github
library(powdR)#> powdR: Full Pattern Summation of X-Ray Powder Diffraction Data#Load some soils to quantifydata(soils)#Load a powdRlib reference library of pure patternsdata(minerals)#Quantify a sampleq <- fps(lib = minerals,smpl = soils$sandstone,refs = minerals$phases$phase_id,std = "QUA.1")#>#> -Using maximum tth range#> -Using default alignment of 0.1#> -Using default solver of BFGS#> -Using default objective function of Rwp#> -Aligning sample to the internal standard#> -Interpolating library to same 2theta scale as aligned sample#> -Optimising...#> -Removing negative coefficients and reoptimising...#> -Computing phase concentrations#> -Full pattern summation complete#Inspect the phase concentrations (summarised by name)q$phases_summary#> phase_name phase_percent#> 1 Illite 1.2376#> 2 K-feldspar 1.2509#> 3 Kaolinite 1.3908#> 4 Organic-Matter 39.8058#> 5 Plagioclase 1.1593#> 6 Quartz 55.1557#Inspect the quantificationplot(q)
plot(q, interactive = TRUE) provides an interactive plot for better inspection of the fit. More detailed usage instructions are provided in the package vignette.
powdR via the shiny app, use
run_powdR(). This loads the application in your default web browser. The application has six tabs:
powdRlibreference library from two .csv files: one for the XRPD measurements, and the other for the ID, name and reference intensity ratio of each pattern.
Chipera, Steve J., and David L. Bish. 2002. “FULLPAT: A full-pattern quantitative analysis program for X-ray powder diffraction using measured and calculated patterns.” Journal of Applied Crystallography 35 (6): 744–49. doi:10.1107/S0021889802017405.
———. 2013. “Fitting Full X-Ray Diffraction Patterns for Quantitative Analysis: A Method for Readily Quantifying Crystalline and Disordered Phases.” Advances in Materials Physics and Chemistry 03 (01): 47–53. doi:10.4236/ampc.2013.31A007.
Eberl, D. D. 2003. “User’s guide to ROCKJOCK - A program for determining quantitative mineralogy from powder X-ray diffraction data.” Boulder, CA: USGS.
baseline (>= 1.2) and
shinyWidgets (>= 0.4.3) in
fps() now accepts "NNLS" in the
solver argument. If "NNLS" (non-negative least
squares) is selected, the algorithm uses non negative least squares instead of
minimising an objective function. This is a much faster alternative but less
accurate for samples containing amorphous phases.
bkg() is a new function that allows for backgrounds to be fitted to XRPD data.
It is a wrapper of the
baseline::baseline.fillPeaks() method, and the output is
afps() is a new function that automates the process of full pattern
summation by firstly selecting samples from the reference library (using NNLS) and
then excluding those estimated to be below detection limit. The output is a
plot() methods for
The shiny application behind
run_powdR() has been updated to accept "NNLS", and
now includes tabs for background fitting (using
bkg()) and automated full pattern