setTfrType {photobiology} | R Documentation |
The "Tfr.type" attribute
Description
Function to set by reference the "Tfr.type"
attribute of an
existing filter_spct
or object_spct
object, and function to
query its current status.
Usage
setTfrType(x, Tfr.type = c("total", "internal"))
getTfrType(x)
Arguments
x |
a |
Tfr.type |
character string, either |
Details
Transmittance, T
or \tau
, has two different definitions that
differ in how reflectance is taken into account: "total" transmittance and
"internal" transmittance. They are both in widespread use, and rather
frequently the interconversion is approximate or even not possible.
T = \frac{I_z}{I_0}
\tau = \frac{I_z}{I_0 - \rho}
where T
is total transmittance and \tau
is internal transmittance;
I_0
is the radiant power incident on an object and I_z
is the
radiant power at depth z
, in most cases measured below the non-illuminated
side of the object, and \rho
is the total reflectance at the
illuminated surface.
The transmittance of an object as a whole depends on the length of the light path within the object and reflectance on the angle of incidence of the light on the surface. When the light beam is near-normal to the surface, both quantities are at their minimum.
Thus, the interconversion of total spectral transmittance, T(\lambda)
,
into internal spectral transmittance, \tau(\lambda)
, is strictly
possible only if the spectral reflectance \rho(\lambda)
is known. In
practice, the spectral reflectance is approximated by a constant value
that is assumed independent of wavelength.
Objects of class object_spct
contain spectral data for both spectral
transmittance and spectral reflectance or spectral absorptance, making
conversion possible. Objects of class filter_spct
do not contain
spectral reflectance data, but may have a known approximate value for a
reflectance constant, but this is frequently not the case.
The type of transmittance data stored in an object of these classes is
recorded as metadata in attribute Tfr.Type
. The functions described
here set and query this attribute. Contrary to directly accessing the
attribute, the query function consistently returns NA
both when the
attribute is set to NA
and when the attribute has not been set, as can
be the case of objects created with early versions of the package.
Absorptance, \alpha
, and absorbance, A
, are normally given as
"internal"
, and this is the assumption in this package. However,
as in some cases strict enforcement would prevent conversions, this is not
strictly enforced. (IUPAC, recommends use of the name attenuance
(formerly extinction) instead of
absorbance when light attenuation involves processes other than pure
absorption, such as scattering and luminescence.)
1 = \alpha + \rho + \tau
A_{10} = \log_{10} \frac{1}{\alpha} = - \log_{10} \alpha
When a solvent-only blank is used when measuring the absorbance of a
solution, the absorbance is not only "internal"
to the solution
(discounting reflections at the cuvette boundaries) but also discounts the
effect of the solvent itself. When measuring solid samples, like a sheet of
glass, in most cases a blank is not available.
For semitransparent objects like glass, it is important to take into account that reflections occur at each interface between substances with different refractive index.
This attribute is normally set when the source_spct
object
is created. But convertTfrType()
updates it when it changes due
to a conversion.
Value
x
, with the modified attribute in the case of setTfrType()
or
the character
value, "total"
or internal
, stored in
the "Tfr.type"
attribute of x
in the case
of getTfrType()
. If x
is not a filter_spct
or
an object_spct
object, NA
is returned.
Note
Function setTfrType()
alters x
itself by reference and in
addition returns x
invisibly. If x
is not
a filter_spct
or an object_spct object
, x
is not
modified. The behaviour of this function is 'unusual' in that the default
for parameter Tfr.type
is used only if x
does not already
have this attribute set.
See Also
convertTfrType
, filter_spct
,
and object_spct
.
Examples
my.spct <- polyester.spct
getTfrType(my.spct)
setTfrType(my.spct, "internal")
getTfrType(my.spct)