Index wl2i()
returns the column indices for the spectra matrix for the given wavelengths.
i2wl()
converts column indices into wavelengths.
wl2i(x, wavelength = stop("wavelengths are required."), unlist = TRUE) i2wl(x, i)
x | a |
---|---|
wavelength | the wavelengths to be converted into column indices, either numeric or a formula, see details. |
unlist | if multiple wavelength ranges are given, should the indices be unlisted or kept in a list? |
i | the column indices into the spectra matrix for which the wavelength is to be computed |
A numeric containing the resulting indices for wl2i
i2wl
returns a numeric with the wavelengths
If wavelength
is numeric, each of its elements is converted to the respective index.
Values outside the range of x@wavelength
become NA
.
If the range is given as a formula (i.e. start ~ end
, a sequence
index corresponding to start : index corresponding to end
is returned. If the wavelengths are not ordered, that may lead to chaos. In this case, call
orderwl()
first.
Two special variables can be used: min
and max
, corresponding to the lowest and
highest wavelength of x
, respectively.
start and end may be complex numbers. The resulting index for a complex x is then
index (Re (x)) + Im (x)
C. Beleites
flu#> hyperSpec object #> 6 spectra #> 3 data columns #> 181 data points / spectrum #> wavelength: lambda/nm [numeric] 405.0 405.5 ... 495 #> data: (6 rows x 3 columns) #> 1. spc: I[fl]/"a.u." [matrix, array181] 27.15000 66.80133 ... 294.6495 #> 2. filename: filename [character] rawdata/flu1.txt rawdata/flu2.txt ... rawdata/flu6.txt #> 3. c: c / (mg / l) [numeric] 0.05 0.10 ... 0.3wl2i(flu, 405:407)#> [1] 1 3 5wl2i(flu, 405 ~ 407)#> [1] 1 2 3 4 5## beginning of the spectrum to 407 nm wl2i(flu, min ~ 407)#> [1] 1 2 3 4 5## 2 data points from the beginning of the spectrum to 407 nm wl2i(flu, min + 2i ~ 407)#> [1] 3 4 5## the first 3 data points wl2i(flu, min ~ min + 2i)#> [1] 1 2 3## from 490 nm to end of the spectrum wl2i(flu, 490 ~ max)#> [1] 171 172 173 174 175 176 177 178 179 180 181## the last 8 data points wl2i(flu, max - 7i ~ max)#> [1] 174 175 176 177 178 179 180 181## get 450 nm +- 3 data points wl2i(flu, 450 - 3i ~ 450 + 3i)#> [1] 88 89 90 91 92 93 94wl2i(flu, 300:400) ## all NA:#> [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA #> [26] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA #> [51] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA #> [76] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA #> [101] NAwl2i(flu, 600 ~ 700) ## NULL: completely outside flu's wavelength range#> NULLi2wl(faux_cell, 17:20)#> [1] 666 670 674 678