This function models luminescence signals for quartz based on published physical models.
It is possible to simulate TL, (CW-) OSL, RF measurements in a arbitrary sequence. This
sequence is definded as a list of certain abrivations. Furthermore it is possible to
load a sequence direct from the Riso Sequence Editor.
The output is an RLum.Analysisobject and so the plots are done
by the plot_RLum.Analysis function. If a SAR sequence is simulated the plot output can be disabled and SAR analyse functions
can be used.
character (required): set model to be used. Available models are:
"Bailey2001", "Bailey2002", "Bailey2004", "Pagonis2007", "Pagonis2008"
sequence
list (required): set sequence to model as list or as *.seq file from the
Riso sequence editor. To simulate SAR measurements there is an extra option to set the sequence list (cf. details).
lab.dose_rate
numeric (with default): laboratory dose rate in XXX
Gy/s for calculating seconds into Gray in the *.seq file.
simulate_sample_history
logical (with default): FALSE (with default): simulation begins at laboratory conditions, TRUE: simulations begins at crystallization (all levels 0)
process
plot
logical (with default): Enables or disables plot output
verbose
logical (with default): Verbose mode on/off
show.structure
logical (with default): Shows the structure of the result.
Recommended to show record.id to analyse concentrations.
...
further arguments and graphical parameters passed to
plot.default. See details for further information.
This function returns an RLum.Analysis object with all TL, (LM-) OSL and RF/RL steps
in the sequence. Every entry is an RLum.Data.Curve object and can be plotted, analysed etc. with
further RLum-functions.
Function version
0.1.0
Author(s)
Johannes Friedrich, University of Bayreuth (Germany),
Sebastian Kreutzer, IRAMAT-CRP2A, Universite Bordeaux Montaigne (France)
References
Bailey, R.M., 2001. Towards a general kinetic model for optically and thermally stimulated
luminescence of quartz. Radiation Measurements 33, 17-45.
Bailey, R.M., 2002. Simulations of variability in the luminescence characteristics of natural
quartz and its implications for estimates of absorbed dose.
Radiation Protection Dosimetry 100, 33-38.
Bailey, R.M., 2004. Paper I-simulation of dose absorption in quartz over geological timescales
and it simplications for the precision and accuracy of optical dating.
Radiation Measurements 38, 299-310.
Pagonis, V., Chen, R., Wintle, A.G., 2007: Modelling thermal transfer in optically
stimulated luminescence of quartz. Journal of Physics D: Applied Physics 40, 998-1006.
Pagonis, V., Wintle, A.G., Chen, R., Wang, X.L., 2008. A theoretical model for a new dating protocol
for quartz based on thermally transferred OSL (TT-OSL).
Radiation Measurements 43, 704-708.
Soetaert, K., Cash, J., Mazzia, F., 2012. Solving differential equations in R.
Springer Science & Business Media.
See Also
plot, RLum,
read_SEQ2R
Examples
##================================================================##
## Example 1: Simulate sample history of Bailey2001
## (cf. Bailey, 2001, Fig. 1)
##================================================================##
##set sequence with the following steps
## (1) Irradiation at 20 deg. C with a dose of 10 Gy and a dose rate of 1 Gy/s
## (2) TL from 20-400 deg. C with a rate of 5 K/s
sequence <-
list(
IRR = c(20, 10, 1),
TL = c(20, 400, 5)
)
##model sequence
model.output <- model_LuminescenceSignals(
sequence = sequence,
model = "Bailey2001"
)
## Not run:
##============================================================================##
## Example 2: Simulate sequence at labour without sample history
##============================================================================##
##set sequence with the following steps
## (1) Irraditation at 20 deg. C with a dose of 100 Gy and a dose rate of 1 Gy/s
## (2) Preheat to 200 deg. C and hold for 10 s
## (3) LM-OSL at 125 deg. C. for 100 s
## (4) Cutheat at 200 dec. C.
## (5) Irraditation at 20 deg. C with a dose of 10 Gy and a dose rate of 1 Gy/s
## (6) Pause at 200 de. C. for 100 s
## (7) OSL at 125 deg. C for 100 s with 90 % optical power
## (8) Pause at 200 deg. C for 100 s
## (9) TL from 20-400 deg. C with a heat rate of 5 K/s
## (10) Radiofluorescence at 20 deg. C with a dose of 200 Gy and a dose rate of 0.01 Gy/s
sequence <-
list(
IRR = c(20, 100, 1),
PH = c(200, 10),
LM_OSL = c(125, 100),
CH = c(200),
IRR = c(20, 10, 1),
PAUSE = c(200, 100),
OSL = c(125, 100, 90),
PAUSE = c(200, 100),
TL = c(20, 400, 5),
RF = c(20, 200, 0.01)
)
# call function "model_LuminescenceSignals", set sequence = sequence,
# model = "Pagonis2008" (palaeodose = 200 Gy) and simulate_sample_history = FALSE (default),
# because the sample history is not part of the sequence
model.output <- model_LuminescenceSignals(
sequence = sequence,
model = "Pagonis2008"
)
##============================================================================##
## Example 3: Simulate SAR sequence
##============================================================================##
##set SAR sequence with the following steps
## (1) RegDose: set regenerative dose [Gy] as vector
## (2) TestDose: set test dose [Gy]
## (3) PH: set preheat temperature in deg. C
## (4) CH: Set cutheat temperature in deg. C
## (5) OSL_temp: set OSL reading temperature in deg. C
## (6) OSL_duration: set OSL reading duration in s
sequence <- list(
RegDose = c(0,10,20,50,90,0,10),
TestDose = 5,
PH = 240,
CH = 200,
OSL_temp = 125,
OSL_duration = 70)
# call function "model_LuminescenceSignals", set sequence = sequence,
# model = "Pagonis2007" (palaeodose = 20 Gy) and simulate_sample_history = FALSE (default),
# because the sample history is not part of the sequence
model.output <- model_LuminescenceSignals(
sequence = sequence,
model = "Pagonis2007",
plot = FALSE
)
# in environment is a new object "model.output" with the results of
# every step of the given sequence.
# Plots are done at OSL and TL steps and the growth curve
# call "analyse_SAR.CWOSL" from RLum package
results <- analyse_SAR.CWOSL(model.output,
signal.integral.min = 1,
signal.integral.max = 15,
background.integral.min = 601,
background.integral.max = 701,
fit.method = "EXP",
dose.points = c(0,10,20,50,90,0,10))
##============================================================================##
## Example 4: generate sequence from *.seq file and run SAR simulation
##============================================================================##
# load example *.SEQ file and construct a sequence.
# call function "model_LuminescenceSignals", load created sequence for sequence,
# set model = "Bailey2002" (palaeodose = 10 Gy)
# and simulate_sample_history = FALSE (default),
# because the sample history is not part of the sequence
path <- system.file("extdata", "example_SAR_cycle.SEQ", package="RLumModel")
sequence <- read_SEQ2R(file = path)
model.output <- model_LuminescenceSignals(
sequence = sequence,
model = "Bailey2001",
plot = FALSE
)
## call RLum package function "analyse_SAR.CWOSL" to analyse the simulated SAR cycle
results <- analyse_SAR.CWOSL(model.output,
signal.integral.min = 1,
signal.integral.max = 10,
background.integral.min = 301,
background.integral.max = 401,
dose.points = c(0,8,14,26,32,0,8),
fit.method = "EXP")
print(get_RLum(results))
##============================================================================##
## Example 5: compare different optical powers of stimulation light
##============================================================================##
# call function "model_LuminescenceSignals", model = "Bailey2004"
# and simulate_sample_history = FALSE (default),
# because the sample history is not part of the sequence
# the optical_power of the LED is varied and then compared.
optical_power <- seq(from = 0,to = 100,by = 20)
model.output <- lapply(1:length(optical_power), function(x){
sequence <- list(IRR = c(20, 50, 1),
PH = c(220, 10, 5),
OSL = c(125, 50, optical_power[x])
)
data <- model_LuminescenceSignals(
sequence = sequence,
model = "Bailey2004",
plot = FALSE
)
return(get_RLum(data, recordType = "OSL$", drop = FALSE))
})
##combine output curves
model.output.merged <- merge_RLum(model.output)
##plot
plot_RLum(
object = model.output.merged,
xlab = "Illumination time [s]",
ylab = "OSL signal [a.u.]",
main = "OSL signal dependency on optical power of stimulation light",
legend.text = paste("Optical power density", 20*optical_power/100, "mW/cm^2"),
combine = TRUE)
## End(Not run)
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(RLumModel)
Loading required package: Luminescence
Welcome to the R package Luminescence version 0.6.0 [Built: 2016-05-30 16:47:30 UTC]
The NSA: 'O'zapft is.'
Attaching package: 'RLumModel'
The following object is masked from 'package:Luminescence':
model_LuminescenceSignals
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/RLumModel/model_LuminescenceSignals.Rd_%03d_medium.png", width=480, height=480)
> ### Name: model_LuminescenceSignals
> ### Title: Model Luminescence Signals
> ### Aliases: model_LuminescenceSignals
>
> ### ** Examples
>
>
>
> ##================================================================##
> ## Example 1: Simulate sample history of Bailey2001
> ## (cf. Bailey, 2001, Fig. 1)
> ##================================================================##
>
> ##set sequence with the following steps
> ## (1) Irradiation at 20 deg. C with a dose of 10 Gy and a dose rate of 1 Gy/s
> ## (2) TL from 20-400 deg. C with a rate of 5 K/s
>
> sequence <-
+ list(
+ IRR = c(20, 10, 1),
+ TL = c(20, 400, 5)
+ )
>
> ##model sequence
> model.output <- model_LuminescenceSignals(
+ sequence = sequence,
+ model = "Bailey2001"
+ )
[.translate_Sequence()]
>> Simulate sequence
| | | 0% | |=================================== | 50% | |======================================================================| 100%
>
> ## Not run:
> ##D ##============================================================================##
> ##D ## Example 2: Simulate sequence at labour without sample history
> ##D ##============================================================================##
> ##D
> ##D ##set sequence with the following steps
> ##D ## (1) Irraditation at 20 deg. C with a dose of 100 Gy and a dose rate of 1 Gy/s
> ##D ## (2) Preheat to 200 deg. C and hold for 10 s
> ##D ## (3) LM-OSL at 125 deg. C. for 100 s
> ##D ## (4) Cutheat at 200 dec. C.
> ##D ## (5) Irraditation at 20 deg. C with a dose of 10 Gy and a dose rate of 1 Gy/s
> ##D ## (6) Pause at 200 de. C. for 100 s
> ##D ## (7) OSL at 125 deg. C for 100 s with 90 % optical power
> ##D ## (8) Pause at 200 deg. C for 100 s
> ##D ## (9) TL from 20-400 deg. C with a heat rate of 5 K/s
> ##D ## (10) Radiofluorescence at 20 deg. C with a dose of 200 Gy and a dose rate of 0.01 Gy/s
> ##D
> ##D sequence <-
> ##D list(
> ##D IRR = c(20, 100, 1),
> ##D PH = c(200, 10),
> ##D LM_OSL = c(125, 100),
> ##D CH = c(200),
> ##D IRR = c(20, 10, 1),
> ##D PAUSE = c(200, 100),
> ##D OSL = c(125, 100, 90),
> ##D PAUSE = c(200, 100),
> ##D TL = c(20, 400, 5),
> ##D RF = c(20, 200, 0.01)
> ##D )
> ##D
> ##D # call function "model_LuminescenceSignals", set sequence = sequence,
> ##D # model = "Pagonis2008" (palaeodose = 200 Gy) and simulate_sample_history = FALSE (default),
> ##D # because the sample history is not part of the sequence
> ##D
> ##D model.output <- model_LuminescenceSignals(
> ##D sequence = sequence,
> ##D model = "Pagonis2008"
> ##D )
> ##D
> ##D
> ##D
> ##D ##============================================================================##
> ##D ## Example 3: Simulate SAR sequence
> ##D ##============================================================================##
> ##D
> ##D ##set SAR sequence with the following steps
> ##D ## (1) RegDose: set regenerative dose [Gy] as vector
> ##D ## (2) TestDose: set test dose [Gy]
> ##D ## (3) PH: set preheat temperature in deg. C
> ##D ## (4) CH: Set cutheat temperature in deg. C
> ##D ## (5) OSL_temp: set OSL reading temperature in deg. C
> ##D ## (6) OSL_duration: set OSL reading duration in s
> ##D
> ##D sequence <- list(
> ##D RegDose = c(0,10,20,50,90,0,10),
> ##D TestDose = 5,
> ##D PH = 240,
> ##D CH = 200,
> ##D OSL_temp = 125,
> ##D OSL_duration = 70)
> ##D
> ##D # call function "model_LuminescenceSignals", set sequence = sequence,
> ##D # model = "Pagonis2007" (palaeodose = 20 Gy) and simulate_sample_history = FALSE (default),
> ##D # because the sample history is not part of the sequence
> ##D
> ##D model.output <- model_LuminescenceSignals(
> ##D
> ##D sequence = sequence,
> ##D model = "Pagonis2007",
> ##D plot = FALSE
> ##D )
> ##D
> ##D # in environment is a new object "model.output" with the results of
> ##D # every step of the given sequence.
> ##D # Plots are done at OSL and TL steps and the growth curve
> ##D
> ##D # call "analyse_SAR.CWOSL" from RLum package
> ##D results <- analyse_SAR.CWOSL(model.output,
> ##D signal.integral.min = 1,
> ##D signal.integral.max = 15,
> ##D background.integral.min = 601,
> ##D background.integral.max = 701,
> ##D fit.method = "EXP",
> ##D dose.points = c(0,10,20,50,90,0,10))
> ##D
> ##D
> ##D ##============================================================================##
> ##D ## Example 4: generate sequence from *.seq file and run SAR simulation
> ##D ##============================================================================##
> ##D
> ##D # load example *.SEQ file and construct a sequence.
> ##D # call function "model_LuminescenceSignals", load created sequence for sequence,
> ##D # set model = "Bailey2002" (palaeodose = 10 Gy)
> ##D # and simulate_sample_history = FALSE (default),
> ##D # because the sample history is not part of the sequence
> ##D
> ##D path <- system.file("extdata", "example_SAR_cycle.SEQ", package="RLumModel")
> ##D
> ##D sequence <- read_SEQ2R(file = path)
> ##D
> ##D model.output <- model_LuminescenceSignals(
> ##D sequence = sequence,
> ##D model = "Bailey2001",
> ##D plot = FALSE
> ##D )
> ##D
> ##D
> ##D ## call RLum package function "analyse_SAR.CWOSL" to analyse the simulated SAR cycle
> ##D
> ##D results <- analyse_SAR.CWOSL(model.output,
> ##D signal.integral.min = 1,
> ##D signal.integral.max = 10,
> ##D background.integral.min = 301,
> ##D background.integral.max = 401,
> ##D dose.points = c(0,8,14,26,32,0,8),
> ##D fit.method = "EXP")
> ##D
> ##D print(get_RLum(results))
> ##D
> ##D
> ##D ##============================================================================##
> ##D ## Example 5: compare different optical powers of stimulation light
> ##D ##============================================================================##
> ##D
> ##D # call function "model_LuminescenceSignals", model = "Bailey2004"
> ##D # and simulate_sample_history = FALSE (default),
> ##D # because the sample history is not part of the sequence
> ##D # the optical_power of the LED is varied and then compared.
> ##D
> ##D optical_power <- seq(from = 0,to = 100,by = 20)
> ##D
> ##D model.output <- lapply(1:length(optical_power), function(x){
> ##D
> ##D sequence <- list(IRR = c(20, 50, 1),
> ##D PH = c(220, 10, 5),
> ##D OSL = c(125, 50, optical_power[x])
> ##D )
> ##D
> ##D data <- model_LuminescenceSignals(
> ##D sequence = sequence,
> ##D model = "Bailey2004",
> ##D plot = FALSE
> ##D )
> ##D
> ##D return(get_RLum(data, recordType = "OSL$", drop = FALSE))
> ##D })
> ##D
> ##D ##combine output curves
> ##D model.output.merged <- merge_RLum(model.output)
> ##D
> ##D ##plot
> ##D plot_RLum(
> ##D object = model.output.merged,
> ##D xlab = "Illumination time [s]",
> ##D ylab = "OSL signal [a.u.]",
> ##D main = "OSL signal dependency on optical power of stimulation light",
> ##D legend.text = paste("Optical power density", 20*optical_power/100, "mW/cm^2"),
> ##D combine = TRUE)
> ##D
> ## End(Not run)
>
>
>
>
>
> dev.off()
null device
1
>