landlab.components.vegetation_dynamics.vegetation_dynamics¶
- class Vegetation[source]¶
Bases:
Component
Landlab component that simulates net primary productivity, biomass and leaf area index at each cell based on inputs of root-zone average soil moisture.
Ref: Zhou, X., Istanbulluoglu, E., & Vivoni, E. R. (2013). Modeling the ecohydrological role of aspect controlled radiation on tree grass shrub coexistence in a semiarid climate. Water Resources Research, 49(5), 2872-2895.
Code author: Sai Nudurupati and Erkan Istanbulluoglu
Examples
>>> from landlab import RasterModelGrid >>> from landlab.components import Vegetation
Create a grid on which to simulate vegetation dynamics.
>>> grid = RasterModelGrid((5, 4), xy_spacing=(0.2, 0.2))
The grid will need some input data. To check the names of the fields that provide the input to this component, use the input_var_names class property.
>>> sorted(Vegetation.input_var_names) ['surface__evapotranspiration', 'surface__potential_evapotranspiration_30day_mean', 'surface__potential_evapotranspiration_rate', 'vegetation__plant_functional_type', 'vegetation__water_stress']
>>> sorted(Vegetation.units) [('surface__evapotranspiration', 'mm'), ('surface__potential_evapotranspiration_30day_mean', 'mm'), ('surface__potential_evapotranspiration_rate', 'mm'), ('vegetation__cover_fraction', 'None'), ('vegetation__dead_biomass', 'g m^-2 d^-1'), ('vegetation__dead_leaf_area_index', 'None'), ('vegetation__live_biomass', 'g m^-2 d^-1'), ('vegetation__live_leaf_area_index', 'None'), ('vegetation__plant_functional_type', 'None'), ('vegetation__water_stress', 'None')]
Provide all the input fields.
>>> grid["cell"]["vegetation__plant_functional_type"] = np.zeros( ... grid.number_of_cells, dtype=int ... ) >>> grid["cell"]["surface__evapotranspiration"] = 0.2 * np.ones( ... grid.number_of_cells ... ) >>> grid["cell"]["surface__potential_evapotranspiration_rate"] = np.array( ... [0.25547770, 0.25547770, 0.22110221, 0.22110221, 0.24813062, 0.24813062] ... ) >>> grid["cell"]["surface__potential_evapotranspiration_30day_mean"] = np.array( ... [0.25547770, 0.25547770, 0.22110221, 0.22110221, 0.24813062, 0.24813062] ... ) >>> grid["cell"]["vegetation__water_stress"] = 0.01 * np.ones(grid.number_of_cells)
Instantiate the ‘Vegetation’ component.
>>> Veg = Vegetation(grid)
>>> Veg.grid.number_of_cell_rows 3 >>> Veg.grid.number_of_cell_columns 2 >>> Veg.grid is grid True >>> import numpy as np >>> sorted(Vegetation.output_var_names) ['vegetation__cover_fraction', 'vegetation__dead_biomass', 'vegetation__dead_leaf_area_index', 'vegetation__live_biomass', 'vegetation__live_leaf_area_index']
>>> np.all(grid.at_cell["vegetation__live_leaf_area_index"] == 0.0) True
>>> Veg.update()
>>> np.all(grid.at_cell["vegetation__live_leaf_area_index"] == 0.0) False
References
Required Software Citation(s) Specific to this Component
None Listed
Additional References
Zhou, X., Istanbulluoglu, E., and Vivoni, E. R.: Modeling the ecohydrological role of aspect-controlled radiation on tree-grass-shrub coexistence in a semiarid climate, Water Resour. Res., 49, 2872– 2895, doi:10.1002/wrcr.20259, 2013.
- Parameters:
grid (RasterModelGrid) – A grid.
Blive_init (float, optional) – Initial value for vegetation__live_biomass. Converted to field.
Bdead_init (float, optional) – Initial value for vegetation__dead_biomass. Coverted to field.
ETthreshold_up (float, optional) – Potential Evapotranspiration (PET) threshold for growing season (mm/d).
ETthreshold_down (float, optional) – PET threshold for dormant season (mm/d).
Tdmax (float, optional) – Constant for dead biomass loss adjustment (mm/d).
w (float, optional) – Conversion factor of CO2 to dry biomass (Kg DM/Kg CO2).
WUE (float, optional) – Water Use Efficiency - ratio of water used in plant water lost by the plant through transpiration (KgCO2Kg-1H2O).
LAI_max (float, optional) – Maximum leaf area index (m2/m2).
cb (float, optional) – Specific leaf area for green/live biomass (m2 leaf g-1 DM).
cd (float, optional) – Specific leaf area for dead biomass (m2 leaf g-1 DM).
ksg (float, optional) – Senescence coefficient of green/live biomass (d-1).
kdd (float, optional) – Decay coefficient of aboveground dead biomass (d-1).
kws (float, optional) – Maximum drought induced foliage loss rate (d-1).
method (str) – Method name.
Tr (float, optional) – Storm duration (hours).
Tb (float, optional) – Inter-storm duration (hours).
PETthreshold_switch (int, optional) – Flag to indiate the PET threshold. This controls whether the threshold is for growth (1) or dormancy (any other value).
- property PETthreshold_switch¶
Flag to indiate the PET threshold.
This controls whether the threshold is for growth (1) or dormancy (any other value).
- property Tb¶
Storm duration (hours).
- property Tr¶
Inter-storm duration (hours).
- __init__(grid, Blive_init=102.0, Bdead_init=450.0, ETthreshold_up=3.8, ETthreshold_down=6.8, Tdmax=10.0, w=0.55, WUE_grass=0.01, LAI_max_grass=2.0, cb_grass=0.0047, cd_grass=0.009, ksg_grass=0.012, kdd_grass=0.013, kws_grass=0.02, WUE_shrub=0.0025, LAI_max_shrub=2.0, cb_shrub=0.004, cd_shrub=0.01, ksg_shrub=0.002, kdd_shrub=0.013, kws_shrub=0.02, WUE_tree=0.0045, LAI_max_tree=4.0, cb_tree=0.004, cd_tree=0.01, ksg_tree=0.002, kdd_tree=0.013, kws_tree=0.01, WUE_bare=0.01, LAI_max_bare=0.01, cb_bare=0.0047, cd_bare=0.009, ksg_bare=0.012, kdd_bare=0.013, kws_bare=0.02, method='Grid', PETthreshold_switch=0, Tb=24.0, Tr=0.01)[source]¶
- Parameters:
grid (RasterModelGrid) – A grid.
Blive_init (float, optional) – Initial value for vegetation__live_biomass. Converted to field.
Bdead_init (float, optional) – Initial value for vegetation__dead_biomass. Coverted to field.
ETthreshold_up (float, optional) – Potential Evapotranspiration (PET) threshold for growing season (mm/d).
ETthreshold_down (float, optional) – PET threshold for dormant season (mm/d).
Tdmax (float, optional) – Constant for dead biomass loss adjustment (mm/d).
w (float, optional) – Conversion factor of CO2 to dry biomass (Kg DM/Kg CO2).
WUE (float, optional) – Water Use Efficiency - ratio of water used in plant water lost by the plant through transpiration (KgCO2Kg-1H2O).
LAI_max (float, optional) – Maximum leaf area index (m2/m2).
cb (float, optional) – Specific leaf area for green/live biomass (m2 leaf g-1 DM).
cd (float, optional) – Specific leaf area for dead biomass (m2 leaf g-1 DM).
ksg (float, optional) – Senescence coefficient of green/live biomass (d-1).
kdd (float, optional) – Decay coefficient of aboveground dead biomass (d-1).
kws (float, optional) – Maximum drought induced foliage loss rate (d-1).
method (str) – Method name.
Tr (float, optional) – Storm duration (hours).
Tb (float, optional) – Inter-storm duration (hours).
PETthreshold_switch (int, optional) – Flag to indiate the PET threshold. This controls whether the threshold is for growth (1) or dormancy (any other value).
- static __new__(cls, *args, **kwds)¶
- cite_as = ''¶
- property coords¶
Return the coordinates of nodes on grid attached to the component.
- property current_time¶
Current time.
Some components may keep track of the current time. In this case, the
current_time
attribute is incremented. Otherwise it is set to None.- Return type:
current_time
- definitions = (('surface__evapotranspiration', 'actual sum of evaporation and plant transpiration'), ('surface__potential_evapotranspiration_30day_mean', '30 day mean of surface__potential_evapotranspiration'), ('surface__potential_evapotranspiration_rate', 'potential sum of evaporation and potential transpiration'), ('vegetation__cover_fraction', 'fraction of land covered by vegetation'), ('vegetation__dead_biomass', 'weight of dead organic mass per unit area - measured in terms of dry matter'), ('vegetation__dead_leaf_area_index', 'one-sided dead leaf area per unit ground surface area'), ('vegetation__live_biomass', 'weight of green organic mass per unit area - measured in terms of dry matter'), ('vegetation__live_leaf_area_index', 'one-sided green leaf area per unit ground surface area'), ('vegetation__plant_functional_type', 'classification of plants (int), grass=0, shrub=1, tree=2, bare=3, shrub_seedling=4, tree_seedling=5'), ('vegetation__water_stress', 'parameter that represents nonlinear effects of water deficit on plants'))¶
- classmethod from_path(grid, path)¶
Create a component from an input file.
- property grid¶
Return the grid attached to the component.
- initialize(Blive_init=102.0, Bdead_init=450.0, ETthreshold_up=3.8, ETthreshold_down=6.8, Tdmax=10.0, w=0.55, WUE_grass=0.01, LAI_max_grass=2.0, cb_grass=0.0047, cd_grass=0.009, ksg_grass=0.012, kdd_grass=0.013, kws_grass=0.02, WUE_shrub=0.0025, LAI_max_shrub=2.0, cb_shrub=0.004, cd_shrub=0.01, ksg_shrub=0.002, kdd_shrub=0.013, kws_shrub=0.02, WUE_tree=0.0045, LAI_max_tree=4.0, cb_tree=0.004, cd_tree=0.01, ksg_tree=0.002, kdd_tree=0.013, kws_tree=0.01, WUE_bare=0.01, LAI_max_bare=0.01, cb_bare=0.0047, cd_bare=0.009, ksg_bare=0.012, kdd_bare=0.013, kws_bare=0.02)[source]¶
- Parameters:
grid (RasterModelGrid) – A grid.
Blive_init (float, optional) – Initial value for vegetation__live_biomass. Converted to field.
Bdead_init (float, optional) – Initial value for vegetation__dead_biomass. Coverted to field.
ETthreshold_up (float, optional) – Potential Evapotranspiration (PET) threshold for growing season (mm/d).
ETthreshold_down (float, optional) – PET threshold for dormant season (mm/d).
Tdmax (float, optional) – Constant for dead biomass loss adjustment (mm/d).
w (float, optional) – Conversion factor of CO2 to dry biomass (Kg DM/Kg CO2).
WUE (float, optional) – Water Use Efficiency - ratio of water used in plant water lost by the plant through transpiration (KgCO2Kg-1H2O).
LAI_max (float, optional) – Maximum leaf area index (m2/m2).
cb (float, optional) – Specific leaf area for green/live biomass (m2 leaf g-1 DM).
cd (float, optional) – Specific leaf area for dead biomass (m2 leaf g-1 DM).
ksg (float, optional) – Senescence coefficient of green/live biomass (d-1).
kdd (float, optional) – Decay coefficient of aboveground dead biomass (d-1).
kws (float, optional) – Maximum drought induced foliage loss rate (d-1).
- initialize_optional_output_fields()¶
Create fields for a component based on its optional field outputs, if declared in _optional_var_names.
This method will create new fields (without overwrite) for any fields output by the component as optional. New fields are initialized to zero. New fields are created as arrays of floats, unless the component also contains the specifying property _var_type.
- initialize_output_fields(values_per_element=None)¶
Create fields for a component based on its input and output var names.
This method will create new fields (without overwrite) for any fields output by, but not supplied to, the component. New fields are initialized to zero. Ignores optional fields. New fields are created as arrays of floats, unless the component specifies the variable type.
- Parameters:
values_per_element (int (optional)) – On occasion, it is necessary to create a field that is of size (n_grid_elements, values_per_element) instead of the default size (n_grid_elements,). Use this keyword argument to acomplish this task.
- input_var_names = ('surface__evapotranspiration', 'surface__potential_evapotranspiration_30day_mean', 'surface__potential_evapotranspiration_rate', 'vegetation__plant_functional_type', 'vegetation__water_stress')¶
- name = 'Vegetation'¶
- optional_var_names = ()¶
- output_var_names = ('vegetation__cover_fraction', 'vegetation__dead_biomass', 'vegetation__dead_leaf_area_index', 'vegetation__live_biomass', 'vegetation__live_leaf_area_index')¶
- property shape¶
Return the grid shape attached to the component, if defined.
- unit_agnostic = False¶
- units = (('surface__evapotranspiration', 'mm'), ('surface__potential_evapotranspiration_30day_mean', 'mm'), ('surface__potential_evapotranspiration_rate', 'mm'), ('vegetation__cover_fraction', 'None'), ('vegetation__dead_biomass', 'g m^-2 d^-1'), ('vegetation__dead_leaf_area_index', 'None'), ('vegetation__live_biomass', 'g m^-2 d^-1'), ('vegetation__live_leaf_area_index', 'None'), ('vegetation__plant_functional_type', 'None'), ('vegetation__water_stress', 'None'))¶
- update()[source]¶
Update fields with current loading conditions.
This method looks to the properties
PETthreshold_switch
,Tb
, andTr
and uses their values to calculate the new field values.
- classmethod var_definition(name)¶
Get a description of a particular field.
- Parameters:
name (str) – A field name.
- Returns:
A description of each field.
- Return type:
tuple of (name, *description*)
- classmethod var_help(name)¶
Print a help message for a particular field.
- Parameters:
name (str) – A field name.
- classmethod var_loc(name)¶
Location where a particular variable is defined.
- var_mapping = (('surface__evapotranspiration', 'cell'), ('surface__potential_evapotranspiration_30day_mean', 'cell'), ('surface__potential_evapotranspiration_rate', 'cell'), ('vegetation__cover_fraction', 'cell'), ('vegetation__dead_biomass', 'cell'), ('vegetation__dead_leaf_area_index', 'cell'), ('vegetation__live_biomass', 'cell'), ('vegetation__live_leaf_area_index', 'cell'), ('vegetation__plant_functional_type', 'cell'), ('vegetation__water_stress', 'cell'))¶