BRDF Module

The BRDF module provides access to the SCATMECH class BRDF_Model. It defines the Python class BRDF_Model that has two member functions BRDF and MuellerBRDF.

class pySCATMECH.brdf.BRDF_Model(*args, **kwargs)

Bases: Model

A class for handling BRDF Models.

Arguments *args and **kwargs can contain parameters passed to the model.

One form is to pass a dict of {“parameter” : value, … }.

The keyword argument ‘wavelength’ is automatically changed to ‘lambda’, since lambda is a Python keyword. However, as a str, it should be ‘lambda’.

Parameters:

name (str) – The name of a SCATMECH model inheriting BRDF_Model

BRDF(thetai=0, thetas=0, phis=0, rotation=0, coords='psps', inc=StokesVector(1, 0, 0, 0), sens=StokesVector(1, 0, 0, 0))

Return the scalar BRDF in a given geometry.

Parameters:
  • thetai (float) – Polar angle of incidence in radians.

  • thetas (float) – Polar angle of viewing in radians.

  • phis (float, optional) – Azimuthal angle of viewing in radians. (Note: Specular occurs when thetai = thetas, phis = 0) (default is 0)

  • rotation (float, optional) – Sample rotation angle in radians. (Default is 0)

  • coords (string, optional) – The coordinate system for the Mueller matrix, either “psps”, “xyxy”, or “plane”. (Default is psps)

  • inc (StokesVector or 4-list of float or int, optional) – Incident polarization as Stokes vector. (Default is unpolarized)

  • sens (StokesVector or 4-list of float or int, optional) – Polarization sensitivity of the viewer as a Stokes vector. (Default is unpolarized)

Returns:

BRDF – The Mueller matrix BRDF for the given incident and viewing directions and polarizations.

Return type:

float

JonesBRDF(thetai=0, thetas=0, phis=0, rotation=0, coords='psps')

Evaluate the Jones matrix BRDF in a given geometry, and coordinate system. The result, when typecast to a Mueller matrix, is the Mueller matrix BRDF, but maintains phase, if the model has phase information.

Parameters:
  • thetai (float) – Polar angle of incidence in radians.

  • thetas (float) – Polar angle of viewing in radians.

  • phis (float, optional) – Azimuthal angle of viewing in radians. (Note: Specular occurs when thetai = thetas, phis = 0) (Default is 0)

  • rotation (float, optional) – Sample rotation angle in radians. (Default is 0)

  • coords (string, optional) – The coordinate system for the Mueller matrix, either “psps”, “xyxy”, or “plane.” (Default is “psps”)

Returns:

BRDF – The Jones matrix BRDF

Return type:

numpy.array of complex (2x2)

MuellerBRDF(thetai=0, thetas=0, phis=0, rotation=0, coords='psps')

Evaluate the Mueller matrix BRDF in a given geometry, and coordinate system.

Parameters:
  • thetai (float) – Polar angle of incidence in radians.

  • thetas (float) – Polar angle of viewing in radians.

  • phis (float, optional) – Azimuthal angle of viewing in radians. (Note: Specular occurs when thetai = thetas, phis = 0) (Default is 0)

  • rotation (float, optional) – Sample rotation angle in radians. (Default is 0)

  • coords (string, optional) – The coordinate system for the Mueller matrix, either “psps”, “xyxy”, or “plane.” (Default is “psps”)

Returns:

BRDF – The Mueller matrix BRDF

Return type:

MuellerMatrix