GaskellIllumination¶
giant.ray_tracer.illumination
:
- class giant.ray_tracer.illumination.GaskellIllumination(global_albedo=1.0)[source]¶
This illumination model computes the intensity values as the weighted sum between the Lommel-Seeliger and Lambertian models, weighted using the phase angle.
Mathematically this is given by
\[I = \alpha_0\alpha\left(-(1-\beta)\mathbf{n}^T\mathbf{i} + \beta\frac{-\mathbf{n}^T\mathbf{i}}{-\mathbf{n}^T\mathbf{i}+\mathbf{n}^T\mathbf{e}}\right)\]where \(\alpha_0\) is the global albedo value, \(\alpha\) is the local albedo, \(\mathbf{n}\) is the unit normal vector, \(\mathbf{i}\) is the unit incidence vector, \(\mathbf{e}\) is the unit exidence vector, \(\beta=e^{\frac{-a}{60}}\), \(a=\cos^{-1}{-\mathbf{i}^T\mathbf{e}}\) is the phase angle in degrees, and \(I\) is the intensity value. Note that this differs from the
McEwenIllumination
model only in factor of 2 on the Lommel-Seeliger term. This was a typo in the SPC source code and is only included for consistency therein.This class makes use of a global albedo value stored in
global_albedo
which can be used to scale all outputs from this model. For most cases of OpNav, however, this can be ignored.Anywhere that is not visible (either because the
visible
flag was set to False, or the cosine of the incidence angle is less than 0) is set to 0 in the return.- Parameters:
global_albedo (float) – The global albedo used to scale all outputs.
- global_albedo: float¶
The global albedo used to scale all outputs
Summary of Methods