Rfr_fraction {photobiology} | R Documentation |
reflectance:reflectance fraction
Description
This function returns the reflectance fraction for a given pair of wavebands of a reflector spectrum.
Usage
Rfr_fraction(
spct,
w.band.num,
w.band.denom,
scale.factor,
wb.trim,
use.cached.mult,
use.hinges,
...
)
## Default S3 method:
Rfr_fraction(
spct,
w.band.num,
w.band.denom,
scale.factor,
wb.trim,
use.cached.mult,
use.hinges,
...
)
## S3 method for class 'reflector_spct'
Rfr_fraction(
spct,
w.band.num = NULL,
w.band.denom = NULL,
scale.factor = 1,
wb.trim = getOption("photobiology.waveband.trim", default = TRUE),
use.cached.mult = FALSE,
use.hinges = NULL,
quantity = "mean",
naming = "short",
name.tag = NULL,
...
)
## S3 method for class 'reflector_mspct'
Rfr_fraction(
spct,
w.band.num = NULL,
w.band.denom = NULL,
scale.factor = 1,
wb.trim = getOption("photobiology.waveband.trim", default = TRUE),
use.cached.mult = FALSE,
use.hinges = NULL,
quantity = "mean",
naming = "short",
name.tag = NULL,
...,
attr2tb = NULL,
idx = "spct.idx",
.parallel = FALSE,
.paropts = NULL
)
Arguments
spct |
an object of class "reflector_spct". |
w.band.num |
waveband object or a list of waveband objects used to compute the numerator(s) and denominator(s) of the fraction(s). |
w.band.denom |
waveband object or a list of waveband objects used to compute the denominator(s) of the fraction(s). |
scale.factor |
numeric vector of length 1, or length equal to that of
|
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. |
... |
other arguments (possibly ignored) |
quantity |
character One of "total", "average" or "mean". |
naming |
character one of "long", "default", "short" or "none". Used to select the type of names to assign to returned value. |
name.tag |
character Used to tag the name of the returned values. |
attr2tb |
character vector, see |
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. |
Details
With the default quantity = "mean"
or quantity =
"average"
the ratio is based on two mean spectral reflectance,
one computed for each waveband.
\frac{\overline{\mathrm{Rfr}_\lambda}(s, wb_\mathrm{num})}{\overline{\mathrm{Rfr}_\lambda}(s, wb_\mathrm{denom}) + \overline{\mathrm{Rfr}_\lambda}(s, wb_\mathrm{num})}
If the argument is set to quantity = "total"
the fraction is based on
two integrated reflectance, one computed for each waveband.
\frac{\mathrm{Rfr}(s, wb_\mathrm{num})}{\mathrm{Rfr}(s, wb_\mathrm{denom}) + \mathrm{Rfr}(s, wb_\mathrm{num})}
Only if the wavelength expanse of the two wavebands is the same, these two ratios are numerically identical.
Value
In the case of methods for individual spectra, a numeric
vector with name attribute set. The name is based on the name of the
wavebands unless a named list of wavebands is supplied in which case the
names of the list elements are used. "[Rfr:Rfr]" is appended if quantity
= "total"
and "[Rfr(wl):Rfr(wl)]" if quantity = "mean"
or
quantity = "average"
.
A data.frame
is returned in the case of collections of spectra,
containing one column for each fraction definition, an index column with
the names of the spectra, and optionally additional columns with metadata
values retrieved from the attributes of the member spectra.
Fraction definitions are "assembled" from the arguments passed to
w.band.num
and w.band.denom
. If both arguments are lists of
waveband definitions, with an equal number of members, then the wavebands
are paired to obtain as many fractions as the number of wavebands in each
list. Recycling for wavebands takes place when the number of denominator
and numerator wavebands differ.
Methods (by class)
-
Rfr_fraction(default)
: Default for generic function -
Rfr_fraction(reflector_spct)
: Method forreflector_spct
objects -
Rfr_fraction(reflector_mspct)
: Calculates Rfr:Rfr from areflector_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.
See Also
Other Reflectance ratio functions:
Rfr_normdiff()
,
Rfr_ratio()
Examples
Rfr_fraction(Ler_leaf_rflt.spct,
waveband(c(400,500), wb.name = "Blue"),
waveband(c(600,700), wb.name = "Red"))
Rfr_fraction(Ler_leaf_rflt.spct,
waveband(c(400,500), wb.name = "Blue"),
waveband(c(600,700), wb.name = "Red"),
quantity = "total")
Rfr_fraction(Ler_leaf_rflt.spct,
waveband(c(400,500), wb.name = "Blue"),
waveband(c(600,700), wb.name = "Red"),
quantity = "mean")