# MARRMoT
Modular Assessment of Rainfall-Runoff Models Toolbox - Matlab code for 47 conceptual hydrologic models.
<p align="center">
<img src="Figures/logo.jpg" alt="MARRMoT logo" width="200"/>
</p>
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
## MARRMoT v2
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](https://doi.org/10.5194/gmd-15-6359-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](dx.doi.org/10.5281/zenodo.6460624)
### Changes since peer-review:
Since MARRMoT v2.1 was peer reviewed, the following minor changes to the code were implemented:
- Changes included in the release of v2.1.1
- Edits to _my_cmaes_ to fix typos and improve clarity of outputs to screen
- Typos fixed in models _m_13_ and _m_28_
- Edits to _MARRMoT_model_ class to make model objects loadable
- Addition of new objective functions _of_MARE_ and _of_PCMARE_
- Updates to this _README_ file
- Changes included in the release of v2.1.2
- Edits to _my_cmaes_ to fix typos (including error running parallel evaluation)
- Typo fixed in flux _evap_15_ affecting _m_41_ and _m_45_
- Updates to this _README_ file
## Getting Started
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.
### Requirements
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.
### Install
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:
- Open Matlab;
- Add the `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);
<p align="center">
<img src="Figures/matlab_path.jpg" alt="Example of adding files to Matlab path" width="250"/>
</p>
### Try an example application
With MARRMoT installed and Matlab open:
- Navigate Matlab's current folder to `./MARRMoT/User Manual`;
- Open the script `workflow_example_1.m`;
- Run the script by pressing F5 or clicking the `Run` button;
- Repeat with `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.
## Documentation
MARRMoT's documentation includes:
- **New paper**: object-oriented implementation, changes from MARRMoT v1 to v2 ([Trotter et al., 2022](https://doi.org/10.5194/gmd-15-6359-2022))
- **Original paper**: rationale behind MARRMoT development, best practices used during development, summary of included model structures and an example application of all structures to simulate streamflow in a single catchment ([Knoben et al., 2019](https://doi.org/10.5194/gmd-12-2463-2019)).
- **User manual**: description on how to use MARRMoT v2.- and how to contribute to it.
- **User manual appendices**: detailed model descriptions (A), flux equations (B) and unit hydrographs (C)
User manual and appendices are found in this repository in `./MARRMoT/User manual`.
## Model structure summary
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:
- FLEX-Topo
- IHACRES
- GR4J
- TOPMODEL
- SIMHYD
- VIC
- LASCAM
- TCM
- TANK
- XINANJIANG
- HYMOD
- SACRAMENTO
- MODHYDROLOG
- HBV-96
- MCRM
- SMAR
- NAM
- HYCYMODEL
- GSM-SOCONT
- ECHO
- PRMS
- CLASSIC
- IHM19
## License
MARRMoT is licensed under the GNU GPL v3 license - see the LICENSE file for details.
## DOIs of previous releases
- v2.1: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6484372.svg)](https://doi.org/10.5281/zenodo.6484372)
- v2.0: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6483914.svg)](https://doi.org/10.5281/zenodo.6483914)
- v1.4: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6460624.svg)](https://doi.org/10.5281/zenodo.6460624)
- v1.3: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3552961.svg)](https://doi.org/10.5281/zenodo.3552961)
- v1.2: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3235664.svg)](https://doi.org/10.5281/zenodo.3235664)
- v1.1: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2677728.svg)](https://doi.org/10.5281/zenodo.2677728)
- v1.0: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2482542.svg)](https://doi.org/10.5281/zenodo.2482542)
## Acknowledgements
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:
- Philip Kraft for finding a bug in the flux smoothing code during peer review;
- Sebastian Gnann for suggesting various quality of life fixes;
- Clara Brandes for finding and suggesting a fix for a bug in the water balance calculations and implementing m47;
- Koen Jansen for suggesting various improvements and correcting parameter descriptions;
- Mustafa Kemal Türkeri for making workflow_example_4 operational in Octave; and for performing extensive testing of MARRMoT in Matlab and Octave;
- Thomas Wöhling for suggesting various additional efficiency metrics and a possible implementation for warmup periods;
- Hidde Drost for suggesting a way to clarify MARRMoT install instructions in this readme;
- Dongdong Kong for finding a few typos in the code foe m13 and m28.
没有合适的资源?快使用搜索试试~ 我知道了~
降雨径流模型模块化评估工具箱- 47个概念水文模型的Matlab代码(高分项目).zip
共235个文件
m:202个
ipynb:7个
ini:4个
需积分: 3 1 下载量 55 浏览量
2024-03-09
15:17:36
上传
评论
收藏 6.29MB ZIP 举报
温馨提示
matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。 Matlab(Matrix Laboratory)是一种专为数值计算和科学与工程应用而设计的高级编程语言和环境。在算法开发和实现方面,Matlab具有以下一些好处: 1. 丰富的数学和科学函数库:Matlab提供了广泛的数学、信号处理、图像处理、优化、统计等领域的函数库,这些函数库可以帮助开发者快速实现各种复杂的数值计算算法。这些函数库提供了许多常用的算法和工具,可以大大简化算法开发的过程。 2. 易于学习和使用:Matlab具有简单易用的语法和直观的编程环境,使得算法开发者可以更快速地实现和测试他们的算法。Matlab的语法与数学表达式和矩阵操作非常相似,这使得算法的表达更加简洁、清晰。 3. 快速原型开发:Matlab提供了一个交互式的开发环境,可以快速进行算法的原型开发和测试。开发者可以实时查看和修改变量、绘制图形、调试代码等,从而加快了算法的迭代和优化过程。这种快速原型开发的特性使得算法开发者可以更快地验证和修改他们的想法。 4. 可视化和绘图功能:Matlab具有强大的可视化和绘图功能,可以帮助开发者直观地展示和分析算法的结果。开发者可以使用Matlab绘制各种图形、曲线、图像,以及创建动画和交互式界面,从而更好地理解和传达算法的工作原理和效果。 5. 并行计算和加速:Matlab提供了并行计算和加速工具,如并行计算工具箱和GPU计算功能。这些工具可以帮助开发者利用多核处理器和图形处理器(GPU)来加速算法的计算过程,提高算法的性能和效率
资源推荐
资源详情
资源评论
收起资源包目录
降雨径流模型模块化评估工具箱- 47个概念水文模型的Matlab代码(高分项目).zip (235个子文件)
config01.csv 473B
Dockerfile 873B
desktop.ini 136B
desktop.ini 136B
desktop.ini 136B
desktop.ini 136B
MARRMoT_notebook_run.ipynb 281KB
helloWorldOct2PyBMI.ipynb 16KB
helloWorldOct2PyState-Copy1.ipynb 7KB
helloWorldOct2PyState-Copy1-checkpoint.ipynb 7KB
helloWorldOct2Py-checkpoint.ipynb 7KB
helloWorldOct2Py.ipynb 7KB
helloWorldOct2PyBMI-checkpoint.ipynb 7KB
matlab_path.jpg 139KB
logo.jpg 89KB
.zenodo.json 365B
LICENSE 34KB
my_cmaes.m 117KB
MARRMoT_model.m 29KB
marrmotBMI_oct.m 19KB
marrmotBMI.m 18KB
m_33_sacramento_11p_5s.m 10KB
workflow_example_4.m 10KB
NewtonRaphson.m 10KB
NewtonRaphson_octave.m 10KB
m_47_IHM19_16p_4s.m 9KB
m_23_lascam_24p_3s.m 9KB
m_45_prms_18p_7s.m 9KB
m_38_tank2_16p_5s.m 9KB
m_46_classic_12p_8s.m 9KB
m_39_mcrm_16p_5s.m 9KB
m_44_echo_16p_6s.m 8KB
m_34_flexis_12p_5s.m 8KB
m_37_hbv_15p_5s.m 8KB
m_42_hycymodel_12p_6s.m 8KB
m_27_tank_12p_4s.m 7KB
m_40_smar_8p_6s.m 7KB
m_36_modhydrolog_15p_5s.m 7KB
m_26_flexi_10p_4s.m 7KB
m_43_gsmsocont_12p_6s.m 7KB
m_41_nam_10p_6s.m 7KB
m_07_gr4j_4p_2s.m 7KB
m_21_flexb_9p_3s.m 7KB
workflow_example_1.m 7KB
m_28_xinanjiang_12p_4s.m 6KB
m_35_mopex5_12p_5s.m 6KB
m_22_vic_10p_3s.m 6KB
m_nn_template_pp_ss.m 6KB
m_05_ihacres_7p_1s.m 6KB
m_32_mopex4_10p_5s.m 6KB
m_nn_example_7p_3s.m 6KB
m_16_newzealand2_8p_2s.m 6KB
m_15_plateau_8p_2s.m 6KB
m_14_topmodel_7p_2s.m 6KB
workflow_example_3.m 5KB
m_13_hillslope_7p_2s.m 5KB
workflow_example_2.m 5KB
m_31_mopex3_8p_5s.m 5KB
m_18_simhyd_7p_3s.m 5KB
m_25_tcm_6p_4s.m 5KB
m_30_mopex2_7p_5s.m 5KB
m_19_australia_8p_3s.m 5KB
m_20_gsfb_8p_3s.m 5KB
m_11_collie3_6p_2s.m 4KB
m_10_susannah2_6p_2s.m 4KB
m_08_us1_5p_2s.m 4KB
m_29_hymod_5p_5s.m 4KB
m_24_mopex1_5p_4s.m 4KB
m_17_penman_4p_3s.m 4KB
m_09_susannah1_6p_2s.m 4KB
m_12_alpine2_6p_2s.m 4KB
m_04_newzealand1_6p_1s.m 4KB
m_06_alpine1_4p_2s.m 4KB
m_03_collie2_4p_1s.m 3KB
m_02_wetland_4p_1s.m 3KB
BMI.m 3KB
marrmotRunner_testCase_oct.m 3KB
of_inverse_KGE.m 3KB
m_01_collie1_1p_1s.m 3KB
of_root5_KGE.m 3KB
marrmotRunner_testCase.m 3KB
uh_6_gamma.m 3KB
of_mean_hilo_KGE.m 3KB
of_mean_hilo_root5_KGE.m 2KB
uh_5_half.m 2KB
of_KGE.m 2KB
uh_4_full.m 2KB
of_inverse_NSE.m 2KB
of_log_NSE.m 2KB
run_with_rand_par.m 2KB
check_and_select.m 2KB
uh_3_half.m 2KB
of_bias_penalised_log.m 2KB
smoothThreshold_storage_logistic.m 2KB
of_PCMARE.m 2KB
uh_2_full.m 2KB
uh_1_half.m 2KB
of_MARE.m 2KB
saturation_11.m 1KB
percolation_4.m 1KB
共 235 条
- 1
- 2
- 3
资源评论
若明天不见
- 粉丝: 1w+
- 资源: 273
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功