Vegetation
— Simple Vegetation Model#
This is a very simple implementation of a vegetation model. It is implemented as a stochastic cellular automaton on a grid, where the state of each cell is a double scalar representing the plant bio-mass on that cell. The only driver for a change in the plant bio-mass is rainfall, implemented as a Gauss-distributed random number drawn for each cell.
Model parameters#
rain_mean
: mean rainfall \(\langle r \rangle\)rain_std
: rainfall standard deviation \(\sigma_r\)growth_rate
: growth rate \(g\)seeding_rate
: seeding rate \(s\)
Growth process#
In each time step, the plant bio-mass on a cell is increased according to a logistic growth model. Let \(m_{t,i}\) be the plant bio-mass on cell \(i\) at time \(t\) and \(r_{t,i}\) the rainfall at time \(t\) onto cell \(i\). The plant bio-mass at time \(t+1\) is then determined as
\(m_{t+1,i} = m_{t,i} + m_{t,i} \cdot g \cdot (1 - m_{t,i}/r_{t,i})\).
It is possible that the result yields a negative value. In this case, the population density is silenty set to zero, \(m_{t+1,i} = 0\).
Seeding process#
Since logistic growth will never start if the initial plant bio-mass is zero, a seeding process is included into the model. If \(m_{t,i} = 0\), the plant bio-mass at time \(t+1\) is then determined as
\(m_{t+1,i} = s \cdot r_{t,i}\).
Default configuration parameters#
Below are the default configuration parameters of the model:
# Space parameters
space:
periodic: true
# grid settings
cell_manager:
grid:
structure: square
resolution: 20
neighborhood:
mode: empty # model does not use neighborhood
# Rain parameters
# The actual rain value is drawn from the following normal distribution
rain_mean: 10
rain_std: 2
# Growth rate (used in logistic growth)
growth_rate: 0.1
# Seeding rate (used when plant mass is zero)
seeding_rate: 0.2
For these parameters and a grid size of 20 x 20, the system takes roughly 50 time steps to reach a dynamic equilibrium, in which the plant bio-mass on all cells fluctuates around 9.5.
Available plots#
The following plot configurations are available for the Vegetation
model:
Default Plot Configuration#
# Mean plant mass over time
time_series/mean_plant_mass:
based_on: time_series/mean_plant_mass
# Spatial development in the CA over time
plant_mass_spatial:
based_on: plant_mass_spatial
Base Plot Configuration#
.variables:
base_path: &base_path data/Vegetation
# =============================================================================
# ╔╦╗╔═╗╔╦╗╔═╗╦ ╔═╗╔╦╗╔═╗╔═╗
# ║ ║╣ ║║║╠═╝║ ╠═╣ ║ ║╣ ╚═╗
# ╩ ╚═╝╩ ╩╩ ╩═╝╩ ╩ ╩ ╚═╝╚═╝
# =============================================================================
# -- Overloads ----------------------------------------------------------------
# Overload some configs to insert model-specific settings
# Model-specific defaults
.defaults:
based_on: .defaults
# Can define something here ...
# .. Creators .................................................................
.creator.universe:
based_on:
- .creator.universe
- .defaults
dag_options:
select_path_prefix: *base_path
.creator.multiverse:
based_on:
- .creator.multiverse
- .defaults
select_and_combine:
base_path: *base_path
# =============================================================================
# ╔═╗╦ ╔═╗╔╦╗╔═╗
# ╠═╝║ ║ ║ ║ ╚═╗
# ╩ ╩═╝╚═╝ ╩ ╚═╝
# =============================================================================
# Spatial development in the CA
plant_mass_spatial:
based_on:
- .creator.universe
- .plot.ca
select:
plant_mass: plant_mass
to_plot:
plant_mass:
title: Plant Biomass
cmap: Greens
vmin: 0
vmax: max
# Mean plant mass (and std) over time
time_series/mean_plant_mass:
based_on:
- .creator.multiverse
- .plot.facet_grid.with_auto_encoding
- .plot.facet_grid.errorbands
- .hlpr.kind.time_series
- .hlpr.limits.y.from_zero
select_and_combine:
fields:
plant_mass_mean:
path: plant_mass
transform:
- .mean: [!dag_prev , [x, y]]
plant_mass_std:
path: plant_mass
transform:
- .std: [!dag_prev , [x, y]]
transform:
- xr.Dataset:
- mean: !dag_tag plant_mass_mean
std: !dag_tag plant_mass_std
tag: data
x: time
y: mean
yerr: std
helpers:
set_labels:
y: Plant Biomass
only_label_outer: true
For available base plots, see Base Plot Configuration Pool.