Evolves gravel-bed river long profiles
Project description
gravel-river-long-profile
This model simulates the long-profile evolution of alluvial river valleys formed and evolved by gravel-bedded rivers.
Key assumptions are that:
- The river's bed and banks are formed of noncohesive gravel, and the rate and form of the river's morphological evolution is limited by its ability to move this gravel.
- The river always maintains a self-formed equilibrium width with mobile gravel banks (following Parker, 1978). This linearlizes the sediment-transport response to an increase in discharge. Engineered or bedrock-walled rivers will require a fixed width, or one set by a different set of dynamics.
- Simulations may be based upon a single channel-forming discharge. (See Blom et al., 2017.)
- We are concerned with aggradation and incision over time scales affecting the full valley bottom (active fluvially worked surface), such that this is the area across which material must be added or removed for vertical change to take place.
The code-base structure, in short, is as follows:
- The grlp folder holds the core program
grlp.pycontains the equations and solvers.build_synthetic_network.pygenerates networks to run and test GRLP.
- The examples folder contains general examples (in the subfolders) as well as tutorial code for a one-dimensional model.
run_grlp.pycontains comments intended to help you learn how to write your own models.example_1d.ipynbis a Jupyter notebook containing more extensive tutorial information.
Sources to cite
Base / always
When you use any version of grlp, please cite the following two sources:
Wickert, A. D. and T. F. Schildgen (2019), Long-Profile Evolution of Transport-Limited Gravel-Bed Rivers, Earth Surf. Dynam., 7, 17–43, doi:10.5194/esurf-7-17-2019.
The version of the code that you used, which is found in CITATION.cff, automatically formatted by GitHub, and exposed in the web interface.
Linearization and spectral response
Fergus McNab and Jens Turowski developed the mathematics and associated code to linearize the GRLP equation in order to take advantage of near-analytical solutions and therefore perform rapid tests with it. If you use any of the features associated with the linearization or the plotting scripts noted in the folder McNab_et_al_GRL, please cite:
McNab, F., T. F. Schildgen, J. M. Turowski, and A. D. Wickert (2023), Diverse responses of alluvial rivers to periodic environmental change, Geophys. Res. Lett., 50, e2023GL103075, doi:10.1029/2023GL103075.
Network
Wickert designed and wrote the code for the networked version of GRLP, with assistance from McNab, including error finding and bug fixing. McNab in turn added functions to expanded network functionality and wrote and executed scientific code to understand river-network dynamics. Based on this, McNab led the study on river-network dynamics and wrote the associated paper. Therefore, if you use the river-network version of GRLP, please cite both of the following:
Wickert, A. D., McNab, F., and Barefoot, E. (2025, August). GRLP (Version 2.0.0). doi:10.5281/zenodo.3740658.
McNab, F., T. F. Schildgen, J. M. Turowski, and A. D. Wickert (2025), Influence of network geometry on long-term morphodynamics of alluvial rivers, EGUsphere preprint, doi:10.5194/egusphere-2025-2468.
Installation
Via pip and PyPI
Releases will be sent to PyPI.
To download and install the release version within your python system, use:
# Python 3
pip install grlp
# If you computer is shielding your core Python install from external
# packages, you have two options:
# First, you may simply ignore these blocks
# (Fine in my experience but could cause packages to clash)
pip install grlp --break-system-packages
# Second, you can build a separate environment for GRLP
Locally with pip and incorporating ongoing code modifications
To install the unreleased code from this repository and/or to make changes to it locally and have this reflected immediately in how GRLP runs:
# Download the repository
gh repo clone MNiMORPH/GRLP
# Install it
# First, navigate to the root grlp directory. Then use:
pip install -e .
# As noted above, you may need to --break-system-packages or create an
# environment for this to work.
You may always just download the grlp source from here and run it as a local (rather than system-wide installed) module.
But this can be inconvenient when needing to manage the directory of grlp.py relative to that of the driver *.py file that you are building to create your model run.
Learning how to use GRLP
1-D river long profile
For a tutorial run the Jupyter notebook contained within this package. After installing Jupyter on your local machine, navigate to the "examples" directory in the terminal and type:
jupyter notebook
to launch it. Alternatively, a number of cloud-based services can help to host Jupyter notebooks.
Alongside the Jupyter notebook is a file, run_grlp.py, which replicates one of the figures from the Wickert and Schildgen (2019) article. It includes comments to describe how to set up a GRLP run, though the information is less extensive than that available in the Jupyter notebook.
Beyond these two, a set of examples are located in the "one-dimensional" sub-directory of the "examples" folder.
Network of 1-D river long profiles
A set of functional examples for river networks is avaialble within the "network" sub-directory of the "examples" folder.
For more extensive network examples, including random network generation, see the repository accompanying the paper McNab et al. (2025, EGUsphere).
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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file grlp-2.0.0.tar.gz.
File metadata
- Download URL: grlp-2.0.0.tar.gz
- Upload date:
- Size: 58.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19caecfafb589924ba247397d3087121f4e01ad329b94ea18d34390fe7ba111d
|
|
| MD5 |
f4144dad9608899f163e9d88f6e04c28
|
|
| BLAKE2b-256 |
d1f02b185f7eae06c87b18f1325ff86b0fff8ac25afdaba32956d43a39c95729
|
File details
Details for the file grlp-2.0.0-py3-none-any.whl.
File metadata
- Download URL: grlp-2.0.0-py3-none-any.whl
- Upload date:
- Size: 55.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92ab0c0ee18255f9cbc7430c711e584b3f748808f3dee50e2ee744f0c304ebee
|
|
| MD5 |
9050bc6ea1750334669e56fa33e04f0c
|
|
| BLAKE2b-256 |
dee2106a41a44d9fc678f843e27baad4b0aaaebf3a463184f51f642cfa8cfe2a
|