Models

Fastscape provides a few landscape evolution model “presets”, i.e., xsimlab.Model objects that can be used as-is or as a basis for building custom models. Those presets are built from a large collection of Processes.

For help on how to run and further customize those models, see the Examples section or xarray-simlab’s documentation.

Bootstrap model

bootstrap_model has the minimal set of processes required to simulate on a 2D uniform grid the evolution of topographic surface under the action of tectonic and erosion processes.

None of such processes is included. This model only provides the “skeleton” of a landscape evolution model and might be used as a basis to create custom models.

In [1]: from fastscape.models import bootstrap_model

In [2]: bootstrap_model
Out[2]: 
<xsimlab.Model (8 processes, 5 inputs)>
grid
    shape                 [in] ('shape_yx',) nb. of grid nodes in (...
    length                [in] ('shape_yx',) total grid length in (...
boundary
    status                [in] () or ('border',) node status at bor...
fs_context
tectonics
surf2erode
erosion
    cumulative_height  [inout] () or ('y', 'x') erosion height accu...
vmotion
topography
    elevation          [inout] ('y', 'x') surface topography elevation

Basic model

basic_model is a “standard” landscape evolution model that includes block uplift, (bedrock) channel erosion using the stream power law and hillslope erosion/deposition using linear diffusion.

Initial topography is a flat surface with random perturbations.

Flow is routed on the topographic surface using a D8, single flow direction algorithm.

All erosion processes are computed on a topographic surface that is first updated by tectonic forcing processes.

In [3]: from fastscape.models import basic_model

In [4]: basic_model
Out[4]: 
<xsimlab.Model (16 processes, 12 inputs)>
grid
    shape           [in] ('shape_yx',) nb. of grid nodes in (y, x)
    length          [in] ('shape_yx',) total grid length in (y, x)
boundary
    status          [in] () or ('border',) node status at borders
fs_context
uplift
    rate            [in] () or ('y', 'x') uplift rate
tectonics
init_topography
    seed            [in] random seed
surf2erode
diffusion
    diffusivity     [in] () or ('y', 'x') diffusivity (transport co...
init_erosion
flow
drainage
spl
    k_coef          [in] () or ('y', 'x') bedrock channel incision ...
    area_exp        [in] drainage area exponent
    slope_exp       [in] slope exponent
    tol_rel         [in] relative tolerance (Gauss-Siedel convergence)
    tol_abs         [in] absolute tolerance (Gauss-Siedel convergence)
    max_iter        [in] max nb. of iterations (Gauss-Siedel conver...
erosion
vmotion
topography
terrain

Sediment model

sediment_model is built on top of basic_model ; it tracks the evolution of both the topographic surface and the bedrock, separated by a uniform, active layer of sediment.

This model uses an extended version of the stream-power law that also includes channel transport and deposition.

Flow is routed using a multiple flow direction algorithm.

Differential erosion/deposition is enabled for both hillslope and channel processes, i.e., distinct values may be set for the erosion and transport coefficients (bedrock vs soil/sediment).

In [5]: from fastscape.models import sediment_model

In [6]: sediment_model
Out[6]: 
<xsimlab.Model (19 processes, 17 inputs)>
grid
    shape                   [in] ('shape_yx',) nb. of grid nodes in...
    length                  [in] ('shape_yx',) total grid length in...
boundary
    status                  [in] () or ('border',) node status at b...
fs_context
uplift
    rate                    [in] () or ('y', 'x') uplift rate
tectonics
init_topography
    seed                    [in] random seed
surf2erode
init_bedrock
active_layer
diffusion
    diffusivity_bedrock     [in] () or ('y', 'x') bedrock diffusivity
    diffusivity_soil        [in] () or ('y', 'x') soil (sediment) d...
init_erosion
flow
    slope_exp               [in] () or ('y', 'x') MFD partioner slo...
drainage
spl
    area_exp                [in] drainage area exponent
    slope_exp               [in] slope exponent
    tol_rel                 [in] relative tolerance (Gauss-Siedel c...
    tol_abs                 [in] absolute tolerance (Gauss-Siedel c...
    max_iter                [in] max nb. of iterations (Gauss-Siede...
    k_coef_bedrock          [in] () or ('y', 'x') bedrock channel i...
    k_coef_soil             [in] () or ('y', 'x') soil (sediment) c...
    g_coef_bedrock          [in] detached bedrock transport/deposit...
    g_coef_soil             [in] soil (sediment) transport/depositi...
erosion
vmotion
topography
terrain
bedrock

Marine model

marine_model simulates the erosion, transport and deposition of bedrock or sediment in both continental and submarine environments.

It is built on top of sediment_model to which it adds a process for sediment transport, deposition and compaction in the submarine domain (under sea level).

The processes for the initial topography and uplift both allow easy set-up of the two land vs. marine environments.

An additional process keeps track of a fixed number of stratigraphic horizons over time.

In [7]: from fastscape.models import marine_model

In [8]: marine_model
Out[8]: 
<xsimlab.Model (22 processes, 32 inputs)>
grid
    shape                   [in] ('shape_yx',) nb. of grid nodes in...
    length                  [in] ('shape_yx',) total grid length in...
boundary
    status                  [in] () or ('border',) node status at b...
fs_context
uplift
    x_position              [in] position of the clip plane along t...
    rate_left               [in] uplift rate of the left block
    rate_right              [in] uplift rate of the right block
tectonics
init_topography
    x_left                  [in] location of the scarp's left limit...
    x_right                 [in] location of the scarp's right limi...
    elevation_left          [in] elevation on the left side of the ...
    elevation_right         [in] elevation on the right side of the...
surf2erode
init_bedrock
active_layer
diffusion
    diffusivity_bedrock     [in] () or ('y', 'x') bedrock diffusivity
    diffusivity_soil        [in] () or ('y', 'x') soil (sediment) d...
init_erosion
flow
    slope_exp               [in] () or ('y', 'x') MFD partioner slo...
drainage
spl
    area_exp                [in] drainage area exponent
    slope_exp               [in] slope exponent
    tol_rel                 [in] relative tolerance (Gauss-Siedel c...
    tol_abs                 [in] absolute tolerance (Gauss-Siedel c...
    max_iter                [in] max nb. of iterations (Gauss-Siede...
    k_coef_bedrock          [in] () or ('y', 'x') bedrock channel i...
    k_coef_soil             [in] () or ('y', 'x') soil (sediment) c...
    g_coef_bedrock          [in] detached bedrock transport/deposit...
    g_coef_soil             [in] soil (sediment) transport/depositi...
marine
    ss_ratio_land           [in] silt fraction of continental sedim...
    porosity_sand           [in] surface (reference) porosity of sand
    porosity_silt           [in] surface (reference) porosity of silt
    e_depth_sand            [in] e-folding depth of exp. porosity c...
    e_depth_silt            [in] e-folding depth of exp. porosity c...
    diffusivity_sand        [in] diffusivity (transport coefficient...
    diffusivity_silt        [in] diffusivity (transport coefficient...
    layer_depth             [in] mean depth (thickness) of marine a...
erosion
vmotion
topography
terrain
bedrock
sea
    level                   [in] sea level (elevation)
strati
    freeze_time             [in] ('horizon',) horizon freezing (dea...