Learn R Programming

OSLdecomposition (version 1.2)

RLum.OSL_global_fitting: Identify CW-OSL signal components in RLum.Analysis data sets

Description

First, all CW-OSL records are combined to one global average CW-OSL curve, then the multi-exponential fitting approach of Bluszcz and Adamiec (2006) is applied. 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:

  1. sum_OSLcurves: Combine all measurements of type record_type to one global average curve.

  2. fit_OSLcurve: Identify OSL components by a multi-exponential fitting.

  3. Create 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 beforehand. Output objects are also Luminescence::RLum.Analysis objects and are meant for further analysis with RLum.OSL_decomposition.

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 to 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_Step1.Rmd", package = "OSLdecomposition")

Usage

RLum.OSL_global_fitting(
  object,
  record_type = "OSL",
  K_maximum = 3,
  F_threshold = 150,
  stimulation_intensity = NA,
  stimulation_wavelength = 470,
  report = FALSE,
  report_dir = NULL,
  image_format = "pdf",
  open_report = TRUE,
  rmd_path = NULL,
  verbose = TRUE
)

Value

The input object, a list of Luminescence::RLum.Analysis objects is returned but with a new list element object[["FITTING"]], containing:

  • $decay.rates numeric vector: Decay rates of F-test recommendation or last successful fitting.

  • $K.selected numeric: Number of components of F-test recommendation or last successful fitting.

  • $F.test data.frame: F-test table.

  • $F.test.print data.frame: F-test table but formatted for console output and display with knitr::kable.

  • $info.text list: Short process log.

  • $component.tables list of data.frames: Signal component tables for all curve models.

  • $curve list: Global average curve created from all record_type curves in the data set.

  • $components data.frame: Signal component table of F-test recommendation or last successful fitting.

  • $fit.results list: Returned fitting objects of DEoptim::DEoptim and minpack.lm::nlsLM for all curve models.

  • $plot.data data.frame: Model overview table for photo-ionisation cross-section plotting with plot_PhotoCrosssections.

  • $parameters list: Input and algorithm parameters.

Arguments

object

Luminescence::RLum.Analysis or list of Luminescence::RLum.Analysis (required): Data set of one or multiple CW-OSL measured aliquots.

record_type

character (with default): Type of records, selected by the Luminescence::RLum.Analysis attribute @recordType. Common are: "OSL","SGOSL" or "IRSL".

K_maximum

numeric (with default): Maximum number of components K, see fit_OSLcurve.

F_threshold

numeric (with default): Fitting stop criterion, see fit_OSLcurve.

stimulation_intensity

numeric (with default): Intensity of optical stimulation in mW / cm². Used to calculate photo-ionisation cross-sections, see fit_OSLcurve.

stimulation_wavelength

numeric (with default): Wavelength of optical stimulation in nm. Used to calculate photo-ionisation cross-sections, see fit_OSLcurve.

report

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.

report_dir

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.

image_format

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.

open_report

logical (with default): If set to TRUE a browser window displaying the report will be opened automatically.

rmd_path

character (with default): For advanced users: File path to the rmarkdown::rmarkdown-package source code file of the report. This allows to execute manipulated versions of the report.

verbose

logical (with default): Enables console text output.

Last updates

2026-03-02, DM:

  • Changed default 'K_maximum 'to 3 and 'stimulation_intensity' to NA

  • Made pattern matching of 'record_type' with '@recordType' slot ready for Luminescence package 1.2

  • Improved input data checks

  • Existing RLum.OSL fitting and decomposition results are now removed with each execution of this function

Author

Dirk Mittelstrass, dirk.mittelstrass@luminescence.de

Please cite this package, including its version number. Enter the command citation("OSLdecomposition") to generate the correct reference.

References

Bluszcz, A., Adamiec, G., 2006. Application of differential evolution to fitting OSL decay curves. Radiation Measurements 41, 886–891.

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.

See Also

RLum.OSL_correction, RLum.OSL_decomposition, sum_OSLcurves, fit_OSLcurve

Examples

Run this code

# '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)

# Check data set and perform background correction
data_set_corrected <- RLum.OSL_correction(data_set,
 background = 11,
 remove_light_off = FALSE)

# Identify components
data_set_fitted <- RLum.OSL_global_fitting(
 data_set_corrected,
 K_maximum = 2,
 stimulation_intensity = 50,
 stimulation_wavelength = 530)


Run the code above in your browser using DataLab