Energy irradiance for one or more wavebands of a light source spectrum.
Usage
e_irrad(
spct,
w.band,
quantity,
time.unit,
scale.factor,
wb.trim,
use.cached.mult,
use.hinges,
allow.scaled,
...
)
# Default S3 method
e_irrad(
spct,
w.band,
quantity,
time.unit,
scale.factor,
wb.trim,
use.cached.mult,
use.hinges,
allow.scaled,
...
)
# S3 method for class 'source_spct'
e_irrad(
spct,
w.band = NULL,
quantity = "total",
time.unit = NULL,
scale.factor = 1,
wb.trim = getOption("photobiology.waveband.trim", default = TRUE),
use.cached.mult = getOption("photobiology.use.cached.mult", default = FALSE),
use.hinges = NULL,
allow.scaled = !quantity %in% c("average", "mean", "total"),
naming = "default",
return.tb = FALSE,
...
)
# S3 method for class 'source_mspct'
e_irrad(
spct,
w.band = NULL,
quantity = "total",
time.unit = NULL,
scale.factor = 1,
wb.trim = getOption("photobiology.waveband.trim", default = TRUE),
use.cached.mult = getOption("photobiology.use.cached.mult", default = FALSE),
use.hinges = NULL,
allow.scaled = !quantity %in% c("average", "mean", "total"),
naming = "default",
...,
attr2tb = NULL,
idx = "spct.idx",
.parallel = FALSE,
.paropts = NULL
)
Arguments
- spct
an R object.
- w.band
a list of
waveband
objects or awaveband
object.- quantity
character string One of "total", "average" or "mean", "contribution", "contribution.pc", "relative" or "relative.pc".
- time.unit
character or lubridate::duration object.
- scale.factor
numeric vector of length 1, or length equal to that of
w.band
. Numeric multiplier applied to returned values.- wb.trim
logical if TRUE wavebands crossing spectral data boundaries are trimmed, if FALSE, they are discarded.
- use.cached.mult
logical indicating whether multiplier values should be cached between calls.
- use.hinges
logical Flag indicating whether to insert "hinges" into the spectral data before integration so as to reduce interpolation errors at the boundaries of the wavebands.
- allow.scaled
logical indicating whether scaled or normalized spectra as argument to spct are flagged as an error.
- ...
other arguments (possibly used by derived methods).
- naming
character one of "long", "default", "short" or "none". Used to select the type of names to assign to returned value.
- return.tb
logical Flag forcing a tibble to be always returned, even for a single spectrum as argumnet to
spct
. The default isFALSE
for backwards compatibility.- attr2tb
character vector, see
add_attr2tb
for the syntax forattr2tb
passed as is to formal parametercol.names
.- idx
character Name of the column with the names of the members of the collection of spectra.
- .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.
Value
A named numeric
vector in the case of a _spct
object
containing a single spectrum and return.tb = FALSE
. The vector has
one member one value for each waveband
passed to parameter
w.band
. In all other cases a tibble
, containing one column
for each waveband
object, an index column with the names of the
spectra, and optionally additional columns with metadata values retrieved
from the attributes of the member spectra.
By default values are only integrated, but depending on the argument passed
to parameter quantity
they can be re-expressed as relative fractions
or percentages. In the case of vector output, names
attribute is set
to the name of the corresponding waveband unless a named list is supplied
in which case the names of the list members are used. The time.unit
attribute is copied from the spectrum object to the output. Units are as
follows: If units are absolute and time.unit is second, [W m-2 nm-1] -> [W
m-2] If time.unit is day, [J d-1 m-2 nm-1] -> [J m-2]; if units are
relative, fraction of one or percent.
Methods (by class)
e_irrad(default)
: Default for generic functione_irrad(source_spct)
: Calculates energy irradiance from asource_spct
object.e_irrad(source_mspct)
: Calculates energy irradiance from asource_mspct
object.
Note
The last two parameters control speed optimizations. The defaults
should be suitable in most cases. If you will use repeatedly the same SWFs
on many spectra measured at exactly the same wavelengths you may obtain
some speed up by setting use.cached.mult=TRUE
. However, be aware
that you are responsible for ensuring that the wavelengths are the same in
each call, as the only test done is for the length of the w.length
vector.
Examples
e_irrad(sun.spct, waveband(c(400,700)))
#> E_range.400.700
#> 196.6343
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "total energy irradiance"
e_irrad(sun.spct, split_bands(c(400,700), length.out = 3))
#> E_wb1 E_wb2 E_wb3
#> 69.69043 68.48950 58.45434
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "total energy irradiance"
e_irrad(sun.spct, split_bands(c(400,700), length.out = 3),
quantity = "total")
#> E_wb1 E_wb2 E_wb3
#> 69.69043 68.48950 58.45434
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "total energy irradiance"
e_irrad(sun.spct, split_bands(c(400,700), length.out = 3),
quantity = "average")
#> E(wl)_wb1 E(wl)_wb2 E(wl)_wb3
#> 0.6969043 0.6848950 0.5845434
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "average energy irradiance"
e_irrad(sun.spct, split_bands(c(400,700), length.out = 3),
quantity = "relative")
#> E/Esum_wb1 E/Esum_wb2 E/Esum_wb3
#> 0.3544165 0.3483091 0.2972744
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "relative energy irradiance"
e_irrad(sun.spct, split_bands(c(400,700), length.out = 3),
quantity = "relative.pc")
#> E/Esum_wb1 E/Esum_wb2 E/Esum_wb3
#> 35.44165 34.83091 29.72744
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "relative.pc energy irradiance"
e_irrad(sun.spct, split_bands(c(400,700), length.out = 3),
quantity = "contribution")
#> E/Etot_wb1 E/Etot_wb2 E/Etot_wb3
#> 0.2589520 0.2544897 0.2172015
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "contribution energy irradiance"
e_irrad(sun.spct, split_bands(c(400,700), length.out = 3),
quantity = "contribution.pc")
#> E/Etot_wb1 E/Etot_wb2 E/Etot_wb3
#> 25.89520 25.44897 21.72015
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "contribution.pc energy irradiance"