normalize {photobiology} | R Documentation |
Normalize spectral data
Description
This method returns a spectral object of the same class as the one supplied as argument but with the spectral data normalized to 1.0 at a specific wavelength. When the object contains multiple spectra, the normalisation is applied to each spectrum individually.
Usage
normalize(x, ...)
normalise(x, ...)
## Default S3 method:
normalize(x, ...)
## S3 method for class 'source_spct'
normalize(
x,
...,
range = NULL,
norm = "max",
unit.out = getOption("photobiology.radiation.unit", default = "energy"),
keep.scaling = FALSE,
na.rm = FALSE
)
## S3 method for class 'response_spct'
normalize(
x,
...,
range = NULL,
norm = "max",
unit.out = getOption("photobiology.radiation.unit", default = "energy"),
keep.scaling = FALSE,
na.rm = FALSE
)
## S3 method for class 'filter_spct'
normalize(
x,
...,
range = NULL,
norm = "max",
qty.out = getOption("photobiology.filter.qty", default = "transmittance"),
keep.scaling = FALSE,
na.rm = FALSE
)
## S3 method for class 'reflector_spct'
normalize(
x,
...,
range = NULL,
norm = "max",
qty.out = NULL,
keep.scaling = FALSE,
na.rm = FALSE
)
## S3 method for class 'solute_spct'
normalize(
x,
...,
range = NULL,
norm = "max",
keep.scaling = FALSE,
na.rm = FALSE
)
## S3 method for class 'raw_spct'
normalize(
x,
...,
range = NULL,
norm = "max",
keep.scaling = FALSE,
na.rm = FALSE
)
## S3 method for class 'cps_spct'
normalize(
x,
...,
range = NULL,
norm = "max",
keep.scaling = FALSE,
na.rm = FALSE
)
## S3 method for class 'generic_spct'
normalize(
x,
...,
range = NULL,
norm = "max",
col.names,
keep.scaling = FALSE,
na.rm = FALSE
)
## S3 method for class 'source_mspct'
normalize(
x,
...,
range = NULL,
norm = "max",
unit.out = getOption("photobiology.radiation.unit", default = "energy"),
keep.scaling = FALSE,
na.rm = FALSE,
.parallel = FALSE,
.paropts = NULL
)
## S3 method for class 'response_mspct'
normalize(
x,
...,
range = NULL,
norm = "max",
unit.out = getOption("photobiology.radiation.unit", default = "energy"),
keep.scaling = FALSE,
na.rm = FALSE,
.parallel = FALSE,
.paropts = NULL
)
## S3 method for class 'filter_mspct'
normalize(
x,
...,
range = NULL,
norm = "max",
qty.out = getOption("photobiology.filter.qty", default = "transmittance"),
keep.scaling = FALSE,
na.rm = FALSE,
.parallel = FALSE,
.paropts = NULL
)
## S3 method for class 'reflector_mspct'
normalize(
x,
...,
range = x,
norm = "max",
qty.out = NULL,
keep.scaling = FALSE,
na.rm = FALSE,
.parallel = FALSE,
.paropts = NULL
)
## S3 method for class 'raw_mspct'
normalize(
x,
...,
range = x,
norm = "max",
keep.scaling = FALSE,
na.rm = FALSE,
.parallel = FALSE,
.paropts = NULL
)
## S3 method for class 'cps_mspct'
normalize(
x,
...,
range = x,
norm = "max",
keep.scaling = FALSE,
na.rm = FALSE,
.parallel = FALSE,
.paropts = NULL
)
## S3 method for class 'solute_mspct'
normalize(
x,
...,
range = x,
norm = "max",
keep.scaling = FALSE,
na.rm = FALSE,
.parallel = FALSE,
.paropts = NULL
)
## S3 method for class 'generic_mspct'
normalize(
x,
...,
range = NULL,
norm = "max",
col.names,
keep.scaling = FALSE,
na.rm = FALSE,
.parallel = FALSE,
.paropts = NULL
)
Arguments
x |
An R object |
... |
not used in current version |
range |
An R object on which |
norm |
numeric Normalization wavelength (nm) or character string "max",
or "min" for normalization at the corresponding wavelength, "update" to
update the normalization after modifying units of expression, quantity
or range but respecting the previously used criterion, or "skip" to force
return of |
unit.out |
character Allowed values "energy", and "photon", or its alias "quantum" |
keep.scaling |
logical or numeric Flag to indicate if any existing
scaling should be preserved or not. The default, |
na.rm |
logical indicating whether |
qty.out |
character string Allowed values are "transmittance", and "absorbance" indicating on which quantity to apply the normalization. |
col.names |
character vector containing the names of columns or variables to which to apply the normalization. |
.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
By default normalization is done based on the maximum of the spectral data. It is possible to also do the normalization based on a user-supplied wavelength expressed in nanometres or the minimum. An existing normalization can be updated for a different unit of expression or after a conversion to a related spectral quantity.
By default the function is applied to the whole spectrum, but by passing a range of wavelengths as input, the search, e.g., for the maximum, can be limited to a range of wavelengths of interest instead of the whole spectrum.
In 'photobiology' (>= 0.10.8) detailed information about the normalization is stored in an attribute. In 'photobiology' (>= 0.10.10) applying a new normalization to an already normalized spectrum recomputes the multiplier factors stored in the attributes whenever possible. This ensures that the returned object is identical, except for possible accumulated loss of precision due to floating-point arithmetic, independently of the previous application of a different normalization.
Value
A copy of the object passed as argument to x
with the values
of the spectral quantity rescaled to 1 at the normalization wavelength. If
the normalization wavelength is not already present in x
, it is
added by interpolation—i.e. the returned value may be one row longer than
x
. Attributes normalized
and normalization
are set to
keep a log of the computations applied.
Methods (by class)
-
normalize(default)
: Default for generic function -
normalize(source_spct)
: Normalize asource_spct
object. -
normalize(response_spct)
: Normalize a response spectrum. -
normalize(filter_spct)
: Normalize a filter spectrum. -
normalize(reflector_spct)
: Normalize a reflector spectrum. -
normalize(solute_spct)
: Normalize a solute spectrum. -
normalize(raw_spct)
: Normalize a raw spectrum. -
normalize(cps_spct)
: Normalize a cps spectrum. -
normalize(generic_spct)
: Normalize a raw spectrum. -
normalize(source_mspct)
: Normalize the members of a source_mspct object. -
normalize(response_mspct)
: Normalize the members of a response_mspct object. -
normalize(filter_mspct)
: Normalize the members of a filter_mspct object. -
normalize(reflector_mspct)
: Normalize the members of a reflector_mspct object. -
normalize(raw_mspct)
: Normalize the members of a raw_mspct object. -
normalize(cps_mspct)
: Normalize the members of a cps_mspct object. -
normalize(solute_mspct)
: Normalize the members of a solute_mspct object. -
normalize(generic_mspct)
: Normalize the members of a solute_mspct object.
Note
When the spectrum passed as argument to x
had been previously
scaled, in 'photobiology' (<= 0.10.9) the scaling attribute was always
removed and no normalization factors returned. In 'photobiology'
(>= 0.10.10) scaling information can be preserved by passing
keep.scaling = TRUE
.
By default if x
contains one or more NA
values and the
normalization is based on a summary quantity, the returned spectrum will
contain only NA
values. If na.rm == TRUE
then the summary
quantity will be calculated after striping NA
values, and only the
values that were NA
in x
will be NA
values in the
returned spectrum.
When a numeric value is passed as argument to keep.scaling, the scaling
uses f = "total"
or f = "mean"
depending on the class of
x
. Prescaling is only occasionally needed.
Method normalize
is implemented for solute_spct
objects but
as the spectral data stored in them are a description of an intensive
property of a substance, normalization is unlikely to useful. To represent
solutions of specific concentrations of solutes, filter_spct
objects
should be used instead.
normalise()
is a synonym for this normalize()
method.
See Also
Other rescaling functions:
fscale()
,
fshift()
,
getNormalized()
,
getScaled()
,
is_normalized()
,
is_scaled()
,
setNormalized()
,
setScaled()
Examples
normalize(sun.spct)
normalise(sun.spct) # equivalent
normalize(sun.spct, norm = "max")
normalize(sun.spct, norm = 400)