Learn R Programming

numOSL (version 1.8)

decomp: OSL decay curve decomposition

Description

Decomposing an CW-OSL or LM-OSL decay curve to a given number of first-order exponential components using a combination of differential evolution and Levenberg-Marquardt algorithm.

Usage

decomp(Sigdata, ncomp = 2, constant = TRUE, 
       typ = c("cw","lm"), control.args = list(), 
       transf = TRUE, LEDpower = 60, LEDwavelength = 470, 
       weight = FALSE, plot = TRUE, xylog = FALSE, lwd = 3, outfile = NULL)

Arguments

Sigdata
matrix(required): a two-column matrix, stimulation time values and photon counts are stored in the first and second column, respectively
ncomp
integer(with default): number of components to be decomposed
constant
logical(with default): subtract a constant component or not
typ
character(with default): type ("cw" or "lm") of a decay curve, default typ="cw"
control.args
list(with default): arguments used by the differential evolution algorithm, see details
transf
logical(with default): do not use (for backward compatibility purpose)
LEDpower
double(with default): LED power (mW/cm^2) of the instrument
LEDwavelength
double(with default): LED wavelength (nm) of the instrument
weight
logical(with default): perform the optimization using a weighted or an un-weighted procedure, see details
plot
logical(with default): draw a plot or not
xylog
logical(with default): apply a logarithmic scale to both axis (x and y) or only x-axis in a plot
lwd
double(with default): width of a line
outfile
character(optional): if specified, decomposed signal values will be written to a file named "outfile" in ".csv" format and saved to the current work directory

Value

  • Return a list containing the following elements:
  • parsoptimized decay rates and numbers of trapped electrons
  • constantestimated constant component (return 0 if constant=FALSE)
  • valueminimized objective of the decay curve

Details

Function decomp decomposes an OSL decay curve to a specified number of components using a combination of differential evolution and Levenberg-Marquardt algorithm. Both CW-OSL and LM-OSL decay curves can be decomposed. For a CW-OSL decay curve, the fitting model (Bluszcz and Adamiec, 2006) is: I(t)=a1*b1*exp(-b1*t)+...+ak*bk*exp(-bk*t), where k=1, 2, ..., 7, I(t) is the luminescence intensity as a function of time, a is the number of trapped electrons, and b is the detrapping rate. The constant component is c if constant=TRUE. For a LM-OSL decay curve, the fitting model (Bulur, 2000) is: I(t)=a1*b1*(t/P)*exp[-b1*t^2/(2*P)]+...+ak*bk*(t/P)*exp[-bk*t^2/(2*P)], where k=1, 2, ..., 7, and I(t) is the luminescence intensity as a function of time, P is the total stimulation time, a is the number of trapped electrons, and b is the detrapping rate. The constant component is c*(t/P) if constant=TRUE. Parameters are initialized using a differential evolution method suggested by Bluszcz and Adamiec (2006), then the Levenberg-Marquardt algorithm (minpack: Fortran 90 version by John Burkardt, freely available at http://people.sc.fsu.edu/~jburkardt/f_src/minpack/minpack.html) will be performed to optimize the parameters. If weight=TRUE, the photon counts will be assumed to follow a Possion distribution with a standard error equal to the square root of the number of photon counts, and the decay curve will be fitted using a weighted procedure. Setting weight=TRUE gives more weight to photon counts from slower decaying components. Arguments in control.args that control the differential evolution algorithm include: (1) factor: the number of population members, np=factor*ncomp, default factor=10; (2) f: a weighting factor that lies between 0 and 1.2, default f=0.5; (3) cr: a crossover constant that lies between 0 and 1, default cr=0.99; (4) maxiter: maximum number of iterations, default maxiter=500; (5) tol: tolerance for stopping the iteration, the procedure will be terminated if all relative standard deviations of parameters are smaller than tol, defalut tol=0.1.

References

Bluszcz A, 1996. Exponential function fitting to TL growth data and similar applications. Geochronometria, 13: 135-141.

Bluszcz A, Adamiec G, 2006. Application of differential evolution to fitting OSL decay curves. Radiation Measurements, 41(7-8): 886-891.

Bulur E, 2000. A simple transformation for converting CW-OSL curves to LM-OSL curves. Radiation Measurements, 32(2): 141-145.

Differential evolution algorithm, http://en.wikipedia.org/wiki/Differential_evolution Jain M, Murray AS, Boetter-Jensen L, 2003. Characterisation of blue-light stimulated luminescence components in different quartz samples: implications for dose measurement. Radiation Measurements, 37(4-5): 441-449.

More JJ, 1978. "The Levenberg-Marquardt algorithm: implementation and theory," in Lecture Notes in Mathematics: Numerical Analysis, Springer-Verlag: Berlin. 105-116.

Further reading

Adamiec G, 2005. OSL decay curves-relationship between single- and multiple-grain aliquots. Radiation Measurements, 39(1): 63-75.

Choi JH, Duller GAT, Wintle AG, 2006. Analysis of quartz LM-OSL curves. Ancient TL, 24(1): 9-20.

Li SH, Li B, 2006. Dose measurement using the fast component of LM-OSL signals from quartz. Radiation Measurements, 41(5): 534-541.

Peng J, Dong ZB, Han FQ, Han YH, Dai XL, 2014. Estimating the number of components in an OSL decay curve using the Bayesian Information Criterion. Geochronometria, 41(4): 334-341.

See Also

fastED

Examples

Run this code
data(Signaldata)
 decomp(Signaldata$lm,ncomp=3,typ="lm",
        control.args=list(maxiter=10))

Run the code above in your browser using DataLab