Emission Spectra Conversion from Wavelength to Energy Scales (Jacobian Conversion)
Source:R/convert_Wavelength2Energy.R
convert_Wavelength2Energy.Rd
The function provides a convenient and fast way to convert emission spectra wavelength to energy scales. The function works on RLum.Data.Spectrum, data.frame and matrix and a list of such objects. The function was written to smooth the workflow while analysing emission spectra data. This is in particular useful if you want to further treat your data and apply, e.g., a signal deconvolution.
Arguments
- object
RLum.Data.Spectrum, data.frame, matrix (required): input object to be converted. If the input is not an RLum.Data.Spectrum, the first column is always treated as the wavelength column. The function supports a list of allowed input objects.
- digits
integer (with default): set the number of digits on the returned energy axis
- order
logical (with default): enables/disables sorting of the values in ascending energy order. After the conversion the longest wavelength has the lowest energy value and the shortest wavelength the highest. While this is correct, some R functions expect increasing x-values.
Details
The intensity of the spectrum is re-calculated using the following approach to recalculate wavelength and corresponding intensity values (e.g., Appendix 4 in Blasse and Grabmeier, 1994; Mooney and Kambhampati, 2013):
$$\phi_{E} = \phi_{\lambda} * \lambda^2 / (hc)$$
with \(\phi_{E}\) the intensity per interval of energy \(E\) (1/eV), \(\phi_{\lambda}\) the intensity per interval of wavelength \(\lambda\) (1/nm) and \(h\) (eV * s) the Planck constant and \(c\) (nm/s) the velocity of light.
For transforming the wavelength axis (x-values) the equation as follow is used
$$E = hc/\lambda$$
Note
This conversion works solely for emission spectra. In case of absorption spectra only the x-axis has to be converted.
How to cite
Kreutzer, S., 2024. convert_Wavelength2Energy(): Emission Spectra Conversion from Wavelength to Energy Scales (Jacobian Conversion). Function version 0.1.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., 2024. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 0.9.26. https://r-lum.github.io/Luminescence/
References
Blasse, G., Grabmaier, B.C., 1994. Luminescent Materials. Springer.
Mooney, J., Kambhampati, P., 2013. Get the Basics Right: Jacobian Conversion of Wavelength and Energy Scales for Quantitative Analysis of Emission Spectra. J. Phys. Chem. Lett. 4, 3316–3318. doi:10.1021/jz401508t
Mooney, J., Kambhampati, P., 2013. Correction to “Get the Basics Right: Jacobian Conversion of Wavelength and Energy Scales for Quantitative Analysis of Emission Spectra.” J. Phys. Chem. Lett. 4, 3316–3318. doi:10.1021/jz401508t
Further reading
Angulo, G., Grampp, G., Rosspeintner, A., 2006. Recalling the appropriate representation of electronic spectra. Spectrochimica Acta Part A: Molecular and Biomolecular Spectroscopy 65, 727–731. doi:10.1016/j.saa.2006.01.007
Wang, Y., Townsend, P.D., 2013. Potential problems in collection and data processing of luminescence signals. Journal of Luminescence 142, 202–211. doi:10.1016/j.jlumin.2013.03.052
Author
Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team
Examples
##=====================##
##(1) Literature example after Mooney et al. (2013)
##(1.1) create matrix
m <- matrix(
data = c(seq(400, 800, 50), rep(1, 9)), ncol = 2)
##(1.2) set plot function to reproduce the
##literature figure
p <- function(m) {
plot(x = m[, 1], y = m[, 2])
polygon(
x = c(m[, 1], rev(m[, 1])),
y = c(m[, 2], rep(0, nrow(m))))
for (i in 1:nrow(m)) {
lines(x = rep(m[i, 1], 2), y = c(0, m[i, 2]))
}
}
##(1.3) plot curves
par(mfrow = c(1,2))
p(m)
p(convert_Wavelength2Energy(m))
##=====================##
##(2) Another example using density curves
##create dataset
xy <- density(
c(rnorm(n = 100, mean = 500, sd = 20),
rnorm(n = 100, mean = 800, sd = 20)))
xy <- data.frame(xy$x, xy$y)
##plot
par(mfrow = c(1,2))
plot(
xy,
type = "l",
xlim = c(150, 1000),
xlab = "Wavelength [nm]",
ylab = "Luminescence [a.u.]"
)
plot(
convert_Wavelength2Energy(xy),
xy$y,
type = "l",
xlim = c(1.23, 8.3),
xlab = "Energy [eV]",
ylab = "Luminescence [a.u.]"
)