Skip to contents

Several functions in this package and the suite accept a range argument with a flexible syntax. To ensure that all functions and methods behave in the same way this code has been factored out into a separate function.

Usage

normalize_range_arg(arg.range, wl.range, trim = TRUE)

Arguments

arg.range

a numeric vector of length two, or any other object for which function range() will return a range of wavelengths (nm).

wl.range

a numeric vector of length two, or any other object for which function range() will return a range of wavelengths (nm), missing values are not allowed.

trim

logical If TRUE the range returned is bound within wl.range while if FALSE it can be broader.

Value

a numeric vector of length two, guaranteed not to have missing values.

Details

The arg.range argument can contain NAs which are replaced by the value at the same position in wl.range. In addition a NULL argument for range is converted into wl.range. The wl.range is also the limit to which the returned value is trimmed if trim == TRUE. The idea is that the value supplied as wl.range is the wavelength range of the data.

Examples

normalize_range_arg(c(NA, 500), range(sun.spct))
#> [1] 280 500
normalize_range_arg(c(300, NA), range(sun.spct))
#> [1] 300 800
normalize_range_arg(c(100, 5000), range(sun.spct), FALSE)
#> [1]  100 5000
normalize_range_arg(c(NA, NA), range(sun.spct))
#> [1] 280 800
normalize_range_arg(c(NA, NA), sun.spct)
#> [1] 280 800