Based on Hapke (2002). Optionally including the shadow-hiding opposition effect term.
Example:
using HapkeModel
model = ScatteringModel(HenyeyGreenstein(0.5), 0.1)
r = BRDF(model, 0.0, 0.0, 0.0)
To define a scattering model without the Shadow-Hiding Opposition Effect (SHOE) term, call model = ScatteringModel(P, w), where P is a PhaseFunction and w is the single-scattering albedo.
To use the SHOE term, define the model with:
model = ScatteringModel(P, w, hs), where P is aPhaseFunction,wis the single-scattering albedo, andhsis the shadowing parameter (eq. 28-30 in Hapke, 2000), ormodel = ScatteringModel(P, w, E, a, phi), where P is aPhaseFunction,wis the single-scattering albedo,Eis the extinction coefficient in the medium,athe mean particle radius, andphithe filling factor (eq. 30 in Hapke, 2000).
Be wary of the actual physical interpretation of the parameter values.
There are four options for PhaseFunction:
Isotropic(), for isotropic scatteringRayleigh()for Rayleigh scatteringHenyeyGreenstein(xi), for Henyey-Greenstein scattering, wherexiis the asymmetry parameter.DoubleHenyeyGreenstein(c, xi), for Henyey-Greenstein scattering, wherecis the weight parameter andxiis the asymmetry parameter.
To compute the value of the Hapke BDRF for a given scattering model, call BDRF(model, mu0, mu, g) where model is a ScatteringModel object, mu0 and mu are the cosines of incidence and emergence, and g is the phase angle.