BedrockLandslider: Location and magnitude of episodic bedrock landsliding#

Grid-based simulation of bedrock landslides.

Benjamin Campforts

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

Bases: Component

Calculate the location and magnitude of episodic bedrock landsliding.

Landlab component that calculates the location and magnitude of episodic bedrock landsliding following the Cullman criterion. See the publication:

Campforts B., Shobe C.M., Steer P., Vanmaercke M., Lague D., Braun J. (2020) HyLands 1.0: a hybrid landscape evolution model to simulate the impact of landslides and landslide-derived sediment on landscape evolution. Geosci Model Dev: 13(9):3863–86. https://dx.doi.org/10.5194/esurf-6-1-2018

Campforts, B., Shobe, C. M., Overeem, I., & Tucker, G. E. (2022). The Art of Landslides: How Stochastic Mass Wasting Shapes Topography and Influences Landscape Dynamics. Journal of Geophysical Research: Earth Surface, 127(8), 1–16. https://doi.org/10.1029/2022JF006745

Examples

>>> import numpy as np
>>> from numpy import testing
>>> from landlab import RasterModelGrid
>>> from landlab.components import PriorityFloodFlowRouter, BedrockLandslider

Make a RasterModelGrid and create a plateau.

  • 5x5 grid

  • Initial topography is set to plateau value of 10

>>> mg = RasterModelGrid((5, 5), xy_spacing=1.0)
>>> z = mg.add_zeros("topographic__elevation", at="node")
>>> s = mg.add_zeros("soil__depth", at="node")
>>> b = mg.add_zeros("bedrock__elevation", at="node")

Make plateau at 10 m

>>> b += 10

Lower boundary cell to 0

>>> b[2] = 0
>>> z[:] = b + s

Instantiate the PriorityFloodFlowRouter for flow accumulation and the BedrockLandslider

>>> fd = PriorityFloodFlowRouter(
...     mg,
...     separate_hill_flow=True,
...     suppress_out=True,
... )
>>> hy = BedrockLandslider(mg, landslides_return_time=1)

Run the flow director and BedrockLandslider for one timestep

>>> fd.run_one_step()
>>> vol_suspended_sediment_yield, volume_leaving = hy.run_one_step(dt=1)

After one timestep, we can predict exactly where the landslide will occur. The return time is set to 1 year so that probability for sliding is 100%. The angle of internal friction is 1 m/m, the topographical gradient is 10 m/m. At cardinal cells, the sliding plane will be at (1 + 10) / 2 = 5.5 m/m. With a dx of 1, the cardinal cell next to the critical sliding node must be 5.5 m and the diagonal one at 5.5 * sqrt(2) = 7.8 m

>>> testing.assert_almost_equal(
...     [5.5 * np.sqrt(2), 5.5, 5.5 * np.sqrt(2)], z[6:9], decimal=5
... )

References

Required Software Citation(s) Specific to this Component

Campforts B., Shobe C.M., Steer P., Vanmaercke M., Lague D., Braun J. (2020) BedrockLandslider 1.0: a hybrid landscape evolution model to simulate the impact of landslides and landslide-derived sediment on landscape evolution. Geosci Model Dev: 13(9):3863–86. https://dx.doi.org/10.5194/esurf-6-1-2018

Additional References

None Listed

Initialize the BedrockLandslider model.

Parameters:
  • grid (ModelGrid) – Landlab ModelGrid object

  • angle_int_frict (float, optional) – Materials angle of internal friction in [m/m]

  • threshold_slope (float, optional) – Threshold slope used in non-linear deposition scheme [m/m] Default value is set to angle_int_frict if not specified

  • cohesion_eff (float, optional) – Effective cohesion of material [m L^-1 T^-2].

  • landslides_return_time (float, optional) – Return time for stochastic landslide events to occur

  • rho_r (float, optional) – Bulk density rock [m L^-3].

  • fraction_fines_LS (float) – Fraction of permanently suspendable fines in bedrock Value must be between 0 and 1 [-].

  • phi (float, optional) – Sediment porosity, value must be between 0 and 1 [-].

  • max_pixelsize_landslide (int , optional) – Maximum size for landslides in number of pixels

  • verbose_landslides (bool , optional) – Print output as number of simulated landslides per timestep

  • seed (float , optional) – Provide seed to set stochastic model. If not provided, seed is set to 2021. Provide None to keep current seed.

  • landslides_on_boundary_nodes (bool, optional) – Allow landslides to initiate (critical node) and extend over boundary nodes.

  • critical_sliding_nodes (list, optional) – Provide list with critical nodes where landslides have to initiate This cancels the stochastic part of the algorithm and allows the user to form landslides at the provided critical nodes.

__init__(grid, angle_int_frict=1.0, threshold_slope=None, cohesion_eff=10000.0, landslides_return_time=100000.0, rho_r=2700, grav=9.81, fraction_fines_LS=0, phi=0, max_pixelsize_landslide=1000000000.0, seed=2021, verbose_landslides=False, landslides_on_boundary_nodes=True, critical_sliding_nodes=None, min_deposition_slope=0)[source]#

Initialize the BedrockLandslider model.

Parameters:
  • grid (ModelGrid) – Landlab ModelGrid object

  • angle_int_frict (float, optional) – Materials angle of internal friction in [m/m]

  • threshold_slope (float, optional) – Threshold slope used in non-linear deposition scheme [m/m] Default value is set to angle_int_frict if not specified

  • cohesion_eff (float, optional) – Effective cohesion of material [m L^-1 T^-2].

  • landslides_return_time (float, optional) – Return time for stochastic landslide events to occur

  • rho_r (float, optional) – Bulk density rock [m L^-3].

  • fraction_fines_LS (float) – Fraction of permanently suspendable fines in bedrock Value must be between 0 and 1 [-].

  • phi (float, optional) – Sediment porosity, value must be between 0 and 1 [-].

  • max_pixelsize_landslide (int , optional) – Maximum size for landslides in number of pixels

  • verbose_landslides (bool , optional) – Print output as number of simulated landslides per timestep

  • seed (float , optional) – Provide seed to set stochastic model. If not provided, seed is set to 2021. Provide None to keep current seed.

  • landslides_on_boundary_nodes (bool, optional) – Allow landslides to initiate (critical node) and extend over boundary nodes.

  • critical_sliding_nodes (list, optional) – Provide list with critical nodes where landslides have to initiate This cancels the stochastic part of the algorithm and allows the user to form landslides at the provided critical nodes.

property fraction_fines#

Fraction of permanently suspendable fines in bedrock. Value must be between 0 and 1 [-].

property landslides_size#

List with the size of simulated landslides. The list is reset every time the _landslide_erosion function is called

property landslides_volume#

List with the volume of simulated landslides. The list is reset every time the _landslide_erosion function is called

property landslides_volume_bed#

List with the volume of bedrock eroded by landslides. The list is reset every time the _landslide_erosion function is called

property landslides_volume_sed#

List with the volume of sediment eroded by landslides. The list is reset every time the _landslide_erosion function is called

property phi#

Sediment porosity, value must be between 0 and 1 [-].

run_one_step(dt)[source]#

Advance BedrockLandslider component by one time step of size dt.

Parameters:

dt (float) – The imposed timestep.

Returns:

  • vol_suspended_sediment_yield (float) – volume of sediment evacuated as syspended sediment.

  • volume_leaving (float) – Volume of sediment leaving the domain.