Comprehensive Luminescence Dating Data Analysis
Overview
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.
See also the [write-up for Luminescence v1.3.1 on the REPLAY
website](https://replay.geog.uni-heidelberg.de/post/2026/09/luminescence-release-1.3.1/).
Bugfixes and changes
- Support for the
na.rmargument has been removed from the following functions as it was not working: plot_AbanicoPlot()plot_Histogram()plot_KDE()plot_RadialPlot()plot_ViolinPlot()
If set, the argument will be silently ignored (#1692).
- Support for the
pt.cexparameter to control the size of points independently ofcexhas been added to the following functions (#1720):
Show all changes in 1.3.1Hide the rest of the changes in 1.3.1
analyse_Al2O3C_CrossTalk()analyse_Al2O3C_ITC()analyse_FadingMeasurement()analyse_IRSAR.RF()plot_AbanicoPlot()plot_DoseResponseCurve()plot_DRCSummary()plot_DRTResults()plot_Histogram()plot_KDE()plot_RadialPlot()- We are in the process of streamlining the set of S3 methods that we export. This will not bring any loss of functionality, but will reduce some redundancy in the internal code. We don’t think that there are active users of these specific functions and, in most cases, these are of interest only to package developers. Therefore, the following S3 methods are deprecated and will be removed in v1.4.0 (#1694). | Deprecated | Replacement | |--------------------------------|-------------------| |
as.data.frame.RLum.Data.*|as.data.frame()| |as.list.RLum.*|as.list()| |as.matrix.RLum.Data.*|as.matrix()| |dim.RLum.Data.*|dim()| |hist.RLum.*|hist()| |length_RLum,length.RLum.*|length()| |merge_RLum.*,merge.RLum.*|merge_RLum()| |names_RLum,names.RLum.*|names()| |plot.RLum.*|plot()| |summary.RLum.Data.*|summary()| - The Monte Carlo error in
fit_DoseResponseCurve()was slightly overestimated when any MC model failed to fit. As a way to establish whether an analysis run withLuminescence <= 1.3.0is affected by this issue, you can count the number of failed MC runs in theresultsobject by runningsum(is.na(results$De.MC)). A value greater than 0 means that the error estimation is affected; quantifying by how much is not possible without rerunning the analysis with v1.3.1, but the size of the effect grows with the proportion of failed runs (sum(is.na(results$De.MC)) / length(results$De.MC)), and in non-pathological cases it should be very small (#1730).
analyse_Al2O3C_Measurement()
- The function now better validates the
dose_pointsargument so that it no longer generates an incorrect data frame if the argument is provided as a list when the main input is a non-list object (#1640).
analyse_IRSAR.RF()
- The colour of the regeneration points was changed to black to guarantee greater contrast against the natural points. This should improve readability for people with red-green colour blindness and for black-and-white printing. Moreover, point colours can now be freely customised via the new
col_natandcol_regparameters (#1654; thanks to @DirkMittelstrass for reporting). - The plot is no longer constrained to keep a fixed aspect ratio, so that it can occupy more of the available space (#1654; thanks to @DirkMittelstrass for reporting).
- The default x-axis label was changed from
"Time"to"Irradiation time", (#1654; thanks to @DirkMittelstrass for reporting). - The y-axis no longer enforces the labels to be in scientific format. The previous behaviour can be restored by setting
yaxis_scientific = TRUE(#1665). - The
coresargument no longer accepts"auto"as valid input: the same functionality (using all but two of the available cores) can now be achieved by settingcores = NULL(#1668). - A warning message shown in case of failure of the test parameters has been improved to avoid reporting a spurious
NA(#1715). - The function used to crash during plotting if any the extremes of the confidence interval built around the De value was computed as
NaN. This was a very old (and presumably extremely rare) crash that affected onlymethod = "FIT"(#1744).
analyse_pIRIRSequence()
- The function no longer crashes when presented with an empty
RLum.Analysisobject (#1725; thanks to Annette Kadereit for reporting). - The check on the window size now occurs also if
plot_singlePanels = TRUE. This avoids hard failures on Linux when bothplot_singlePanelsandplot_onePageare set toTRUEand the window size is too small; on Windows, it seems that instead of a hard error, the function would silently stop working with those settings (#1734; thanks to Annette Kadereit for reporting).
analyse_SAR.CWOSL()
- The ordering of columns in the
$datafield of the result object was different from expected whenfit_DoseResponseCurve()returnedNULL, which meant that merging the results from multiple aliquots would fail if any such result was present. This was a regression introduced in v1.1.1 (#1623). - The
POSandGRAINcolumns in the$datafield of the result object are now correctly populated also for XSYG files, instead of being set toNA. This was a regression introduced in v1.1.2 (#1625). - It is now possible to set
recuperation_reference = "Rmax"to select the point with highest dose as reference in the calculation of the recuperation rate (#1740; thanks to Annette Kadereit for reporting).
analyse_SAR.NCF()
- The
objectargument is now better validated (#1657, 1732).
analyse_SAR.TL()
- The function no longer crashes if the input object contains no TL curves (#1732).
calc_CentralDose()
- The function no longer crashes when the De values are identical and
log = FALSE(#1628). - The removal of missing values now happens only after restricting the input to the first two columns, so
NAvalues in unrelated columns no longer affect the operation of the function (#1653; thanks to @DirkMittelstrass for reporting).
calc_FastRatio()
- Some code that adjusted the
Ch_L3setting has been removed because it had become largely superfluous since v0.9.25. Users should see no impact, except in the unlikely case when both elements ofCh_L3are set to the last channel. In that case, the computation will now respect the user input instead of automatically moving the start ofCh_L3back by 5 channels. That behaviour was an undocumented leftover from when user inputs were not validated (#1682). - The number of background channels was counted as one fewer than the number used, causing the computed errors to be marginally larger than expected. This error has been present since 2016, and its impact on the results produced depends on the number of background channels used, with the inflation of errors decreasing as the size of the background region grows (#1684).
calc_FuchsLang2001()
- The function now returns an error if
startDeValueexceeds the number of rows in the input data set, instead of returning onlyNAs in the result table (#1645).
calc_Huntley2006()
- The
coresargument now can be set toNULLto use all but two of the available cores (#1668). - The function no longer crashes when plotting in extrapolation mode if both
De.measuredandDe.measured.errorare 0 (#1672).
calc_MaxDose()
- The function is now documented alongside
calc_MinDose()(#1674).
calc_MinDose()
- The removal of missing values now happens only after restricting the input to the first two columns, so
NAvalues in unrelated columns no longer affect the operation of the function (#1659). - The
multicoreargument has been deprecated and is no longer functional. Its functionality has been replaced by thecoresargument, which can be set to either a numeric value or toNULLto use all but two of the available cores (#1668). - The function now validates that the initial parameter values supplied via
init.valuesare strictly positive, as non-positive values may cause unrecoverable crashes during fitting (#1670). - It is now possible to disable the second-level bootstrap entirely by setting
bs.N = 0. This setting corresponds to a classic bootstrap, as opposed to the recycled bootstrap that would otherwise be run by default (#1525; thanks to @MarijnvanderMeij for reporting).
calc_SourceDoseRate()
- Source type
"Am-241"was misspelled in the documentation and in the function as"Am-214"and has now been corrected. The latter form is no longer accepted (#1630).
calc_Statistics()
- The function incorrectly ignored the error column whenever only some error values were exactly 0, which led to miscalculated weighted statistics. This was due to a regression introduced in v1.1.2; weighted mean, weighted median and the corresponding standard error and standard deviation are now set to
NAin such cases, restoring the original behaviour (#1686).
fit_DoseResponseCurve()
- If the (optional)
TnTxcolumn contains onlyNAs, the column is ignored instead of causing the entire dataset to be dropped (#1632). - The number of parameters for
fit.method = "DSE"and"QDR"has been corrected to 5 and 3, respectively. For"DSE"this was a regression introduced in v1.3.0, when a newDiparameter was added to the"DSE"method without updating its parameter count; for"QDR", the behaviour regressed in v1.0.0, whenpredict()was introduced to replace the manual evaluation of the model fit. In both cases, this has no user-visible effect other than changing the number of dose points under which the function switches to using the “LIN” method (#1634, \#1636). - When the root finding step failed during the Monte Carlo simulation for
fit.method = "OTORX"andmode = "extrapolation", the function incorrectly reverted to theOTORmodel before attempting that iteration again. This turned out to be a simple typo, with minimal impact (#1727). - The Monte Carlo error estimation considered spurious contributions from iterations that failed to fit. This was caused by the result vector being initialised to 0 instead of
NA, which resulted in a slight overestimation of errors when any MC model failed to fit (#1730).
fit_OSLLifeTimes()
- The function no longer crashes when using a list containing an empty
RLum.Analysisobject (#1732).
merge_Risoe.BINfileData()
- Argument
objectshas been renamed toobject. The older name will still work, but it generates a deprecation warning (#1697).
merge_RLum()
- Argument
objectshas been renamed toobject. The older name will still work, but it generates a deprecation warning (#1697).
merge_RLum.Analysis()
- Argument
objectshas been renamed toobject(#1697). - The function no longer crashes when using a list containing an empty
RLum.Analysisobject (#1732).
merge_RLum.Results()
- Argument
objectshas been renamed toobject(#1697).
plot_AbanicoPlot()
- The default background colour was incorrectly set to
NA, which in some very specific cases would cause some overplotting, at least on MacOS (#1649). - The interactive plotting mode (
interactive = TRUE) is more complete and renders a usable plot (#1664, \#1696). - The function no longer crashes when using a list of data frames with different column names (#1705).
- A misspecified
bwargument now reverts to the default value of"SJ"recommended by base R, instead of the historical (and somewhat deprecated) setting of"nrd0"(#1708). - Datasets containing only one non-missing observation are no longer removed and are now plotted, but no density curve is drawn for them unless a numeric value is provided for the
bw(bandwidth) argument (#1707; thanks to Annette Kadereit for reporting). - Plot colours are now respected when one of the input data frames is automatically removed because it contains no non-missing observations (#1707; thanks to Annette Kadereit for reporting).
- The logic for the positioning of the boxplot has been slightly revised to avoid cases in which the boxplot was plotted over one of the axes or even completely outside of the visible area (#1713; thanks to Annette Kadereit for reporting).
plot_DetPlot()
- The
multicoreargument has been deprecated and is no longer functional. Its functionality has been replaced by thecoresargument, which can be set to either a numeric value or toNULLto use all but two of the available cores (#1668).
plot_DoseResponseCurve()
- The size of the repeated point has been slightly increased to make it more distinguishable (#1722).
plot_KDE()
- The plot title is no longer drawn in a bold font, and the spacing between words in title and x-axis label has been refined so that the words no longer look attached (#1717).
plot_RadialPlot()
- The function no longer crashes when the error column contains
NAvalues. This was a regression introduced in v1.2.0 (#1689).
plot_RLum()
- The handling of
mtexthas been improved so that, when specified as a list, each element is dispatched (with recycling) to each object being plotted, makingmtextbehave like themainargument. This was a regression introduced in v1.2.0 (#1676).
plot_RLum.Data.Curve()
- If the
IRR_UNITfield is present in a BIN file (version 03 or 04), this is used as unit measure in the axis labels instead of seconds (#1721).
plot_RLum.Data.Spectrum()
- The setting
legend = FALSEdid not work as advertised and did not remove the legend, e.g., inplot.type = "multiple.lines"(#1702). - The argument
legend.textwas removed from the function definition but it’s still available through the...argument (#1702).
read_RF2R()
- Headers generated by the upcoming
'RLumImage'package are now supported (#1655; thanks to @DirkMittelstrass for reporting). - Header parsing is now more robust and supports quoted strings containing spaces. Malformed header values no longer cause all headers to be lost: valid values are now stored in the
infoslot, while malformed entries are silently dropped and no longer produce a message (#1742; thanks to @DirkMittelstrass for reporting).
read_XSYG2R()
- The function no longer crashes when an empty
<sequence />node is found. Such a node may be present if the reader encounters an empty position and would then automatically move on to the next.
verify_SingleGrainData()
- The message reported when
cleanup = TRUEis used is now shorter and more readable as it compresses consecutive record indices into a range (#1647).
write_R2BIN()
- Arguments
fileandversionare now better validated (#1680).
Other changes
- We have expanded the family of snapshot tests by testing the function output in more cases, going from 12 to 85 output snapshots (#1638).
- Functions
plot_AbanicoPlot()andplot_RLum.Data.Curve()gained a hidden.shinyflag which can be set in combination withinteractive = TRUEto return theplotlyobject instead of printing it. This was added to improve the interactive functionality within theRLumShinypackage.
------------------------------------------------------------------------
From NEWS.md in the release
Install
Health
- OK13 OK2026-10-17
- ERROR12 OK, 1 ERROR2026-10-15
- OK13 OK2026-09-08
- ERROR12 OK, 1 ERROR2026-09-07
- OK13 OK2026-08-05
Show 9 earlier changesHide 9 earlier changes
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-07-25
- NOTE12 OK, 1 NOTE2026-07-11
- OK12 OK2026-04-25
- NOTE11 OK, 3 NOTE2026-04-22
- ERROR11 OK, 2 NOTE, 1 ERROR2026-04-16
- NOTE11 OK, 3 NOTE2026-03-30
- ERROR10 OK, 3 NOTE, 1 ERROR2026-03-28
- NOTE11 OK, 3 NOTE2026-03-10
Documentation
- Help pages
- 170 (17 internal)includes a package overview page
- Examples that run
- 95%150 run in a plain check · 4 never run · 4 hold no code
- Exported functions with examples
- 95%
- Documented parameters
- 99%
- Return-value docs
- 93%
- Help pages citing references
- 54%
Downloads
Repository
- PRs merged (all time)
- 99%
- Median days to close, 50 most recently updated closed issues
- 0
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
Commits over time
14 development-tooling and community-health practices detected across 7 families in the upstream repository
Checks run against github.com/r-lum/luminescence on 2026-10-11.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-09-18 · The repository has a site deploy workflow
pkgdown site last built 2026-09-18
Show all practicesHide 3 practices
Dependencies
Installing Luminescence adds 25 packages (20 with compiled code, 20 MB of source tarballs). Heaviest: data.table 5.7 MB, mclust 2.7 MB, Rcpp 1.8 MB.
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- 1.3.1Latest
- 1.3.0
- RR 4.6.0 released · 2026-04-24
- 1.2.12026-03-25 · diff ↗
- 1.2.02026-03-12 · diff ↗ ·
removed 11 exports
github_branches, github_commits, github_issues, install_DevelopmentVersion, is.RLum, is.RLum.Analysis, is.RLum.Data, is.RLum.Data.Curve, is.RLum.Data.Image, is.RLum.Data.Spectrum, is.RLum.Resultsadded 2 exports
normalise_RLum, read_BINXLOG2R - 1.1.2
- 1.1.12025-09-11 · diff ↗ ·
removed 4 exports
Analyse_SAR.OSLdata, PSL2Risoe.BINfileData, Second2Gray, get_Risoe.BINfileDataadded 1 export
correct_PMTLinearity - 1.1.02025-06-12 · diff ↗ ·
removed 1 export
get_Quoteadded 3 exports
.as.latex.table, remove_RLum, remove_SignalBackground - RR 4.5.0 released · 2025-04-11
- 1.0.12025-03-07 · diff ↗
- 1.0.02025-02-21 · diff ↗ ·
added 20 exports
add_metadata<-, rename_metadata<-, replace_metadata<-, apply_Crosstalk, calc_EED_Model, calc_MoransI, convert_CW2pHMi, convert_CW2pLM, convert_CW2pLMi, convert_CW2pPMi, convert_PSL2Risoe.BINfileData, convert_Second2Gray, fit_DoseResponseCurve, melt_RLum, merge_RLum.Data.Spectrum, plot_DoseResponseCurve, plot_MoranScatterplot, plot_SingleGrainDisc, sort_RLum, view - 0.9.26
- 0.9.252024-09-13 · diff ↗ ·
removed 2 exports
bin.RLum.Data.Curve, bin.RLum.Data.Spectrumadded 2 exports
bin, read_HeliosOSL2R - 0.9.24
- RR 4.4.0 released · 2024-04-24
- 0.9.232023-11-03 · diff ↗
Show 68 earlier eventsHide 68 earlier events
- 0.9.22
- RR 4.3.0 released · 2023-04-21
- 0.9.212023-02-03 · diff ↗
- 0.9.202022-07-17 · diff ↗
- RR 4.2.0 released · 2022-04-22
- 0.9.19
- 0.9.18
- 0.9.172022-01-03 · diff ↗
- 0.9.16
- 0.9.15
- 0.9.142021-07-21 · diff ↗
- 0.9.13
- RR 4.1.0 released · 2021-05-18
- 0.9.11
- 0.9.102020-12-10 · diff ↗
- 0.9.9
- 0.9.82020-11-16 · diff ↗ ·
added 4 exports
calc_CobbleDoseRate, convert_Concentration2DoseRate, plot_ROI, read_RF2R - RR 4.0.0 released · 2020-04-24
- 0.9.72020-01-09 · diff ↗
- 0.9.62019-12-04 · diff ↗
- 0.9.52019-09-20 · diff ↗
- 0.9.42019-09-20 · diff ↗
- 0.9.32019-07-31 · diff ↗
- 0.9.2
- RR 3.6.0 released · 2019-04-26
- 0.9.0.1102019-04-21 · diff ↗ ·
added 6 exports
bin.RLum.Data.Spectrum, convert_Wavelength2Energy, fit_OSLLifeTimes, fit_ThermalQuenching, plot_DRCSummary, scale_GammaDose - 0.8.62018-10-05 · diff ↗
- 0.8.52018-06-08 · diff ↗
- RR 3.5.0 released · 2018-04-23
- 0.8.42018-04-20 · diff ↗
- 0.8.32018-04-20 · diff ↗
- 0.8.22018-03-10 · diff ↗ ·
added 9 exports
analyse_Al2O3C_CrossTalk, analyse_Al2O3C_ITC, analyse_Al2O3C_Measurement, calc_Huntley2006, calc_Lamothe2003, calc_WodaFuchs2008, convert_Activity2Concentration, convert_RLum2Risoe.BINfileData, fit_SurfaceExposure - 0.7.52017-06-30 · diff ↗
- RR 3.4.0 released · 2017-04-21
- 0.7.42017-03-31 · diff ↗
- 0.7.32017-02-08 · diff ↗
- 0.7.12017-02-07 · diff ↗
- 0.7.02017-02-06 · diff ↗ ·
added 16 exports
PSL2Risoe.BINfileData, analyse_FadingMeasurement, analyse_portableOSL, calc_AverageDose, calc_Kars2008, convert_BIN2CSV, convert_Daybreak2CSV, convert_PSL2CSV, convert_XSYG2CSV, github_branches, github_commits, github_issues, install_DevelopmentVersion, read_PSL2R, smooth_RLum, write_RLum2CSV - 0.6.42016-09-09 · diff ↗
- 0.6.22016-09-01 · diff ↗
- 0.6.12016-07-05 · diff ↗
- 0.6.02016-05-30 · diff ↗ ·
removed 16 exports
Risoe.BINfileData2RLum.Data.Curve, get_RLum.Analysis, get_RLum.Data.Curve, get_RLum.Data.Image, get_RLum.Data.Spectrum, get_RLum.Results, length_RLum.Analysis, readBIN2R, readSPE2R, readXSYG2R, set_RLum.Analysis, set_RLum.Data.Curve, set_RLum.Data.Image, set_RLum.Data.Spectrum, set_RLum.Results, writeR2BINadded 18 exports
analyse_baSAR, app_RLum, bin.RLum.Data.Curve, bin_RLum.Data, calc_FastRatio, calc_ThermalLifetime, is.RLum, is.RLum.Analysis, is.RLum.Data, is.RLum.Data.Curve, is.RLum.Data.Image, is.RLum.Data.Spectrum, is.RLum.Results, model_LuminescenceSignals, plot_DetPlot, plot_FilterCombinations, report_RLum, verify_SingleGrainData - RR 3.3.0 released · 2016-05-03
- 0.5.12015-12-07 · diff ↗
- 0.5.02015-12-04 · diff ↗ ·
removed 1 export
pattern:^[[:alpha:]]+added 88 exports
Analyse_SAR.OSLdata, CW2pHMi, CW2pLM, CW2pLMi, CW2pPMi, Risoe.BINfileData2RLum.Analysis, Risoe.BINfileData2RLum.Data.Curve, Second2Gray, analyse_IRSAR.RF, analyse_SAR.CWOSL, analyse_SAR.TL, analyse_pIRIRSequence, apply_CosmicRayRemoval, apply_EfficiencyCorrection, calc_AliquotSize, calc_CentralDose, calc_CommonDose, calc_CosmicDoseRate, calc_FadingCorr, calc_FiniteMixture, calc_FuchsLang2001, calc_HomogeneityTest, calc_IEU, calc_MaxDose, calc_MinDose, calc_OSLLxTxRatio, calc_SourceDoseRate, calc_Statistics, calc_TLLxTxRatio, calc_gSGC and 58 more - 0.4.62015-09-21 · diff ↗
- 0.4.52015-08-10 · diff ↗
- 0.4.42015-05-19 · diff ↗
- 0.4.32015-04-18 · diff ↗
- RR 3.2.0 released · 2015-04-16
- 0.4.22015-03-23 · diff ↗
- 0.4.12015-01-29 · diff ↗
- 0.4.02014-12-18 · diff ↗
- 0.3.42014-06-08 · diff ↗
- 0.3.32014-04-14 · diff ↗
- RR 3.1.0 released · 2014-04-10
- 0.3.22014-01-07 · diff ↗
- 0.3.12013-12-15 · diff ↗
- 0.32013-10-01 · diff ↗
- 0.2.42013-04-28 · diff ↗
- RR 3.0.0 released · 2013-04-03
- 0.2.32013-03-29 · diff ↗
- 0.2.22013-03-05 · diff ↗
- 0.2.12013-01-25 · diff ↗
- 0.22012-12-16 · diff ↗
- 0.1.82012-08-12 · diff ↗
- 0.1.72012-05-25
- RR 2.15.0 released · 2012-03-30
Package metadata
- First published
- 2012-05-25
- Total releases
- 69 / 14 yrs
- License
- GPL-3 OSI
- Minimum R
- ≥ 4.4
- Bundled data
- 674 KB / 23 files
- Download size
- 2.4 MB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("Luminescence")The package provides a citation file that builds its entry when R runs it. Run citation() to see it.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-18, which the citation names so these numbers can be found later. More on citing and the projects behind them.