Modular Assessment of Rainfall-Runoff Models Toolbox - Matlab code for 47 conceptual hydrologic models.
MARRMoT is a novel rainfall-runoff model comparison framework that allows objective comparison between different conceptual hydrological model structures. The framework provides Matlab code for 47 unique model structures, standardized parameter ranges across all model structures and robust numerical implementation of each model. The framework is provided with extensive documentation, a User Manual and several workflow scripts that give examples of how to use the framework. MARRMoT is based around individual flux functions and aggregated model functions, allowing a wide range of possible applications.
If you have any questions about using or running the code, or are willing to contribute, please contact l.trotter[-at-] unimelb.edu.au or wouter.knoben[-at-]usask.ca
The MARRMoT master branch has been updated to version 2.1.1. Main changes in MARRMoT v2 compared to v1 include code refactoring to rely on object-oriented programming and speed-ups in the model solving routines. The paper describing these changes was peer reviewed and published in Geoscientific Model Development (Trotter et al., 2022)
The last release of MARRMoT v1 is version 1.4 and can be found as a release here: dx.doi.org/10.5281/zenodo.6460624
Since MARRMoT v2.1 was peer reviewed, the following minor changes to the code were implemented:
These instructions will help you install a copy of MARRMoT and run a few example cases. This process should be straightforward and MARRMoT can (given some knowledge of Github and Matlab) be up and running in a matter of minutes.
MARRMoT has been developed on MATLAB version 9.11.0.1873467 (R2021b) and tested with Octave 6.4.0. To run in MATLAB, the Optimization Toolbox is required, while Octave requires the optim
package.
Note that the function circshift()
that is used by routing routines has markedly different behaviour in Matlab 2016b and higher compared to previous versions. Routing results will be unreliable in Matlab 2016a and below but will not generate any warnings or error messages. User discretion is advised.
To obtain the MARRMoT source code:
EITHER:
Download a copy of the files from this repository and extract the files in an appropriate directory;OR:
(Optionally fork and) clone this repository onto your own machine.Then:
MARRMoT
folder and its subfolders Functions
, Models
and User Manual
to the Matlab path (see image below; open the context menu by right-clicking the main MARRMoT folder inside the Matlab explorer window);
With MARRMoT installed and Matlab open:
./MARRMoT/User Manual
;workflow_example_1.m
;Run
button;workflow_example_2.m
and workflow_example_3.m
(workflow_example_4.m
shows a calibration example and takes a bit longer).The User Manual provides further details.
MARRMoT's documentation includes:
User manual and appendices are found in this repository in ./MARRMoT/User manual
.
MARRMoT model structures are based on a wide variety of different models. However, do to the standardised format of this framework, MARRMoT models resemble, but are not the same as the models they are based on. In addition to a range of unnamed models, the following models provided inspiration for MARRMoT:
MARRMoT is licensed under the GNU GPL v3 license - see the LICENSE file for details.
MARRMoT could not have been made without the effort that many hydrologists have put into development of their models. Their effors are gratefully acknowledged. Special thanks are extended to: