LinComb

class rt1_model.surface.LinComb(choices=None, **kwargs)

Class to generate linear-combinations of scattering distribution functions.

For details please look at the documentation (http://rt1.readthedocs.io/en/latest/model_specification.html#linear-combination-of-scattering-distributions)

Parameters:

choices ([ (float, ScatterObject) , (float, ScatterObject) , ...]) –

A list that contains the the individual scattering functions and the associated weighting-factors for the linear-combination.

The weights can be either numerical values or strings (which will be parsed as sympy expressions)

Examples

Defining linear-combinations of volume- or surface scattering distributions works completely similar:

>>> from rt1_model import volume
>>> V = volume.LinComb([(0.5, volume.Isotropic()), (0.5, volume.Rayleigh())])
>>> from rt1_model import surface
>>> V = surface.LinComb([(0.5, surface.Isotropic()),
                         (0.5, surface.HenyeyGreenstein(t="t", ncoefs=10))])

You can also use expressions for the weights!

>>> from rt1_model import surface
>>> V = surface.LinComb([("x", surface.Isotropic()),
                         ("1 - x", surface.HenyeyGreenstein(t="t", ncoefs=10))])

Methods

__init__([choices])

Class to generate linear-combinations of scattering distribution functions.

calc(t_0, t_ex, p_0, p_ex[, param_dict])

Calculate numerical value of the scattering function.

calc_scattering_angle(t_0, t_ex, p_0, p_ex, a)

Generalized scattering angle with respect to the given zenith-angles.

legendre_expansion(t_0, t_ex, p_0, p_ex)

Legendre-expansion of the scattering distribution function.

Attributes

legendre_coefficients

Legendre coefficients of the BRDF.

ncoefs

The number of coefficients used in the legendre expansion.

phase_function

Phase function as sympy expression for later evaluation.

scattering_angle_symbolic

The generalized scattering angle as a sympy expression.