smartpy:python中的开源降雨径流模型
smartp的Python项目详细描述
smartpy-python中的smart降雨径流模型的开源版本
smartpy是python中的一个开源水文流域模型。它是根据GNU GPL-3.0授权的(请参见提供的许可文件)。smart(soil-weath accounting and routing for transport)是一个自上而下的降雨径流模型,由土壤水分核算组件和线性路由组件组成。它需要降雨和潜在蒸散量时间序列作为输入,它具有一组10个参数,并产生一个流量时间序列。
如何安装
pypi上提供了smartpy,因此您只需使用pip即可:
python -m pip install smartpy
您还可以直接使用指向github存储库的链接:
python -m pip install git+https://github.com/ThibHlln/smartpy.git
或者,您可以下载源代码(即github存储库),并从下载的目录本身运行命令:
python setup.py install
如何使用
我们提供了一个教程,其形式为aJupyter笔记本,可以开始使用Smartpy的API。教程所需的输入文件都在examples/
文件夹中提供。
如何引用
如果您使用的是SmartPy,请考虑引用以下软件(单击链接以获取特定版本的DOI):
- 哈卢因,T.,莫克勒,E.,布鲁恩,M.(xxxx)。smartpy:概念降雨径流模型(版本x.x.x)。Zenodo。https://doi.org/10.5281/zenodo.2564041
依赖关系
smartpy要求在安装了smartpy的python实现上安装流行的python包numpy
和scipy
。包future
也是必需的(用于python 2到3兼容)。其他可选依赖项包括netcdf4
如果希望使用netcdf文件作为输入或输出,和<代码> Smart TCPU/COD>如果希望使用智能模块的加速器模块(
型号规格
模型输入
- 空中降雨时间序列[mm/时间步长]
- 空中潜在蒸散量时间序列[mm/时间步长]
模型参数
- t:降雨空中修正系数[-]
- C:蒸发衰减参数[-]
- H:快速径流系数[-]
- D:排水流量参数-分流至排水流量的饱和过量分数[-]
- S:土壤流出系数[-]
- Z:有效土层深度[mm]
- sk:表面布线参数[小时]
- FK:流量间路由参数[小时]
- GK:地下水路径参数[小时]
- RK:河道走向参数[小时]
模型输出
- 汇水出口流量时间序列[m3/s]
参考文献
Mockler,E.,O'Loughlin,F.,和Bruen,M.:使用不确定性和敏感性分析了解概念流域模型中的水文流路径,
输入/输出文件格式
smartpy用于读取csv(逗号分隔值)文件和netcdf(网络通用数据格式)输入文件(用于rain、peva和flow),以及编写csv和netcdf输出文件(用于放电系列和蒙特卡罗模拟结果)。然而,使用netcdf文件需要在安装了smartpy的python实现上安装python包netcdf4(安装netcdf4之前的特定先决条件存在,可以在unidata.github.io/netcdf4 python)。
蒙特卡罗模拟
monte carlo
smartpy
附带的类套件为montecarlo模拟提供了各种选项。智能模型的参数空间可以使用拉丁超立方体采样(
lhs
)来探索所需的任何样本大小。在给定的仿真周期内完成采样后,可以在另一个仿真周期内使用total
评估整套参数集的性能,或者,参数集可以根据其自身的性能,根据SmartPy计算的任何目标函数上的观察放电数据进行调整(使用glue
区分行为和非行为参数集,或者使用best
来保留预定义数量的最佳性能样本),并且可以在另一个模拟周期上评估得到的参数集子集。
并行计算
如果需要蒙特卡罗模拟,利用可用的计算机电源来减少运行时间是很重要的。个人电脑现在通常有几个处理器核心,可以用来并行运行智能模型的许多次运行(即同时运行),更不用说高性能集群了,并行计算的好处将更加显著。smartpy
的montecarlo
类使用spotpy
包来访问并行运行模拟的简单方法。spotpy
本身需要mpi4py
来操作,这扩展适用于smartpy
。因此,在使用montecarlo
与parallel='mpi'
一起使用之前,需要在您的计算机上安装消息传递接口(mpi)库(例如打开mpi)和mpi4py
,还需要安装spotpy
。任何montecarlo
类都可以采用可选参数parallel,其默认值设置为'seq'(用于顺序计算),但如果您的设置允许,则可以设置为'mpi'(用于并行计算)。
版本历史记录
- 0.2.1[2019年8月24日]:常规增强功能
- 0.2.0[2018年11月16日]:速度提升使用新版SmartCPP的NT
- 0.1.4[2018年11月12日]:一般增强功能
- 0.1.3[2018年7月24日]:改进版本,用于蒙特卡洛模拟和并行计算
- 0.1.2[2018年7月18日]:版本无评估数据运行
- 0.1.1[2018年7月17日]:具有正确PYPI显示的版本
- 0.1.0[2018年7月17日]:smartpy的第一个版本
确认
该工具是在爱尔兰环境保护署(批准号2014-W-LS-5)的资助下开发的。