Geomorphology Model#

This is a basic implementation of a geomorphology model, combining erosion due to rainfall and toppling with tectonic uplift. It is implemented as a stochastic cellular automaton grid, where the state of each cell \(i\) consists of the topological height \(h_{t,i}\) (double), the drainage area to a cell, and the watercolumn \(w_{t,i}\) (double). In the beginning, the heights of the cells represent a (discretized) inclined plane. Rainfall is encapsulated in the drainage network representing a river system. Drainage is always passed from one cell to its lowest grid neighbor; sinks are filled with water (watercolumn) and the overflow receives the drainage upstream from the lake. The higher the drainage area to a cell, the more water flows over this cell. Stream power erodes sediments over time. Additionally, a stochastic process of toppling is considered.

Initial Configuration#

In order to observe the formation of a river network, the cell heights are initialized as an inclined plane. Denoting the coordinates of a cell \(i\) as \(x_i, y_i\), its initial height is given by

\[h_{0,i} = \Delta h + s \cdot y_i.\]

Negative topological heights are forbidden here and set to 0, i.e. the normal distribution is cut at 0.

The drainage network is a fictional construct, integrating continuous rainfall over time. It translates to the size and stream power of a river at the cell.


The erosion process is implemented by asynchronously updating all the cells (in one time step \(t\)) according to the following steps:

  1. Uplift:

    The height of each cell is incremented by the normally distributed \(u\) that represents uplift.

  2. Set drainage network:

    1. Map all cells to their lowest neighbor; if none is lower than the cell itself, the cell is mapped to itself.

    2. Fill sinks (no lower neighbor) with water, such that a lake forms and one of the lake cells has a lower neighbor or is an outflow boundary. All lake cells point to this cell.

    3. Set drainage area. For every cell, pass the cells assigned drainage area (default 1., cummulated with that receved from other already called cells) downstream through the already initialized network (adding the drainage area to every cell on the way) and dump it on any cell passed by, that was not yet called or is an outflow boundary.

  3. Stream power erosion:

    \[\frac{dz}{dt} = c * \Delta z * \sqrt{A}\]

    with the rock heigth z, the stream power constant c, and the drainage area A.

  4. Toppling:

    With a frequency f per cell evaluate the failure probability for slope:

    \[p = s / h_c\]

    with the critial height \(h_c\). If toppling occurs, the slope is reduced to 1/3 of its initial value.

Default configuration parameters#

Below are the default configuration parameters for the Geomorphology model.

# --- Space
  periodic: false

# --- CellManager and cell initialization
    structure: square
    resolution: 64      # cells per unit length of space's extent

    mode: Moore         # can be: empty, vonNeumann, Moore  

  # Initialization parameters for each cell
    initial_height_mean: 10. # choose large enough to don't get negative values
    initial_height_var: 0.1
    initial_slope: 0.0001

# Quantities related to soil
uplift_mean: 1.
uplift_var: .01 # must be > 1e-10
erodibility: .01

stream_power_coef: 1.e-3

toppling_frequency: 1.e-3
toppling_critical_height: 45.
toppling_slope_reduction_factor: 3.

Available plots#

The following plot configurations are available for the Geomorphology model:

Default Plot Configuration#

  based_on: ca

    - ca

Base Plot Configuration#

  base_path: &base_path data/Geomorphology

# =============================================================================
#  ╔╦╗╔═╗╔╦╗╔═╗╦  ╔═╗╔╦╗╔═╗╔═╗
#   ║ ║╣ ║║║╠═╝║  ╠═╣ ║ ║╣ ╚═╗
#   ╩ ╚═╝╩ ╩╩  ╩═╝╩ ╩ ╩ ╚═╝╚═╝
# =============================================================================
# -- Overloads ----------------------------------------------------------------
# Overload some configs to insert model-specific settings

# Model-specific defaults
  based_on: .defaults

  # Can define something here ...

# .. Creators .................................................................
    - .creator.universe
    - .defaults

    select_path_prefix: *base_path

    - .creator.multiverse
    - .defaults

    base_path: *base_path

# =============================================================================
#  ╔═╗╦  ╔═╗╔╦╗╔═╗
#  ╠═╝║  ║ ║ ║ ╚═╗
#  ╩  ╩═╝╚═╝ ╩ ╚═╝
# =============================================================================
# The spatial development in the CA
    - .creator.universe

  # Select the data and process it

    height: height
    watercolumn: watercolumn

    # In the drainage area calculation, log10 leads to container attributes
    # being dropped; need to manually add them back to not lose information
    # about the grid structure.
      path: drainage_area
      transform: [.attrs]

      path: drainage_area
        - log10
        - .assign_attrs: [!dag_prev , !dag_tag _array_attrs]

  # Select the properties to plot
      title: Rock Height
      cmap: gist_earth

      title: $log_{10}$ Drainage Area
      cmap: Blues
      vmin: 0
      vmax: max

      title: Water Column
      cmap: Blues

For available base plots, see Base Plot Configuration Pool.

Further reading#

The model is analyzed in depth in the bachelor thesis of Julian Weninger (2016).

  • Weninger, J., 2016. Development of Mountain Ranges and their Rivers - A Cellular Automaton Simulation. Bachelor’s Thesis, IUP (TS&CCEES) at Universität Heidelberg.