Dear R Luminescence users!

As the years passing by, the ‘Luminescence’ package gets bigger every year, and we are falling more and more behind our schedules for next major releases. Nevertheless, today, we are happy to announce another major release 0.9.0 before we are finally moving to 1.0.0 in 2020. Please note that the 0.9.X package release series will be last supporting R versions < 3.5.0.

Unfortunately, due to last minute CRAN correction requests after we had merged the development branches, we cannot ship all the new functions that we have had prepared for you over the last year. They will come later the year with further updates.

We are thankful for all the helpful suggestions and comments we received over time, and we are welcoming two new members in our development team: Svenja Riedesel (Aberystwyth University, UK) and Martin Autzen (Technical University of Denmark, DK) who contributed their first function.

As usual, below we are featuring some changes and new functions. For a full list of changes and notably the bug fixes, please check the news on the CRAN webpage here.

Have fun and do not forget to report bugs via https://github.com/R-Lum/Luminescence/issues.

Your R ‘Luminescence’ Developer Team

(Sebastian Kreutzer, Christoph Burow, Michael Dietze, Margret C. Fuchs, Christoph Schmidt, Manfred Fischer, Johannes Friedrich, Norbert Mercier, Rachel K. Smedley, Claire Christophe , Antoine Zink, Julie Durcan,
Georgina E. King, Anne Philippe, Guillaume Guerin, Svenja Riedesel, Martin Autzen)

New functions

Give me energy: convert_Wavelength2Energy()

Since a few years ‘Luminescence’ includes functions to treat and display 3D emission spectra, e.g., plot_RLum.Data.Spectrum(). Such spectra are usually recorded on a wavelength scale but need to be transposed to energy scales, e.g., to deconvolute individual peaks by fitting. For emission spectra it needs more than just replacing the wavelength axis, but also the signal values need to be recalculated to maintain the area under the sum spectrum (example after Mooney et al., 2013).

A simplified form of such conversion was already included in plot_RLum.Data.Spectrum(), but the values could not be extracted. To quicken and unify the workflow among the package ‘Luminescence’ now convert_Wavelength2Energy() takes over and is also used internally by plot_RLum.Data.Spectrum(). Output values are similar to the allowed input values ( RLum.Data.Spectrum(), data.frame and matrix). Example:

plot(
 convert_Wavelength2Energy(xy),
 xy$y,
 type = "l",
 xlim = c(1.23, 8.3),
 xlab = "Energy [eV]",
 ylab = "Luminescence [a.u.]"
)

Life is short: fit_OSLLifeTimes()

New equipment brings new data, brings new challenges. Back in late 2017, we got our first nanosecond pulsing unit shipping to Bordeaux. The project aimed at investigating very short luminescence signal lifetimes in quartz in minerals. To analyse the data and deconvolve the bulk signal, a series of photons arriving after an OSL pulse, Sebastian and Christoph S. created a new function using ideas proposed by Bluszcz and Adamiec (2006) to identify a statistically justified number of lifetimes components.

The function works on RLum.Data.Curve, data.frame or matrix objects and runs a differential evolution algorithm to identify meaningful start parameters later piped into a nonlinear least square fitting.

fit_OSLLifeTimes(
object = ExampleData.TR_OSL, 
verbose = TRUE)

Show it all: plot_DRCSummary()

You have always been wondering how the dose-response curves would look like if combined in a single plot? Now we have a solution: plot_DRCSummary() works directly on the output of the function analyse_SAR.CWOSL() and extracts the equations with the fitting parameters for you, and it displays everything in a single plot. Of course, it also works on a list of objects created by analyse_SAR.CWOSL().

plot_DRCSummary(
  object = results,
  show_natural = TRUE,
  show_dose_points = TRUE
)