View source: R/analyse_SAR.CWOSL.R
| analyse_SAR.CWOSL | R Documentation |
The function performs a SAR CW-OSL analysis on an RLum.Analysis object, including growth curve fitting.
analyse_SAR.CWOSL(
object,
signal_integral = NULL,
background_integral = NULL,
signal_integral_Tx = NULL,
background_integral_Tx = NULL,
integral_input = c("channel", "measurement"),
OSL.component = NULL,
rejection.criteria = list(),
dose.points = NULL,
dose.points.test = NULL,
dose_rate_source = NULL,
trim_channels = FALSE,
mtext.outer = "",
plot = TRUE,
plot_onePage = FALSE,
plot_singlePanels = FALSE,
onlyLxTxTable = FALSE,
method_control = list(),
...
)
object |
RLum.Analysis (required):
input object containing data for analysis, alternatively a list of
RLum.Analysis objects can be provided. The object
should only contain curves considered part of the SAR protocol (see
Details). When |
signal_integral |
integer (required):
vector of channels for the signal integral. It can be a list of integers,
if |
background_integral |
integer (required):
vector of channels for the background integral. It can be a list of
integers, if |
signal_integral_Tx |
integer (optional):
vector of channels for the signal integral for the |
background_integral_Tx |
integer (optional):
vector of channels for the background integral for the |
integral_input |
character (with default):
input type for |
OSL.component |
character or integer (optional):
single index or a character defining the signal component to be evaluated.
It requires that the object was processed by |
rejection.criteria |
list (with default):
provide a named list and set rejection criteria in percentage. It can
be a nested list, if Allowed options:
Example: All numerical criteria can be set to If |
dose.points |
numeric (optional):
a numeric vector containing the dose point values. Using this argument
overwrites dose point values extracted from other data. Can be a list of
numeric vectors, if |
dose.points.test |
numeric (optional):
a numeric vector containing the test dose in the same units as |
dose_rate_source |
numeric (optional):
numerical value for the source dose rate, typically in Gy/s. If set, the
x-axis default for the dose-response curve changes to |
trim_channels |
logical (with default):
trim channels per record category to the lowest number of channels in the
category by using trim_RLum.Data. Applies only to |
mtext.outer |
character (optional):
option to provide an outer margin |
plot |
logical (with default): enable/disable the plot output. |
plot_onePage |
logical (with default): enable/disable plotting all subplots on one page. |
plot_singlePanels |
logical (with default) or numeric (optional):
control the plotting of subplots in single windows (one subplot per page).
Using a numeric vector allows to select the subplots individually;
setting it to |
onlyLxTxTable |
logical (with default):
If |
method_control |
list (optional):
options to control the function behaviour. Currently only the
'auto_curve_removal' (logical) option is supported, which controls whether
curves with |
... |
further arguments that will be passed to
fit_DoseResponseCurve, plot_DoseResponseCurve
or calc_OSLLxTxRatio (the latter only supports
Note: |
The function performs an analysis for standard SAR protocol measurements
introduced by Murray and Wintle (2000) with CW-OSL curves. For the
calculation of the Lx/Tx value the function calc_OSLLxTxRatio is
used. To change the way the Lx/Tx error is calculated use arguments
background.count.distribution and sigmab, which will be passed to
calc_OSLLxTxRatio.
What is part of a SAR sequence?
The function is rather picky when it comes to accepted curve input
(OSL, IRSL,...) and structure. A SAR sequence is basically a set of
L_{x}/T_{x} curves. Hence, every second curve is considered a
shine-down curve related to the test dose. It also means that the number of
curves for L_{x} has to be equal to the number of T_{x} curves,
and that hot-bleach curves do not belong in a SAR sequence; at least
not for the analysis. Other curves allowed and processed are preheat curves,
or preheat curves measured as TL, and irradiation curves. The latter
indicates the duration of the irradiation, the dose and test dose points,
e.g., as part of XSYG files.
Argument object is of type list
If the argument object is of type list containing only
RLum.Analysis objects, the function re-calls itself on each element
in the list. This is useful for analysing an entire measurement without
writing separate for-loops. To gain full control of the parameters (e.g., dose.points) for
every aliquot (corresponding to one RLum.Analysis object in the list), in
this case the arguments can be provided as list. This list should
be of similar length as the list provided with the argument object,
otherwise the function will create an own list of the requested length.
Function output will be just one single RLum.Results object.
Please be careful when using this option. While it may allow for a fast and efficient data analysis, the function may break with an unclear error message if the input data is misspecified.
Working with IRSL data
The function was originally designed to work just for 'OSL' curves, following the principles of the SAR protocol. An IRSL measurement protocol may follow this procedure, e.g., post-IR IRSL protocol (Thomsen et al., 2008). Therefore this function has been enhanced to work with IRSL data, however, the function is only capable of analysing curves that follow the SAR protocol structure, i.e., to analyse a post-IR IRSL protocol, curve data have to be pre-selected by the user to fit the standards of the SAR protocol, i.e., Lx,Tx,Lx,Tx and so on.
Example: Imagine the measurement contains pIRIR50 and pIRIR225 IRSL
curves. Only one curve type can be analysed at the same time: either the
pIRIR50 curves or the pIRIR225 curves.
Supported rejection criteria
[recycling.ratio]: calculated for every repeated regeneration dose point.
[recuperation.rate]: recuperation rate calculated by comparing the
Lx/Tx values of the zero regeneration point with the Ln/Tn value (the
Lx/Tx ratio of the natural signal). For methodological background see
Aitken and Smith (1988). As a variant, recuperation_reference can be
specified to select another dose point as reference instead of Ln/Tn
(e.g. "R1"; "Rmax" selects the point with highest dose as reference).
[testdose.error]: set the allowed error for the test dose, which by
default should not exceed 10%. The test dose error is calculated as
Tx_net.error/Tx_net. The calculation of the T_{n} error is detailed
in calc_OSLLxTxRatio.
[palaeodose.error]: set the allowed error for the De value, which by
default should not exceed 10%.
[sn.ratio]: set the allowed signal/noise ratio, which by default should
be at least 50. By default it uses the value from the natural curve, but
this can be changed by specifying the sn_reference option.
By default, the computed values are compared directly to the corresponding
thresholds to establish their result status ("OK" or "FAILED"). By setting
the option consider.uncertainties = TRUE in the rejection.criteria
list, quantified uncertainties are considered in the computation of the
test value before comparing it to the threshold(currently supported
only for recycling.ratio, recuperation.rate and exceed.max.regpoint).
This reduces tests being marked as "FAILED" when the deviation from the
threshold is smaller than the uncertainty margin.
Irradiation times
The function makes two attempts to extract irradiation data (dose points)
automatically from the input object, if the argument dose.points is not
set (aka set to NULL).
It searches in every curve for an info object called IRR_TIME. If this
is found, any value set there is taken as dose point.
If the object contains curves of type irradiation, the function tries
to use this information to assign these values to the curves. However, the
function does not overwrite values preset in IRR_TIME.
A plot (optional) and an RLum.Results object is returned containing the following elements:
data |
data.frame containing De-values, De-error and further parameters |
LnLxTnTx.values |
data.frame of all calculated Lx/Tx values including signal, background counts and the dose points |
rejection.criteria |
data.frame with values that might by used as rejection criteria.
|
Formula |
formula formula that have been used for the growth curve fitting |
.plot.data |
List used internally for plotting. |
The output should be accessed using the function get_RLum.
The function currently supports only 'OSL', 'IRSL' and 'POSL' data!
1.0.1
Kreutzer, S., Colombo, M., 2026. analyse_SAR.CWOSL(): Analyse SAR CW-OSL Measurements. Function version 1.0.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., de Boer, A., Bluszcz, A., 2026. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.3.1. https://r-lum.github.io/Luminescence/
Sebastian Kreutzer, F2.1 Geophysical Parametrisation/Regionalisation, LIAG - Institute for Applied Geophysics (Germany)
Marco Colombo, Institute of Geography, Heidelberg University (Germany)
, RLum Developer Team
Aitken, M.J. and Smith, B.W., 1988. Optical dating: recuperation after bleaching. Quaternary Science Reviews 7, 387-393.
Duller, G., 2003. Distinguishing quartz and feldspar in single grain luminescence measurements. Radiation Measurements 37 (2), 161-165.
Murray, A.S. and Wintle, A.G., 2000. Luminescence dating of quartz using an improved single-aliquot regenerative-dose protocol. Radiation Measurements 32, 57-73.
Thomsen, K.J., Murray, A.S., Jain, M., Boetter-Jensen, L., 2008. Laboratory fading rates of various luminescence signals from feldspar-rich sediment extracts. Radiation Measurements 43, 1474-1486. doi:10.1016/j.radmeas.2008.06.002
Bluszcz, A., Adamiec, G., Herr, A., 2015. Estimation of equivalent dose and its uncertainty in the OSL SAR protocol when count numbers do not follow a Poisson distribution. Radiation Measurements 81, 46-54. doi:10.1016/j.radmeas.2015.01.004
calc_OSLLxTxRatio, fit_DoseResponseCurve, plot_DoseResponseCurve, RLum.Analysis, RLum.Results
##load data
##ExampleData.BINfileData contains two BINfileData objects
##CWOSL.SAR.Data and TL.SAR.Data
data(ExampleData.BINfileData, envir = environment())
##transform the values from the first position in a RLum.Analysis object
object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1)
##perform SAR analysis and set rejection criteria
results <- analyse_SAR.CWOSL(
object = object,
signal_integral = 1:2,
background_integral = 900:1000,
log = "x",
fit.method = "SSE",
plot_onePage = TRUE,
rejection.criteria = list(
recycling.ratio = 10,
recuperation.rate = 10,
testdose.error = 10,
palaeodose.error = 10,
recuperation_reference = "Natural",
sn.ratio = 50,
sn_reference = "Natural",
exceed.max.regpoint = TRUE)
)
##show De results
get_RLum(results)
##show LnTnLxTx table
get_RLum(results, data.object = "LnLxTnTx.table")
## Run example with special case for
## the OTORX fit
## Not run:
results <- analyse_SAR.CWOSL(
object = object,
signal_integral = 1:2,
background_integral = 900:1000,
dose.points.test = 15,
n.MC = 10,
fit.method = "OTORX")
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.