crt1d.leaf_area#

Distribute leaf area amongst model layers.

Based on a quantitative description of the leaf area profile, and desired number of model layers, allocate equal increments of dlai to layers, and assign heights (z; m) to give the desired leaf area profile.

LAI is cumulative and defined at the model interface levels.

Module Contents#

Functions#

distribute_lai_beta(h_c, LAI, n, *[, h_min])

Create LAI profile using beta distribution for leaf area density.

distribute_lai_beta_bonan(h_c, LAI, n, *[, h_min, p, q])

Beta distribution based on Bonan SP 2.1.

distribute_lai_from_cdd(cdd, n)

Create LAI profile based on input descriptors of the leaf area distribution.

distribute_lai_gamma(h_c, LAI, n)

Create LAI profile using Gamma distribution for leaf area density.

distribute_lai_weibull(h_c, LAI, n, *[, h_min, b, c, ...])

Leaf area profile with equal LAI increments from the Weibull distribution

distribute_lai_weibull_z(z, LAI, h[, hb, b, c, species])

Leaf area profile from Weibull distribution for given z grid.

crt1d.leaf_area.distribute_lai_beta(h_c, LAI, n, *, h_min=0.5)#

Create LAI profile using beta distribution for leaf area density. This uses a set fractional height of maximum LAD and corresponding beta distribution shape.

Parameters:
  • h_c (float) – canopy height

  • n (int) – number of layers (LAI/interface levels)

  • LAI (float) – total LAI

  • h_min (float) – height above ground of the canopy bottom

Returns:

NamedTuple

lainumpy.ndarray

cumulative LAI profile; accumulates from top, so decreasing with z

ladnumpy.ndarray

leaf area density profile

znumpy.ndarray

height above ground (increasing)

crt1d.leaf_area.distribute_lai_beta_bonan(h_c, LAI, n, *, h_min=0.5, p=3.5, q=2.0)#

Beta distribution based on Bonan SP 2.1.

Parameters:
  • h_c (float) – canopy height

  • n (int) – number of layers (LAI/interface levels)

  • LAI (float) – total LAI

  • h_min (float) – height above ground of the canopy bottom

  • p (float) – beta distribution shape parameters

  • q (float) – beta distribution shape parameters

Returns:

NamedTuple

lainumpy.ndarray

cumulative LAI profile; accumulates from top, so decreasing with z

ladnumpy.ndarray

leaf area density profile

znumpy.ndarray

height above ground (increasing)

crt1d.leaf_area.distribute_lai_from_cdd(cdd, n)#

Create LAI profile based on input descriptors of the leaf area distribution.

Parameters:
  • cdd (dict) – canopy description dict. contains many things. see the default CSV for example

  • n (int) – desired number of levels (LAI/interface levels)

crt1d.leaf_area.distribute_lai_gamma(h_c, LAI, n)#

Create LAI profile using Gamma distribution for leaf area density.

Parameters:
  • h_c (float) – canopy height

  • n (int) – number of layers (LAI/interface levels)

  • LAI (float) – total LAI

Returns:

NamedTuple

lainumpy.ndarray

cumulative LAI profile; accumulates from top, so decreasing with z

ladnumpy.ndarray

leaf area density profile

znumpy.ndarray

height above ground (increasing)

crt1d.leaf_area.distribute_lai_weibull(h_c, LAI, n, *, h_min=0.5, b=None, c=None, species=None)#

Leaf area profile with equal LAI increments from the Weibull distribution using distribute_lai_weibull_z() and interpolation (as such, lad(z) and lai(z) might not be completely consistent).

Parameters:
  • h_c (float) – canopy height

  • n (int) – number of layers (LAI/interface levels)

  • LAI (float) – total LAI

  • h_min (float, optional) – Canopy minimum height above ground. The default is 0.5.

  • b (float, optional) – Weibull shape parameter 1. The default is None.

  • c (TYPE, optional) – Weibull shape parameter 2. The default is None.

  • species (str, optional) – One of ‘spruce’, ‘spruce’, or ‘birch’. Used to look up typical shape parameter values. The default is None.

Returns:

NamedTuple

lainumpy.ndarray

cumulative LAI profile; accumulates from top, so decreasing with z

ladnumpy.ndarray

leaf area density profile

znumpy.ndarray

height above ground (increasing)

crt1d.leaf_area.distribute_lai_weibull_z(z, LAI, h, hb=0.0, *, b=None, c=None, species=None)#

Leaf area profile from Weibull distribution for given z grid.

Samuli’s notes:

Generates leaf-area density profile from Weibull-distribution
Args:
    z: height array (m), monotonic and constant steps
    LAI: leaf-area index (m2m-2)
    h: canopy height (m), scalar
    hb: crown base height (m), scalar
    b: Weibull shape parameter 1, scalar
    c: Weibull shape parameter 2, scalar
    species: 'pine', 'spruce', 'birch' to use table values
Returns:
    LAD: leaf-area density (m2m-3), array
SOURCE:
    Teske, M.E., and H.W. Thistle, 2004, A library of forest canopy structure for
    use in interception modeling. Forest Ecology and Management, 198, 341-350.
    Note: their formula is missing brackets for the scale param.
    Here their profiles are used between hb and h
AUTHOR:
    Gabriel Katul, 2009. Coverted to Python 16.4.2014 / Samuli Launiainen