This function gives the result of interpolating spectral data from the original set of wavelengths to a new one.
Usage
interpolate_spct(spct, w.length.out = NULL, fill = NA, length.out = NULL)
interpolate_mspct(
mspct,
w.length.out = NULL,
fill = NA,
length.out = NULL,
.parallel = FALSE,
.paropts = NULL
)
Arguments
- spct
generic_spct
- w.length.out
numeric vector of wavelengths (nm)
- fill
a value to be assigned to out of range wavelengths
- length.out
numeric value
- mspct
an object of class "generic_mspct"
- .parallel
if TRUE, apply function in parallel, using parallel backend provided by foreach
- .paropts
a list of additional options passed into the foreach function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the .export and .packages arguments to supply them so that all cluster nodes have the correct environment set up for computing.
Details
If length.out
it is a numeric value, then gives the number of
rows in the output, if it is NULL
, the values in the numeric vector
w.length.out
are used. If both are not NULL
then the range of
w.length.out
and length.out
are used to generate a vector of
wavelength. A value of NULL
for fill
prevents extrapolation.
If both w.length.out
and length.out
are NULL
the input
is returned as is. If w.length.out
has length equal to zero, zero
rows from the input are returned.
Note
The default fill = NA
fills extrapolated values with NA. Giving NULL as
argument for fill
deletes wavelengths outside the input data range from the
returned spectrum. A numerical value can be also be provided as fill. This function calls
interpolate_spectrum
for each non-wavelength column in the input spectra object.
Examples
interpolate_spct(sun.spct, 400:500, NA)
#> Object: source_spct [101 x 3]
#> Wavelength range 400-500 nm, step 1 nm
#> Label: sunlight, simulated
#> Measured on 2010-06-22 09:51:00 UTC
#> Measured at 60.20911 N, 24.96474 E; Kumpula, Helsinki, FI
#> Variables:
#> w.length: Wavelength [nm]
#> s.e.irrad: Spectral energy irradiance [W m-2 nm-1]
#> s.q.irrad: Spectral photon irradiance [mol s-1 m-2 nm-1]
#> --
#> # A tibble: 101 × 3
#> w.length s.e.irrad s.q.irrad
#> <int> <dbl> <dbl>
#> 1 400 0.608 0.00000203
#> 2 401 0.626 0.00000210
#> 3 402 0.650 0.00000218
#> 4 403 0.621 0.00000209
#> 5 404 0.637 0.00000215
#> 6 405 0.626 0.00000212
#> 7 406 0.600 0.00000204
#> 8 407 0.595 0.00000202
#> 9 408 0.626 0.00000213
#> 10 409 0.662 0.00000226
#> # ℹ 91 more rows
interpolate_spct(sun.spct, 400:500, NULL)
#> Object: source_spct [101 x 3]
#> Wavelength range 400-500 nm, step 1 nm
#> Label: sunlight, simulated
#> Measured on 2010-06-22 09:51:00 UTC
#> Measured at 60.20911 N, 24.96474 E; Kumpula, Helsinki, FI
#> Variables:
#> w.length: Wavelength [nm]
#> s.e.irrad: Spectral energy irradiance [W m-2 nm-1]
#> s.q.irrad: Spectral photon irradiance [mol s-1 m-2 nm-1]
#> --
#> # A tibble: 101 × 3
#> w.length s.e.irrad s.q.irrad
#> <int> <dbl> <dbl>
#> 1 400 0.608 0.00000203
#> 2 401 0.626 0.00000210
#> 3 402 0.650 0.00000218
#> 4 403 0.621 0.00000209
#> 5 404 0.637 0.00000215
#> 6 405 0.626 0.00000212
#> 7 406 0.600 0.00000204
#> 8 407 0.595 0.00000202
#> 9 408 0.626 0.00000213
#> 10 409 0.662 0.00000226
#> # ℹ 91 more rows
interpolate_spct(sun.spct, seq(200, 1000, by=0.1), 0)
#> Object: source_spct [8,001 x 3]
#> Wavelength range 200-1000 nm, step 0.1 nm
#> Label: sunlight, simulated
#> Measured on 2010-06-22 09:51:00 UTC
#> Measured at 60.20911 N, 24.96474 E; Kumpula, Helsinki, FI
#> Variables:
#> w.length: Wavelength [nm]
#> s.e.irrad: Spectral energy irradiance [W m-2 nm-1]
#> s.q.irrad: Spectral photon irradiance [mol s-1 m-2 nm-1]
#> --
#> # A tibble: 8,001 × 3
#> w.length s.e.irrad s.q.irrad
#> <dbl> <dbl> <dbl>
#> 1 200 0 0
#> 2 200. 0 0
#> 3 200. 0 0
#> 4 200. 0 0
#> 5 200. 0 0
#> 6 200. 0 0
#> 7 201. 0 0
#> 8 201. 0 0
#> 9 201. 0 0
#> 10 201. 0 0
#> # ℹ 7,991 more rows
interpolate_spct(sun.spct, c(400,500), length.out=201)
#> Object: source_spct [201 x 3]
#> Wavelength range 400-500 nm, step 0.5 nm
#> Label: sunlight, simulated
#> Measured on 2010-06-22 09:51:00 UTC
#> Measured at 60.20911 N, 24.96474 E; Kumpula, Helsinki, FI
#> Variables:
#> w.length: Wavelength [nm]
#> s.e.irrad: Spectral energy irradiance [W m-2 nm-1]
#> s.q.irrad: Spectral photon irradiance [mol s-1 m-2 nm-1]
#> --
#> # A tibble: 201 × 3
#> w.length s.e.irrad s.q.irrad
#> <dbl> <dbl> <dbl>
#> 1 400 0.608 0.00000203
#> 2 400. 0.617 0.00000207
#> 3 401 0.626 0.00000210
#> 4 402. 0.638 0.00000214
#> 5 402 0.650 0.00000218
#> 6 402. 0.635 0.00000214
#> 7 403 0.621 0.00000209
#> 8 404. 0.629 0.00000212
#> 9 404 0.637 0.00000215
#> 10 404. 0.632 0.00000214
#> # ℹ 191 more rows