This repository contains the GR6J rainfall-runoff model implemented in the Rust language. This tool can be either used as Python package, available on PyPI, or integrated in your Rust application as Cargo crate to run or calibrate run-off models.
The model replicates the code from the official GR6J model and was fully against the airGR R module. This tool adds much more features such as:
- ability to split a catchment into sub-catchments or hydrological units (for example based on surface use).
- ability to specify a run and warm-up period.
- export CSV files of simulated run-off, parameters, metrics and flow duration curve.
- generate charts with the simulated run-off and flow duration curve.
- calibrate a model using the Latin Hypercube approach by running models in threads
- assisted calibration by generating parameter vs. metric charts, observed vs. simulated flow charts and diagnostic files of parameters and metrics.
Download the Python package using pip
:
pip install gr6j
Follow the three examples in the example folder to run a simple model or a model with two sub-models or sub-catchments or calibrate the parameters using a gauged flow.
Add the crate to your Rust project first:
[dependencies]
gr6j = "1.0.0"
The project contains three Rust examples in the examples
folder. You can run
a simple model
or a model with two sub-models or sub-catchments or
calibrate the parameters using a gauged flow.
To run an example with Cargo use:
cargo run --example simple_model