ExponentialWeatherer: exponential soil production function in the style of Ahnert (1976)#

Created on Fri Apr 8 08:32:48 2016.

@author: RCGlade

class ExponentialWeatherer(*args, **kwds)[source]#

Bases: Component

Calculate exponential weathering of bedrock on hillslopes.

Uses exponential soil production function in the style of Ahnert (1976).

Consider that w0 is the maximum soil production rate and that w_star is the characteristic soil production depth. The soil production rate w0 is given as a function of the soil depth:

soil_production =  w0 * exp(-soil__depth / w_star)

The ExponentialWeatherer only calculates soil production at core nodes.

An alternative version which uses the analytical integral of production through time is available at the component ExponentialWeathererIntegrated.

Examples

>>> import numpy as np
>>> from landlab import RasterModelGrid
>>> from landlab.components import ExponentialWeatherer
>>> mg = RasterModelGrid((5, 5))
>>> soilz = mg.add_zeros("soil__depth", at="node")
>>> soilrate = mg.add_ones("soil_production__rate", at="node")
>>> expw = ExponentialWeatherer(mg)
>>> expw.calc_soil_prod_rate()
>>> np.allclose(mg.at_node["soil_production__rate"], 1.0)
True

References

Required Software Citation(s) Specific to this Component

Barnhart, K., Glade, R., Shobe, C., Tucker, G. (2019). Terrainbento 1.0: a Python package for multi-model analysis in long-term drainage basin evolution. Geoscientific Model Development 12(4), 1267–1297. https://dx.doi.org/10.5194/gmd-12-1267-2019

Additional References

Ahnert, F. (1976). Brief description of a comprehensive three-dimensional process-response model of landform development Z. Geomorphol. Suppl. 25, 29 - 49.

Armstrong, A. (1976). A three dimensional simulation of slope forms. Zeitschrift für Geomorphologie 25, 20 - 28.

Parameters:
  • grid (ModelGrid) – Landlab ModelGrid object

  • soil_production_maximum_rate (float, array of float) – Maximum weathering rate for bare bedrock

  • soil_production_decay_depth (float, array of float) – Characteristic weathering depth

__init__(grid, soil_production_maximum_rate=1.0, soil_production_decay_depth=1.0)[source]#
Parameters:
  • grid (ModelGrid) – Landlab ModelGrid object

  • soil_production_maximum_rate (float, array of float) – Maximum weathering rate for bare bedrock

  • soil_production_decay_depth (float, array of float) – Characteristic weathering depth

calc_soil_prod_rate()[source]#

Calculate soil production rate.

property decay_depth#

Maximum rate of weathering (m/yr).

property maximum_weathering_rate#

Maximum rate of weathering (m/yr).

run_one_step()[source]#
Parameters:

dt (float) – Used only for compatibility with standard run_one_step.

ExponentialWeathererIntegrated: exponential soil production function in the style of Ahnert (1976) integrated in dt#

Created on Fri Apr 8 08:32:48 2016.

@author: RCGlade @author: dylanward Integrated version created by D. Ward on Tue Oct 27 2020

class ExponentialWeathererIntegrated(*args, **kwds)[source]#

Bases: Component

This component implements exponential weathering of bedrock on hillslopes. Uses exponential soil production function in the style of Ahnert (1976).

Consider that w_0 is the maximum soil production rate and that d_start is the characteristic soil production depth. The soil production rate w is given as a function of the soil depth d:

w = w_0 exp(-d / d_star)

The ExponentialWeathererIntegrated uses the analytical solution for the amount of soil produced by an exponential weathering function over a timestep dt, and returns both the thickness of bedrock weathered and the thickness of soil produced. The solution accounts for the reduction in rate over the timestep due to the increasing depth. This enables accuracy over arbitrarily large timesteps, and better compatiblity with the run_one_step() interface.

Compared to ExponentialWeatherer, upon which it is based…

  • This maintains the field I/O behavior of the original, but adds new return fields for the weathered thickness and soil produced thickness.

  • Density adjustments are needed inside the integral and the density ratio is intialized on instantiation. The default value of 1.0 assumes no change in density.

  • Returns both weathered depth of bedrock and produced depth of soil over the timestep.

  • The primary soil__depth field that is input is NOT updated by the component.

This is left as an exercise for the model driver, as different applications may want to integrate soil depth and weathering in different sequences among other processes.

  • SHOULD maintain drop-in compatiblity with the plain ExponentialWeatherer, just import and instantiate this one instead and existing code should work with no side effects other than the creation of the two additional (zeros) output fields.

Examples

>>> import numpy as np
>>> from landlab import RasterModelGrid
>>> from landlab.components import ExponentialWeathererIntegrated
>>> mg = RasterModelGrid((5, 5))
>>> soilz = mg.add_zeros("soil__depth", at="node")
>>> soilrate = mg.add_ones("soil_production__rate", at="node")
>>> expw = ExponentialWeathererIntegrated(mg)
>>> dt = 1000
>>> expw.run_one_step(dt)
>>> np.allclose(mg.at_node["soil_production__rate"][mg.core_nodes], 1.0)
True
>>> np.allclose(
...     mg.at_node["soil_production__dt_produced_depth"][mg.core_nodes], 6.9088
... )
True

References

Required Software Citation(s) Specific to this Component

Barnhart, K., Glade, R., Shobe, C., Tucker, G. (2019). Terrainbento 1.0: a Python package for multi-model analysis in long-term drainage basin evolution. Geoscientific Model Development 12(4), 1267–1297. https://dx.doi.org/10.5194/gmd-12-1267-2019

Additional References

Ahnert, F. (1976). Brief description of a comprehensive three-dimensional process-response model of landform development Z. Geomorphol. Suppl. 25, 29 - 49.

Armstrong, A. (1976). A three dimensional simulation of slope forms. Zeitschrift für Geomorphologie 25, 20 - 28.

Parameters:
  • grid (ModelGrid) – Landlab ModelGrid object

  • soil_production__maximum_rate (float) – Maximum weathering rate for bare bedrock

  • soil_production__decay_depth (float) – Characteristic weathering depth

  • soil_production__expansion_factor (float) – Expansion ratio of regolith (from relative densities of rock and soil)

__init__(grid, soil_production__maximum_rate=1.0, soil_production__decay_depth=1.0, soil_production__expansion_factor=1.0)[source]#
Parameters:
  • grid (ModelGrid) – Landlab ModelGrid object

  • soil_production__maximum_rate (float) – Maximum weathering rate for bare bedrock

  • soil_production__decay_depth (float) – Characteristic weathering depth

  • soil_production__expansion_factor (float) – Expansion ratio of regolith (from relative densities of rock and soil)

calc_soil_prod_rate()[source]#

Calculate soil production rate.

property maximum_weathering_rate#

Maximum rate of weathering (m/yr).

run_one_step(dt=0)[source]#
Parameters:

dt (float) – Used only for compatibility with standard run_one_step. If dt is not provided, the default of zero maintains backward compatibility