Learn R Programming

numOSL (version 2.8)

decomp: 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)

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 0 if constant=FALSE

value

minimized objective for the decay curve

FOM

figure of merit value for the decay curve in percent

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"
values of the decay curves, i.e., delay.off[1]=Delay,delay.off[2]=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., typ="cw" or typ="lm")

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: SAR.Cycle="R1"

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 "outfile" and saved to the current work directory

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.

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

Run this code
 ### 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")

Run the code above in your browser using DataLab