Function to calculate the mean, total, or other summary of absorptance for
spectral data stored in a filter_spct
or in an object_spct
.
Absorptance is a different quantity than absorbance.
Usage
absorptance(spct, w.band, quantity, wb.trim, use.hinges, ...)
# Default S3 method
absorptance(spct, w.band, quantity, wb.trim, use.hinges, ...)
# S3 method for class 'filter_spct'
absorptance(
spct,
w.band = NULL,
quantity = "average",
wb.trim = getOption("photobiology.waveband.trim", default = TRUE),
use.hinges = NULL,
naming = "default",
...
)
# S3 method for class 'object_spct'
absorptance(
spct,
w.band = NULL,
quantity = "average",
wb.trim = getOption("photobiology.waveband.trim", default = TRUE),
use.hinges = NULL,
naming = "default",
...
)
# S3 method for class 'filter_mspct'
absorptance(
spct,
w.band = NULL,
quantity = "average",
wb.trim = getOption("photobiology.waveband.trim", default = TRUE),
use.hinges = NULL,
naming = "default",
...,
attr2tb = NULL,
idx = "spct.idx"
)
# S3 method for class 'object_mspct'
absorptance(
spct,
w.band = NULL,
quantity = "average",
wb.trim = getOption("photobiology.waveband.trim", default = TRUE),
use.hinges = NULL,
naming = "default",
...,
attr2tb = NULL,
idx = "spct.idx",
.parallel = FALSE,
.paropts = NULL
)
Arguments
- spct
an R object.
- w.band
waveband or list of waveband objects or a numeric vector of length two. The waveband(s) determine the region(s) of the spectrum that are summarized. If a numeric range is supplied a waveband object is constructed on the fly from it.
- quantity
character string One of
"average"
or"mean"
,"total"
,"contribution"
,"contribution.pc"
,"relative"
or"relative.pc"
.- wb.trim
logical if
TRUE
wavebands crossing spectral data boundaries are trimmed, ifFALSE
, they are discarded.- 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.
- ...
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.- 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 methods for individual
spectra, with one value for each waveband
passed to parameter
w.band
. A data.frame
in the case of collections of spectra,
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.
Methods (by class)
absorptance(default)
: Default for generic functionabsorptance(filter_spct)
: Specialization for filter spectraabsorptance(object_spct)
: Specialization for object spectraabsorptance(filter_mspct)
: Calculates absorptance from afilter_mspct
absorptance(object_mspct)
: Calculates absorptance from aobject_mspct
Note
The use.hinges
parameter controls speed optimization. The
defaults should be suitable in most cases. Only the range of wavelengths
in the wavebands is used and all BSWFs are ignored.
Examples
absorptance(black_body.spct, new_waveband(400,500))
#> Afr(wl)_range.400.500
#> 1
#> attr(,"radiation.unit")
#> [1] "absorptance average"
absorptance(white_body.spct, new_waveband(300,400))
#> Afr(wl)_range.300.400
#> 0
#> attr(,"radiation.unit")
#> [1] "absorptance average"
absorptance(black_body.spct, split_bands(c(400,700), length.out = 3))
#> Afr(wl)_wb1 Afr(wl)_wb2 Afr(wl)_wb3
#> 1 1 1
#> attr(,"radiation.unit")
#> [1] "absorptance average"
absorptance(black_body.spct, split_bands(c(400,700), length.out = 3),
quantity = "average")
#> Afr(wl)_wb1 Afr(wl)_wb2 Afr(wl)_wb3
#> 1 1 1
#> attr(,"radiation.unit")
#> [1] "absorptance average"
absorptance(black_body.spct, split_bands(c(400,700), length.out = 3),
quantity = "total")
#> Afr_wb1 Afr_wb2 Afr_wb3
#> 100 100 100
#> attr(,"radiation.unit")
#> [1] "absorptance total"
absorptance(black_body.spct, split_bands(c(400,700), length.out = 3),
quantity = "relative")
#> Afr/Afrsum_wb1 Afr/Afrsum_wb2 Afr/Afrsum_wb3
#> 0.3333333 0.3333333 0.3333333
#> attr(,"radiation.unit")
#> [1] "absorptance relative"
absorptance(black_body.spct, split_bands(c(400,700), length.out = 3),
quantity = "relative.pc")
#> Afr/Afrsum[%]_wb1 Afr/Afrsum[%]_wb2 Afr/Afrsum[%]_wb3
#> 33.33333 33.33333 33.33333
#> attr(,"radiation.unit")
#> [1] "absorptance relative.pc"
absorptance(black_body.spct, split_bands(c(400,700), length.out = 3),
quantity = "contribution")
#> Afr/Afrtot_wb1 Afr/Afrtot_wb2 Afr/Afrtot_wb3
#> 0.02040816 0.02040816 0.02040816
#> attr(,"radiation.unit")
#> [1] "absorptance contribution"
absorptance(black_body.spct, split_bands(c(400,700), length.out = 3),
quantity = "contribution.pc")
#> Afr/Afrtot[%]_wb1 Afr/Afrtot[%]_wb2 Afr/Afrtot[%]_wb3
#> 2.040816 2.040816 2.040816
#> attr(,"radiation.unit")
#> [1] "absorptance contribution.pc"