View source: R/optimise_OSLintervals.R
optimise_OSLintervals | R Documentation |
This function defines integration intervals for CW-OSL component separation with decompose_OSLcurve. The underlying iterative optimisation process aims for minimum cross-correlation between the signal components.
The precision of the component separation with decompose_OSLcurve and the impact of systematic decay rate errors on the component separation depends on the integration interval definition. This function minimises the influence of an under/over-estimated decay rate to the signal intensity calculation of other component. This is done by maximizing the denominator determinant in Cramers rule, see Mittelstraß (2019) for details. For maximisation, the iterative evolutionary algorithm of Storn and Price (1997) is used, available in R through DEoptim::DEoptim.
The inclusion of a background component is supported, see decompose_OSLcurve for details.
optimise_OSLintervals(
components,
curve = NULL,
channel.width = NA,
channel.number = NA,
t.start = 0,
t.end = NA,
background.component = FALSE,
verbose = TRUE,
parallel.computing = FALSE
)
components |
data.frame or numeric vector (required):
Table or vector containing the decay constants of the signal components.
A data.frame must contain a column |
curve |
data.frame or matrix or Luminescence::RLum.Data.Curve (optional):
OSL signal curve which serves as time axis template.
The input curve will be used to define |
channel.width |
numeric (optional):
Channel width in seconds. Necessary if |
channel.number |
numeric (optional):
Number of channels resp. data points. Necessary if |
t.start |
numeric (with default): Starting time of the first interval, per default the start of the measurement. |
t.end |
numeric (optional): End time of the last interval, per default the end of the measurement. |
background.component |
logical (with default):
If |
verbose |
logical (with default): Enables console text output. |
parallel.computing |
logical (with default): Enables the use of multiple CPU cores. This increases the execution speed significantly but may need administrator rights and/or a firewall exception. See DEoptim::DEoptim.control for further information. |
The input table components
data.frame will be returned with four additional columns:
$t.start
, $t.end
defining the time intervals and $ch.start
, $ch.end
assigning those intervals to channel indicies.
If a numeric vector is given as input, a new data.frame will be returned.
2020-08-23, DM: Replaced previous maximum searching algorithm with DEoptim::DEoptim (update may have changed analysis results)
2020-10-29, DM: Added parallel.computing
argument; enhanced roxygen documentation (minor update)
Dirk Mittelstraß, dirk.mittelstrass@luminescence.de
Please cite the package the following way:
Mittelstraß, D., Schmidt, C., Beyer, J., Heitmann, J. and Straessner, A.: R package OSLdecomposition: Automated identification and separation of quartz CW-OSL signal components, in preparation.
Mittelstraß, D., 2019. Decomposition of weak optically stimulated luminescence signals and its application in retrospective dosimetry at quartz (Master thesis). TU Dresden, Dresden.
Storn, R., Price, K., 1997. Differential Evolution – A Simple and Efficient Heuristic for global Optimization over Continuous Spaces. Journal of Global Optimization 11, 341–359.
decompose_OSLcurve, RLum.OSL_decomposition, DEoptim::DEoptim, fit_OSLcurve
A <- optimise_OSLintervals(c(2, 0.5, 0.02), channel.width = 0.1, channel.number = 200)
print(A, row.names = FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.