decomp {numOSL} | R Documentation |
OSL decay curve decomposition
Description
Decomposing a 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 suggested by Bluszcz and Adamiec (2006).
Usage
decomp(Sigdata, delay.off = c(0,0), ncomp = 2,
constant = TRUE, typ = "cw", control.args = list(),
weight = FALSE, plot = TRUE, log = "x", lwd = 2,
curve.no = NULL, SAR.Cycle = NULL, irr.dose = NULL,
outfile = NULL, transf = TRUE)
Arguments
Sigdata |
matrix(required): a two-column matrix (i.e., stimulation time and photon count values) |
delay.off |
vector(with default): a two-elment vector indicating the "Delay" and "Off" |
ncomp |
integer(with default): number of decomposed components |
constant |
logical(with default): logical value indicating if a constant component should be subtracted from the decay curve |
typ |
character(with default): type of a decay curve (i.e., |
control.args |
list(with default): arguments used in the differential evolution algorithm, see details |
weight |
logical(with default): logical value indicating if the fit should be performed using a weighted procedure |
plot |
logical(with default): logical value indicating if the results should be plotted |
log |
character(with default): a character string which contains "x" if the x axis is to be logarithmic, "y" if the y axis is to be logarithmic and "xy" or "yx" if both axes are to be logarithmic |
lwd |
numeric(with default): width of curves (lines) |
curve.no |
numeric(optional): decay curve number |
SAR.Cycle |
numeric(optional): SAR cycle of the decay curve, Example: |
irr.dose |
numeric(optional): irradiation dose of the decay curve |
outfile |
character(optional): if specified, decomposed signal values will be written to a CSV file named |
transf |
logical(with default): do not use (for backward compatibility purpose) |
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 https://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=20
;
(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
.
Value
Return an invisible list containing the following elements:
message |
return 0 if fit succeeds, else 1 |
comp.sig |
a matrix containing time, signal, and fitted signal values for each component |
LMpars |
optimized parameters for the decay curve |
constant |
estimated constant component, it returns |
value |
minimized objective for the decay curve |
FOM |
figure of merit value for the decay curve in percent |
Note
Arguments curve.no
, SAR.Cycle
, and irr.dose
have nothing to do with decay curve fitting. They are used only for plotting purpose.
The model to be optimized should not be underdetermined. This means that the number of data points should exceed (or at least be equal to) the number of parameters. For a given model, this routine will return an error if any standard errors of parameters cannot be estimated by numerical difference-approximation. Function decompc
in previous versions was bundled to function decomp.
We would like to thank Professor Andrzej Bluszcz who helps us a lot during the programming of this function. Dr Jeong-Heon Choi is thanked for providing published data sets to test this routine.
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, https://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.
Balian HG, Eddy NW, 1977. Figure-of-merit (FOM), an improved criterion over the normalized chi-squared test for assessing goodness-of-fit of gamma-ray spectral peaks. Nuclear Instruments and Methods, 145(2): 389-95.
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
Signaldata; pickBINdata; fastED
Examples
### Example 1:
data(Signaldata)
decomp(Signaldata$lm,ncomp=3,typ="lm",
control.args=list(maxiter=10))
### Example 2 (not run):
# data(BIN)
# obj_pickBIN <- pickBINdata(BIN, Position=2, Run=2, view=TRUE,
# LType="OSL", force.matrix=TRUE)
# decomp(obj_pickBIN$BINdata[[1]], ncomp=2, log="xy")