Surface

The surface module contains structures for creating arrays related to DISORT’s surface treatment.

class pyrt.surface.Surface(albedo, n_streams, n_polar, n_azimuth, user_angles, only_fluxes, n_mug=200)[source]

A structure to compute all the surface parameterization.

Surface accepts parameters that define the surface arrays required by DISORT. The methods in Surface will compute those arrays.

Parameters
  • albedo (float) – The surface albedo. Only used by DISORT if the bottom boundary is Lambertian.

  • n_streams (int) – The number of streams.

  • n_polar (int) – The number of polar angles.

  • n_azimuth (int) – The number of azimuth angles.

  • n_mug (int) – The number of angle cosine quadrature points for integrating the bidirectional reflectivity.

  • user_angles (bool) –

  • only_fluxes (bool) –

Raises
  • TypeError – Raised if a number of things…

  • ValueError – Raised if albedo is not between 0 and 1.

Return type

None

property albedo: float

Get the input albedo.

Notes

In DISORT, this variable is named ALBEDO.

property bemst: numpy.ndarray

Get the directional emissivity at quadrature angles.

Notes

In DISORT, this variable is named BEMST.

property emust: numpy.ndarray

Get the directional emissivity at user angles.

Notes

In DISORT, this variable is named EMUST.

property lambertian: bool

Get whether the bottom boundary used in the model will be Lambertian.

Notes

In DISORT, this variable is named LAMBER.

make_hapke(b0, h, w, mu, mu0, phi, phi0, beam_flux)[source]

Make a basic Hapke surface.

Parameters
  • b0 (float) – The strength of the opposition surge.

  • h (float) – The width of the opposition surge.

  • w (float) – The surface single scattering albedo.

  • mu (float) – The cosine of emission.

  • mu0 (float) – The cosine of incidence.

  • phi (float) – The azimuth angle.

  • phi0 (float) – Phi0

  • beam_flux (float) – The incident beam flux.

Return type

None

See also

Angles, IncidentFlux

make_hapkeHG2(b0, h, w, asym, frac, mu, mu0, phi, phi0, beam_flux)[source]

Make a Hapke surface with 2 lobed Henyey-Greenstein surface phase function.

Parameters
  • b0 (float) – The strength of the opposition surge.

  • h (float) – The width of the opposition surge.

  • w (float) – The surface single scattering albedo.

  • asym (float) – The asymmetry parameter.

  • frac (float) – The forward scattering fraction.

  • mu (float) – The cosine of emission.

  • mu0 (float) – The cosine of incidence.

  • phi (float) – The azimuth angle.

  • phi0 (float) – Phi0

  • beam_flux (float) – The incident beam flux.

Return type

None

See also

Angles, IncidentFlux

make_hapkeHG2_roughness(b0, h, w, asym, roughness, frac, mu, mu0, phi, phi0, beam_flux)[source]

Make a Hapke surface with 2 lobed Henyey-Greenstein surface phase function and surface roughness parameter.

Parameters
  • b0 (float) – The strength of the opposition surge.

  • h (float) – The width of the opposition surge.

  • w (float) – The surface single scattering albedo.

  • asym (float) – The asymmetry parameter.

  • frac (float) – The forward scattering fraction.

  • roughness (float) – The roughness parameter.

  • mu (float) – The cosine of emission.

  • mu0 (float) – The cosine of incidence.

  • phi (float) – The azimuth angle.

  • phi0 (float) – Phi0

  • beam_flux (float) – The incident beam flux.

Return type

None

See also

Angles, IncidentFlux

make_lambertian()[source]

Make the surface a Lambertian surface.

Return type

None

property rho_accurate: numpy.ndarray

Get the analytic BRDF results.

Notes

In DISORT, this variable is named RHO_ACCURATE.

property rhoq: numpy.ndarray

Get the quadrature fourier expanded BRDF.

Notes

In DISORT, this variable is named RHOQ.

property rhou: numpy.ndarray

Get the user defined fourier expanded BRDF.

Notes

In DISORT, this variable is named RHOU.