Comprehensive Luminescence Dating Data Analysis

A collection of various R functions for the purpose of Luminescence dating data analysis. This includes, amongst others, data import, export, application of age models, curve deconvolution, sequence analysis and plotting of equivalent dose distributions.

The R package ‘Luminescence’ by the R-Luminescence Group provides a collection of various R functions for luminescence dating data analysis.

Rdoc CRAN Downloads Downloads Downloads Downloads

Test performance

Buildstatus BuildStatus CoverageStatus

Social media and other resources

Follow us on or visit our R-Luminescence homepage.


i. Requirements

With release of version 0.4.2 part of the analyse_IRSAR.RF() function was rewritten in C++ to increase its perfomance. This inevitably introduced the requirement for the GNU Compiler Collection (gcc) when the R package ‘Luminescence’ is installed from source. Depending on your OS please download and install one of the following:

Windows (32/64bit) - ‘Rtools’ (provided by CRAN)

Mac OS X - ‘Xcode’ (provided by Apple)

For Linux users gcc often comes pre-installed in most distributions. Should gcc be not available, however, we kindly refer to the exhaustive collection of installation guides depending on the linux distribution.

ii. Install the package

Since version 0.8.0 with RStudio

Install any development versions using our RStudio add-in

The plain R way

To install the stable version from CRAN, simply run the following from an R console:


To install the latest development builds directly from GitHub, run

devtools::install_github("R-Lum/[email protected]")

To install a developer build other than ‘master’, replace the term ‘master’ in the codeline by the name of the wanted developer build.


The R luminescence project is based on and evolves from ideas, contributions and constructive criticism of its users. Help us to maintain and develop the package, to find bugs and create new functions as well as a user-friendly design. Try or write us an e-mail if anything crosses your mind or if you want your new self-written function to be to implemented. You are kindly invited to bring forward the package with us!


The package comes without any guarantee!

Please further note that this version is a development version and may change day by day. For stable branches please visit the package on CRAN ‘Luminescence’.


This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Related projects

R package dependencies


Changes in version 0.9.0 (2019-04-20)

‘Luminescence’ 0.9.X releases will be the last versions supporting R < 3.5.0.

Important R related changes (R >= 3.6.0)

The behaviour of the base R function sample() was changed / corrected (see news on for details). This function is used heavily within functions by ‘Luminescence’ (e.g., plot_GrowthCurve()). That being said, it means that old data re-analysed by ‘Luminescence’ using R versions >= 3.6.0 will not give the same results. Differences are small, however, they may significant. If you want to reproduce your data, we recommend to use one of our Docker images which include the R version from the package release date.

New functions

  • convert_Wavelength2Energy() Smooth and quick emission spectra conversion from wavelength to energy scales
  • fit_OSLLifeTimes() Fit and deconvolution of OSL lifetimes using off-time measurements, i.e. after the stimulation was switched off.
  • plot_DRCSummary() Summarise all dose-response curves from your SAR OSL analysis in one single plot.
  • scale_GammaDose() Scale the gamma dose rate considering layer-to-layer variations in soil radioactivity. Contributed by S. Riedesel and M. Autzen.
  • fit_ThermalQuenching() Provide an easy option to fit thermal quenching data and determine the activation energy.

Bugfixes and changes


  • Thanks to black magic, this function now runs also over a list of RLum.Data.Spectrum objects and and RLum.Analysis objects (also nested in a list)


  • The function produced a warning (“collapsing to unique ‘x’ values”) on R-devel; fixed.


  • If the function was used in a self-call mode (object of type list), the arguments contrary to what is written in the manual, the arguments such as signal.integral.min had not been expanded properly; no one complained, however, corrected.
  • The argument main no also supports the input list in the self-call mode.


  • The plot legend was not correct, if no dose points had been provided; fixed
  • The function returned a confusion warning; fixed.
  • If background signals are provided, now the background subtracted signal is shown automatically instead of the uncorrected curves (suggestion by Tilmann Wolpert)
  • The function now supports a list of RLum.Analysis objects as input
  • The plot settings were sufficiently reset; fixed.
  • Code polish


  • Enable support for data imported from a BIN/BINX-file
  • If the g-value is negative, now it also returns a negative g-value; before always the absolute values was taken, which was not meaningful
  • If rho was negative, the log10 value could not be calculated, this caused an unwanted warning; now suppressed
  • It showed a warning on R-devel due to changes in stats::approx(); fixed
  • Records with negative ‘time since irradiation’ are now automatically removed (thanks to input by Sébastien Huot)
  • Function is now more relaxed when odd data a provided and it is less talkative


  • The function now checks if rho’ (rhop) is a sensible non-zero positive value and, if otherwise, stops with a more meaningful error message. (Issue #74)
  • Now the function is a little bit less talkative if extreme dataset are provided as input


  • Add support for missing BINX-file version 5 (pointed out by Harrison Gray)
  • In the auto-file recognition (only a path instead of a file is provided), sometimes the found BIN/BINX-files were imported twice. The corresponding code was simplified to avoid such errors in future
  • Sometimes the time stamp is invalid since it is missing a leading 0. For BINX-files >= version 6 such timestamps now get corrected during the import


  • The function failed for R-devel importing spectrometer data (approx(..., ties = -2)); fixed.


  • The function crashed with Error in data.MC[, i] : incorrect number of dimensions under very particular circumstances (reported by Alice Versendaal). This was due to unwanted internal object conversion; fixed.


  • The wavelength to energy scale conversion was not correct. This was corrected and internally, the function now calls consistently the new function convert_Wavelength2Enegy() (the corresponding code and documentation have been updated or removed).
  • The function gained a new argument norm for normalising the data to the highest or the lowest count value.
  • The function gained a new argument bg.spectrum allow to pass a background spectrum that can be used for the subtraction
  • The function returned a warning if a single matrix was used but plot.type was already set to single; fixed.
  • Wrong settings in bg.channels crashed the function. Now it auto-corrects the wrong values.
  • Channel binning now consistently calls the internal function Luminescence:::.matrix_binning(), which is more efficient cleaner than the code used before
  • The function now longer crashes for plot.type = 'persp' if ’ = TRUE`.
  • The colour picking option was not always working; fixed.
  • Warnings are formatted more nicely.


  • The function crashed for crazy datasets; fixed
  • Cleaning-up RLum.Analysis-class objects did not worked; fixed


  • The function gained a new argument compact which is set TRUE be default, and keeps the element output as simple as possible, which is in particular helpful for RLum.Results objects
  • The function now behaves more friendly to RLum.Results objects, before the output was hard to understand.


  • The export failed if the time stamp was invalid (NA); now NA values are consistently replaced by 000000 (other values are not possible, otherwise the re-import of such file would fail) (reported by Alice Versendaal via email, 2019-03-06)

Changes in S4-objects and methods


  • The method working on list elements got a new argument class to remove unwanted RLum objects in from list of RLum objects


  • The show-method crashed under very rare circumstances if inconsistent objects had been combined; fixed.


  • Support added for bin_RLum.Data()

New example datasets

  • ExampleData.TR_OSL provides a single fast-pulsing OSL curve that can be used to test the function fit_OSLLifeTimes().


  • Package news are now provided as markdown document ( which is supported by CRAN
  • The package version numbering scheme has been modified to simplify the distinction between different developer versions. While relevant numbers for CRAN remain X.X.X, which reads ‘stable.major.minor’ version, a 4th number indicates the running package build number, e.g.,
  • New internal function Luminescence:::.matrix_binning() to get the matrix (and curve) binning consistent; so far used only by the the bin_RLum.Data() method for RLum.Data.Spectrum-class
  • Vignette S4-class object structure updated
  • Internal changes to address changes in R-devel checking logical arguments with length more than one (e.g., if( returned an error if x was not a vector of length 1)
  • src/Makevars file removed to prevent unconditional stripping in response to a recent CRAN request; in return the installation size of the package increased in size on some platforms.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.9.15 by Sebastian Kreutzer, 2 months ago

Report a bug at

Browse source code at

Authors: Sebastian Kreutzer [aut, trl, cre, dtc] , Christoph Burow [aut, trl, dtc] , Michael Dietze [aut] , Margret C. Fuchs [aut] , Christoph Schmidt [aut] , Manfred Fischer [aut, trl] , Johannes Friedrich [aut] , Norbert Mercier [aut] , Rachel K. Smedley [ctb] , Claire Christophe [ctb] , Antoine Zink [ctb] , Julie Durcan [ctb] , Georgina E. King [ctb, dtc] , Anne Philippe [aut] , Guillaume Guerin [ctb] , Svenja Riedesel [aut] , Martin Autzen [aut] , Pierre Guibert [ctb] , Dirk Mittelstrass [aut] , Harrison J. Gray [aut] , Markus Fuchs [ths]

Documentation:   PDF Manual  

GPL-3 license

Imports bbmle, data.table, DEoptim, httr, lamW, matrixStats, methods, minpack.lm, plotrix, raster, readxl, shape, parallel, XML, zoo

Depends on utils

Suggests spelling, RLumShiny, plotly, rmarkdown, rstudioapi, rjags, coda, pander, testthat, tiff, devtools, R.rsp

Linking to Rcpp, RcppArmadillo

Imported by BayLum, RLumShiny.

Depended on by RLumModel.

See at CRAN