SPART.SAILH module

SAILH Canopy model.

Ported from the original run_spart matlab code.

SAILH model outlined in:
Theory of radiative transfer models applied in optical remote sensing
  • W Verhoef 1998
class src.spart.sailh.Angles(sol_angle, obs_angle, rel_angle)

Bases: object

Class to hold solar zenith, observation zenith, and relative azimuth angles.

Parameters:
  • sol_angle (float) – Solar zenith angle, degrees
  • obs_angle (float) – Observer zenith angle, degrees
  • rel_angle (float) – Relative azimuth angle, degrees
sol_angle

Solar zenith angle, degrees

Type:float
obs_angle

Observer zenith angle, degrees

Type:float
rel_angle

Relative azimuth angle, degrees

Type:float
class src.spart.sailh.CanopyReflectances(rso, rdo, rsd, rdd)

Bases: object

class src.spart.sailh.CanopyStructure(LAI, LIDFa, LIDFb, q)

Bases: object

Class to hold canopy properties. Some are user specified, others are SAIL model assumptions.

Parameters:
  • LAI (float) – Leaf area index, 0 to 8
  • LIDFa (float) – Leaf inclination distribution function parameter a, range -1 to 1
  • LIDFb (float) – Leaf inclination distribution function parameter b, range -1 to 1
  • q (float) – Canopy hotspot parameter: leaf width / canopy height, range 0 to 0.2
LAI

Leaf area index, 0 to 8

Type:float
LIDFa

Leaf inclination distribution function parameter a, range -1 to 1

Type:float
LIDFb

Leaf inclination distribution function parameter b, range -1 to 1

Type:float
q

Canopy hotspot parameter: leaf width / canopy height, range 0 to 0.2

Type:float
nlayers

Number of layers in canopy, 60 (SAIL assumption)

Type:int
nlincl

Number of different leaf inclination angles, 13 (SAIL assumption)

Type:int
nlazi

Number of different leaf azimuth angles, 36 (SAIL assumption)

Type:int
lidf

Leaf inclination distribution function, calculated from LIDF params

Type:np.array
src.spart.sailh.SAILH(soil, leafopt, canopy, angles)

Run the SAILH model.

Parameters:
  • soil (bsm.SoilOptics) – Contains soil reflectance spectra for 400 nm to 2400 nm
  • leafopt (prospect_5d.LeafOptics) – Contains leaf reflectance and transmittance spectra, 400 nm to 2400 nm, 2500 to 15000 nm, and 16000 to 50000 nm.
  • canopy (CanopyStructure) – Contains canopy information and SAIL model assumptions
  • angles (Angles) – Holds solar zenith, observer zenith, and relative azimuth angles
Returns:

Contains the four canopy reflectances arrays as attributes rso, rdo, rsd, rdd.

Return type:

CanopyReflectances

src.spart.sailh.calculate_leafangles(LIDFa, LIDFb)

Calculate the Leaf Inclination Distribution Function as outlined by Verhoef in paper cited at the top of this script.

Parameters:
  • LIDFa (float) – Leaf inclination distribution function parameter a, range -1 to 1
  • LIDFb (float) – Leaf inclination distribution function parameter b, range -1 to 1
Returns:

Leaf inclination distribution function, calculated from LIDF

Return type:

np.array