Matches detected peaks to known atomic emission lines. Each peak is assigned its best-scoring candidate from the curated NIST database.
Usage
ls_identify_peaks(
peaks,
elements = NULL,
tolerance_nm = 0.2,
ionization = c(1L, 2L)
)Arguments
- peaks
A tibble from
ls_find_peaks().- elements
Character vector. Restrict search. Default
NULL= all.- tolerance_nm
Numeric. Maximum wavelength deviation. Default 0.2.
- ionization
Integer vector of ionization states. Default
c(1L, 2L).
Value
A tibble with all peak columns plus: element, ionization,
nist_wavelength_nm, nist_aki, deviation_nm, confidence (0-1).
Examples
spec <- ls_simulate_spectrum(elements = c(Ca = 5000, Na = 1000), seed = 1)
pk <- ls_find_peaks(spec, snr_threshold = 5)
id <- ls_identify_peaks(pk, elements = c("Ca", "Na"))
head(id)
#> # A tibble: 6 × 12
#> wavelength_nm intensity snr prominence fwhm_nm area element ionization
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <int>
#> 1 240. 98.7 67.4 9.70 NA 0 Ca 1
#> 2 202. 97.1 65.1 2.03 NA 0 NA NA
#> 3 206. 95.7 63.0 1.56 NA 0 NA NA
#> 4 208. 95.7 63.0 1.04 NA 0 NA NA
#> 5 205. 95.4 62.6 1.23 NA 0 NA NA
#> 6 212. 94.9 61.8 1.59 NA 0 NA NA
#> # ℹ 4 more variables: nist_wavelength_nm <dbl>, nist_aki <dbl>,
#> # deviation_nm <dbl>, confidence <dbl>