Models#
The pydirectional package currently implements the following BRDF models:
Ross-Thick Li-Sparse (RTLS)
Maignan
Roujean
Rahman-Pinty-Verstraete (RPV)
Hapke
Note
Several models use the phase angle, g, defined as
Model Overview#
BRDF Model |
Name of Model Class |
Model Input Parameters |
|---|---|---|
RTLS |
|
‘iso’, ‘vol’, ‘geo’ |
Maignan |
|
‘iso’, ‘vol’, ‘geo’ |
Roujean |
|
‘iso’, ‘vol’, ‘geo’ |
RPV |
|
‘rho_0’, ‘k’, ‘theta’, ‘rho_c’ |
RPVOmega |
|
‘rho_0’, ‘k’, ‘theta’, ‘omega’ |
Hapke: 6-Parameter |
|
‘w’, ‘B_0’, ‘h’, ‘b’, ‘c’, ‘theta’ |
Hapke: 4-Parameter |
|
‘w’, ‘B_0’, ‘h’, ‘b’ |
Hapke: 3-Parameter |
|
‘w’, ‘B_0’, ‘h’ |
Note
If the 3 parameter implementation of the RPV model is being used, enter ‘rho_c’ as equal to the ‘rho_0’ data.
RTLS#
The Ross-Thick Li-Sparse (RTLS) model is a kernel-based model. The kernel-based models implemened
within pydirectional all consist of three kernels: an isotropic element; a volumetric kernel representing
surface structures; a geometric kernel representing shadowing effects. The RTLS model uses the
Ross-Thick volumetic kernel and the Li-Sparse geometric kernel. The model parameters for the RTLS model
are coefficients for each kernel, named iso, vol, and geo.
Maignan#
The Maignan model is a kernel-based model which uses the same isotropic and geometric components as RTLS however, rather than teh Ross-Thick kernel, the Maignan volumetric kernel is used.
where \(\phi_0\) is a constant equal to 1.5 degrees.
Roujean#
The Roujean model is a kernel-based model which uses the same isotopic and volumetric components as RTLS however, rather than the Li-Sparse kernel, the Roujean geometric kernel is used.
RPV#
The RPV model is not kernel-based. It contains 4 parameters, \(\rho_{0}\),
k, \(\theta\), and \(\rho_{c}\). If the three parameter implentation is used,
\(\rho_{c} = \rho_{0}\). pydirectional also implements the RPVOmega
model, here \(\rho_c = \Omega \cdot \rho_{0}\) with \(\Omega\) as the
4th input parameter rather than \(\rho_{c}\).
\(M_1\) represents the angular field shape, \(F_{HG}\) represents the scattering element and \(H\) represents the hotspot contribution.
Hapke#
The Hapke BRDF model was developed to describe the reflectance properties of
particulate surfaces.
Three implementations of the Hapke model are included in the pydirectional package:
3-Parameter (as used in Libradtran)
4-Parameter (as used in 6S)
6-Parameter (as used in Eradiate)
In all implementations,
The functions, \(p()\), \(B()\), \(H()\), and \(S()\) differ between implementations and take various parameters as inputs. The physical basis of the functions is the same between all the implementations. \(p()\) is the average phase function, \(B()\) accounts for hotspot effects, \(H()\) accounts for multiple scattering, and \(S()\) is a correction factor describing surface roughness. \(S()\) is only included in the Eradiate implementation, in other implementations it is set to 1.
The HapkeEradiate model uses the parameters, w, \(B_{0}\), h, b, c, and \(\theta\).
w is the single scattering albedo, b is the asymmetry parameter, c is the backscatter fraction,
\(B_0\) is the amplitude of the backscattering function, h is the angular width of the backscattering function,
and \(\theta\) is the roughness angle in degrees. w, b, c, and \(B_{0}\) can take values between
0 and 1 inclusive. h can take values between 0 and 1, excluding 0. \(\theta\) can take
values between 0 and 90 degrees.
The Hapke6S model uses the parameters w, \(B_{0}\), h, and b. The parameters represent the same
physical values as in the Eradiate implementation, however b can take values from -1
to 1 inclusive.
The HapkeLibradtran model uses the parameters w, \(B_{0}\), and h. The parameters represent
the same physical values as in the Eradiate implementation.