read_XSYG2R | R Documentation |
Imports XSYG-files produced by a Freiberg Instruments lexsyg reader into R.
read_XSYG2R(
file,
recalculate.TL.curves = TRUE,
fastForward = FALSE,
import = TRUE,
pattern = ".xsyg",
verbose = TRUE,
txtProgressBar = TRUE
)
file |
character or list (required):
path and file name of the XSYG file. If input is a |
recalculate.TL.curves |
logical (with default):
if set to |
fastForward |
logical (with default):
if |
import |
logical (with default):
if set to |
pattern |
regex (with default):
optional regular expression if |
verbose |
logical (with default): enable or disable verbose mode. If verbose is |
txtProgressBar |
logical (with default):
enables |
How does the import function work?
The function uses the xml package to parse the file structure. Each sequence is subsequently translated into an RLum.Analysis object.
General structure XSYG format
<?xml?> <Sample> <Sequence> <Record> <Curve name="first curve" /> <Curve name="curve with data">x0 , y0 ; x1 , y1 ; x2 , y2 ; x3 , y3</Curve> </Record> </Sequence> </Sample>
So far, each
XSYG file can only contain one <Sample></Sample>
, but multiple
sequences.
Each record may comprise several curves.
TL curve recalculation
On the FI lexsyg device TL curves are recorded as time against count values.
Temperature values are monitored on the heating plate and stored in a
separate curve (time vs. temperature). If the option
recalculate.TL.curves = TRUE
is chosen, the time values for each TL
curve are replaced by temperature values.
Practically, this means combining two matrices (Time vs. Counts and Time vs. Temperature) with different row numbers by their time values. Three cases are considered:
HE: Heating element
PMT: Photomultiplier tube
Interpolation is done using the function approx
CASE (1): nrow(matrix(PMT))
> nrow(matrix(HE))
Missing temperature values from the heating element are calculated using time values from the PMT measurement.
CASE (2): nrow(matrix(PMT))
< nrow(matrix(HE))
Missing count values from the PMT are calculated using time values from the heating element measurement.
CASE (3): nrow(matrix(PMT))
== nrow(matrix(HE))
A new matrix is produced using temperature values from the heating element and count values from the PMT.
Note: Please note that due to the recalculation of the temperature values based on values delivered by the heating element, it may happen that multiple count values exists for each temperature value and temperature values may also decrease during heating, not only increase.
Advanced file import
To allow for a more efficient usage of the function, instead of single path to a file just a directory can be passed as input. In this particular case the function tries to extract all XSYG-files found in the directory and import them all. Using this option internally the function constructs as list of the XSYG-files found in the directory. Please note no recursive detection is supported as this may lead to endless loops.
Using the option import = FALSE
A list consisting of two elements is shown:
data.frame with information on file.
data.frame with information on the sequences stored in the XSYG file.
Using the option import = TRUE
(default)
A list is provided, the list elements contain:
Sequence.Header |
data.frame with information on the sequence. |
Sequence.Object |
RLum.Analysis containing the curves. |
0.6.11
Kreutzer, S., 2024. read_XSYG2R(): Import XSYG files to R. Function version 0.6.11. 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., 2024. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 0.9.24. https://CRAN.R-project.org/package=Luminescence
This function is a beta version as the XSYG file format is not yet fully specified. Thus, further file operations (merge, export, write) should be done using the functions provided with the package xml.
So far, no image data import is provided!
Corresponding values in the XSXG file are skipped.
Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team
Grehl, S., Kreutzer, S., Hoehne, M., 2013. Documentation of the XSYG file format. Unpublished Technical Note. Freiberg, Germany
Further reading
XML: https://en.wikipedia.org/wiki/XML
xml, RLum.Analysis, RLum.Data.Curve, approx
##(1) import XSYG file to R (uncomment for usage)
#FILE <- file.choose()
#temp <- read_XSYG2R(FILE)
##(2) additional examples for pure XML import using the package XML
## (uncomment for usage)
##import entire XML file
#FILE <- file.choose()
#temp <- XML::xmlRoot(XML::xmlTreeParse(FILE))
##search for specific subnodes with curves containing 'OSL'
#getNodeSet(temp, "//Sample/Sequence/Record[@recordType = 'OSL']/Curve")
##(2) How to extract single curves ... after import
data(ExampleData.XSYG, envir = environment())
##grep one OSL curves and plot the first curve
OSLcurve <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType="OSL")[[1]]
##(3) How to see the structure of an object?
structure_RLum(OSL.SARMeasurement$Sequence.Object)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.