# 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

# =============================================================================
#  ╔╦╗╔═╗╔╦╗╔═╗╦  ╔═╗╔╦╗╔═╗╔═╗
#   ║ ║╣ ║║║╠═╝║  ╠═╣ ║ ║╣ ╚═╗
#   ╩ ╚═╝╩ ╩╩  ╩═╝╩ ╩ ╩ ╚═╝╚═╝
# =============================================================================
# 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.