TerrainBento suite of landscape evolution models
Project description
Thing | Badge |
---|---|
CI Status | |
Coverage | |
Docs | |
License | |
Health | |
Style | |
DOI | |
Conda Recipe | |
Downloads | |
Version | |
Platforms | |
Binder |
terrainbento
A modular landscape evolution modeling package built on top of the Landlab Toolkit.
terrainbento"s User Manual is located at our Read The Docs page.
We recommend that you start with a set of Jupyter notebooks that introduce terrainbento and the model description paper Barnhart et al. (2019). The link above goes to a Binder instance, if you want the notebooks themselves clone the repo and navigate to the directory notebooks
.
A quick example
The following is all the code needed to run the Basic model. There are a few different options available to create a model, here we will create one from a file-like object. The string will contain the same information as a YAML style input file that specifies the model construction and run.
from terrainbento import Basic
params = {
# create the Clock.
"clock": {"start": 0,
"step": 10,
"stop": 1e5},
# Create the Grid
"grid": {
"RasterModelGrid": [
(200, 320),
{
"xy_spacing": 10
},
{
"fields": {
"node": {
"topographic__elevation": {
"random": [{
"where": "CORE_NODE"
}]
}
}
}
},
]
},
# Set up Boundary Handlers
"boundary_handlers":{"NotCoreNodeBaselevelHandler": {"modify_core_nodes": True,
"lowering_rate": -0.001}},
# Parameters that control output.
"output_interval": 1e3,
"save_first_timestep": True,
"fields":["topographic__elevation"],
# Parameters that control process and rates.
"water_erodibility" : 0.001,
"m_sp" : 0.5,
"n_sp" : 1.0,
"regolith_transport_parameter" : 0.2,
}
model = Basic.from_dict(params)
model.run()
Next we make an image for each output interval.
from landlab import imshow_grid
filenames = []
ds = model.to_xarray_dataset()
for i in range(ds.topographic__elevation.shape[0]):
filename = "temp_output."+str(i)+".png"
imshow_grid(model.grid, ds.topographic__elevation.values[i, :, :], cmap="viridis", limits=(0, 12), output=filename)
filenames.append(filename)
model.remove_output_netcdfs()
Finally we compile the images into a gif.
import os
import imageio
with imageio.get_writer("terrainbento_example.gif", mode="I") as writer:
for filename in filenames:
image = imageio.imread(filename)
writer.append_data(image)
os.remove(filename)
Installation instructions
Before installing terrainbento you will need a python distribution. We recommend that you use the Anaconda python distribution. Unless you have a specific reason to want Python 2.7 we strongly suggest that you install Python 3.7 (or the current 3.* version provided by Anaconda).
To install the release version of terrainbento (this is probably what you want) we support conda and pip package management.
Using conda
Open a terminal and execute the following:
conda config --add channels conda-forge
conda install terrainbento
Using pip
Open a terminal and execute the following:
pip install terrainbento
From source code
To install the terrainbento source code version of terrainbento we recommend creating a conda environment for terrainbento.
git clone https://github.com/TerrainBento/terrainbento.git
cd terrainbento
cconda env create -f environment-dev.yml
conda activate terrainbento-dev
python setup.py install
A note to developers
If you plan to develop with terrainbento, please fork terrainbento, clone the forked repository, and replace python setup.py install
with python setup.py develop
. If you have any questions, please contact us by making an Issue.
How to cite
Barnhart, K. R., Glade, R. C., Shobe, C. M., and Tucker, G. E.: Terrainbento 1.0: a Python package for multi-model analysis in long-term drainage basin evolution, Geosci. Model Dev., 12, 1267-1297, https://doi.org/10.5194/gmd-12-1267-2019, 2019.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file terrainbento-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: terrainbento-1.1.1-py3-none-any.whl
- Upload date:
- Size: 253.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2.post20191203 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4df3851671d2f4ee002b3aefdbffc73464998dd73325a9f7e353db96a0b32630 |
|
MD5 | a348afe0564cb0a8a9ebd68b92663b71 |
|
BLAKE2b-256 | 19304211a6ac49bd4da46ed44b128276417e9caaea6c5ff704953c2159c265c0 |