Calculates the CW-OSL signal component intensities for each CW-OSL measurement under the requirement that the decay rates are already given. The signal decomposition process uses an analytical approach described in detail in Mittelstrass (2019) and Mittelstrass et al. (in preparation). This function processes Luminescence::RLum.Analysis data sets created within the Luminescence::Luminescence-package (Kreutzer et al. 2012).
The workflow of this function is as follows:
optimise_OSLintervals: Approximates the optimal integration intervals. Uses the global average curve as time axis template. If none global average curve is given, one is automatically created using sum_OSLcurves.
decompose_OSLcurve: Calculates component intensities for all record_type measurements.
Uses the "det" algorithm if a background correction was performed with RLum.OSL_correction or the
"det+nls" algorithm if no background correction was performed. For error estimation, the "empiric" approach is used.
Creates a html report to summarize the results (optional).
Data sets must be formatted as Luminescence::RLum.Analysis objects and should have been processed with RLum.OSL_correction and RLum.OSL_global_fitting beforehand. Output objects are also Luminescence::RLum.Analysis objects and are meant for equivalent dose determination with Luminescence::analyse_SAR.CWOSL.
If report = TRUE, a html report of the results is rendered by the rmarkdown::rmarkdown-package
and saved in the working directory, which is usually the directory of the data file.
This report can be displayed, shared and published online without any requirements regarding
the operation system or installed software. However, an internet connection is needed to display
the MathJax encoded equations and special characters.
The Rmarkdown source code of the report can be found with the following command:
system.file("rmd", "report_Step2.Rmd", package = "OSLdecomposition")
RLum.OSL_decomposition(
object,
record_type = "OSL",
K = NA,
decay_rates = NULL,
report = FALSE,
report_dir = NULL,
image_format = "pdf",
open_report = TRUE,
rmd_path = NULL,
verbose = TRUE
)The input object, a list of Luminescence::RLum.Analysis objects is returned but with
a new list element object[["DECOMPOSITION"]], containing:
$decompositon.input data.frame: Set of input components. Relevant is just the column $lambda
$results data.frame: Overview table of decomposition
$parameters list: Input and algorithm parameters
$dominant.component character: That component which has the most share in the initial signals
The Luminescence::RLum.Data.Curve attribute @info of each CW-OSL record contains the
new entry $COMPONENTS with the curve-individual signal component parameters.
It can be read for example by:
object[[i]]@records[[j]]@info[["COMPONENTS"]]
Luminescence::RLum.Analysis or list of Luminescence::RLum.Analysis
(required):
Data set of one or multiple CW-OSL measured aliquots. The data set must either
contain a list element $FITTING or the parameter decay_rates must
be defined.
character (with default):
Type of records, selected by the Luminescence::RLum.Analysis attribute @recordType.
Common are: "OSL","SGOSL" or "IRSL".
numeric (with default):
Number of components. Selects the according result table in the $FITTING list item of the data set object.
numeric vector or data.frame (optional):
User-defined component decay rates. If this parameter is defined, the parameter K will ignored.
If the input object is a data.frame, then the decay rates must be stored in the column $lambda.
logical (with default):
Creates a html report, saves it in the report_dir directory.
The report contains the results and detailed information on the data processing.
character (optional):
Path of output directory if report = TRUE. If report_dir = NULL (default),
a temporary folder is used which is deleted when the R session is closed.
File paths are also allowed as parameter, then a new directory named after the OSL data file
will be created.
character (with default):
Image format of the automatically saved graphs if report = TRUE and report_dir is set.
Allowed are .pdf, .eps, .svg (vector graphics), .jpg, .png, .bmp (pixel graphics)
and more, see ggplot2::ggsave. The images are saved in the report_dir subfolder /report_figures.
Set image_format = NULL if no images shall be saved.
logical (with default):
If set to TRUE a browser window displaying the report will be opened automatically.
character (with default): For advanced users: File path to the rmarkdown::rmarkdown-package source code file of the report. This allows to execute a manipulated version of the report.
logical (with default): Enables console text output.
2026-03-11, DM:
Returns now some basic statistics about contribution of the components to the initial CW-OSL signal, see console output and object$DECOMPOSITION$initial.signal.stats
The component which dominates the initial signal on average (highest median) is now stated as Dominating Component in console output and object$DECOMPOSITION$dominating.component
Function no longer crashes if record data contains no @info$IRR_TIME parameters.
Default number of components 'K' if 'K' is not set is no longer 3. Instead 'K = length(decay_rates)' if 'decay_rates' are set, else 'K = $FITTING$K.selected'.
Made pattern matching of 'record_type' with @recordType slot ready for Luminescence package 1.2
Improved input data checks
Existing RLum.OSL decomposition results are now removed with each execution of this function
Dirk Mittelstrass, dirk.mittelstrass@luminescence.de
Please cite this package, including its version number. Enter the command citation("OSLdecomposition") to generate the correct reference.
Kreutzer, S., Schmidt, C., Fuchs, M.C., Dietze, M., Fischer, M., Fuchs, M., 2012. Introducing an R package for luminescence dating analysis. Ancient TL, 30 (1), 1-8.
Mittelstraß, D., 2019. Decomposition of weak optically stimulated luminescence signals and its application in retrospective dosimetry at quartz (Master thesis). TU Dresden, Dresden.
RLum.OSL_global_fitting, decompose_OSLcurve, optimise_OSLintervals, Luminescence::analyse_SAR.CWOSL
#'FB_10Gy' is a dose recovery test with the Fontainebleau quartz
# measured in a lexsyg research with green LED stimulation
data_path <- system.file("examples", "FB_10Gy_SAR.bin", package = "OSLdecomposition")
data_set <- Luminescence::read_BIN2R(data_path, fastForward = TRUE)
# Separate components
data_set_decomposed <- RLum.OSL_decomposition(
data_set, decay_rates = c(0.8, 0.05))
Run the code above in your browser using DataLab