landlab

VegCA: Simulate plant competition with cellular automaton model for grass, shrubs, and trees

class VegCA(*args, **kwds)[source]

Bases: landlab.core.model_component.Component

Landlab component that simulates inter-species plant competition using a 2D cellular automata model.

This code is based on Cellular Automata Tree Grass Shrub Simulator (CATGraSS). It simulates spatial competition of multiple plant functional types through establishment and mortality. In the current code, tree, grass and shrubs are used.

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

Construction:

VegCA(grid, Pemaxg=0.35, ING=2., ThetaGrass=0.62, PmbGrass=0.05,
    Pemaxsh=0.2, ThetaShrub=0.8, PmbShrub=0.01, tpmaxShrub=600,
    Pemaxtr=0.25, ThetaTree=0.72, PmbTree=0.01, tpmaxTree=350,
    ThetaShrubSeedling=0.64, PmbShrubSeedling=0.03,
    tpmaxShrubSeedling=18, ThetaTreeSeedling=0.64,
    PmbTreeSeedling=0.03, tpmaxTreeSeedling=18)
Parameters:

grid: RasterModelGrid

A grid.

Pemaxg: float, optional

Maximal establishment probability of grass.

ING: float, optional

Parameter to define allelopathic effect of creosote on grass.

ThetaGrass: float, optional

Drought resistance threshold of grass.

PmbGrass: float, optional

Background mortality probability of grass.

Pemaxsh: float, optional

Maximal establishment probability of shrub.

ThetaShrub: float, optional

Drought resistance threshold of shrub.

PmbShrub: float, optional

Background mortality probability of shrub.

tpmaxShrub: float, optional

Maximum age of shrub (years).

Pemaxtr: float, optional

Maximal establishment probability of tree.

Thetatree: float, optional

Drought resistance threshold of tree.

PmbTree: float, optional

Background mortality probability of tree.

tpmaxTree: float, optional

Maximum age of tree (years).

ThetaShrubSeedling: float, optional

Drought resistance threshold of shrub seedling.

PmbShrubSeedling: float, optional

Background mortality probability of shrub seedling.

tpmaxShrubSeedling: float, optional

Maximum age of shrub seedling (years).

ThetaTreeSeedling: float, optional

Drought resistance threshold of tree seedling.

PmbTreeSeedling: float, optional

Background mortality probability of tree seedling.

tpmaxTreeSeedling: float, optional

Maximum age of tree seedling (years).

Examples

>>> from landlab import RasterModelGrid
>>> from landlab.components import VegCA
>>> grid = RasterModelGrid((5, 4), spacing=(0.2, 0.2))
>>> VegCA.name
'Cellular Automata Plant Competition'
>>> sorted(VegCA.output_var_names)
['plant__age', 'plant__live_index']
>>> sorted(VegCA.units) 
[('plant__age', 'Years'),
 ('plant__live_index', 'None'),
 ('vegetation__cumulative_water_stress', 'None'),
 ('vegetation__plant_functional_type', 'None')]
>>> grid['cell']['vegetation__plant_functional_type']= np.arange(
...        0, grid.number_of_cells, dtype=int)
>>> grid['cell']['vegetation__cumulative_water_stress'] = np.ones(
...        grid.number_of_cells)
>>> ca_veg = VegCA(grid)
>>> ca_veg.grid.number_of_cell_rows
3
>>> ca_veg.grid.number_of_cell_columns
2
>>> ca_veg.grid is grid
True
>>> import numpy as np
>>> A = np.copy(grid['cell']['plant__age'])
>>> ca_veg.update()
>>> np.alltrue(grid['cell']['plant__age'] == A)
False
update(time_elapsed=1, Edit_VegCov=True)[source]

Update fields with current loading conditions.

Parameters:

time_elapsed: int, optional

Time elapsed - time step (years).

Edit_VegCov: switch (0 or 1), optional

If Edit_VegCov=1, an optional field ‘vegetation__boolean_vegetated’ will be output, (i.e.) if a cell is vegetated the corresponding cell of the field will be 1, otherwise it will be 0.

WS_PFT(VegType, PlantType, WS)[source]
assert_method_is_valid(method)[source]
count(Arr, value)[source]