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.
setTfrType(x, Tfr.type = c("total", "internal"))getTfrType(x)
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.
a filter_spct
or an object_spct
object.
character string, either "total"
or "internal"
.
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.
convertTfrType
, filter_spct
,
and object_spct
.
my.spct <- polyester.spct
getTfrType(my.spct)
setTfrType(my.spct, "internal")
getTfrType(my.spct)
Run the code above in your browser using DataLab