smartpy:python中的开源降雨径流模型

smartp的Python项目详细描述


license:gpl v3pypi version特拉维斯CI生成状态Appveyor生成状态doi

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):

依赖关系

smartpy要求在安装了smartpy的python实现上安装流行的python包numpyscipy。包future也是必需的(用于python 2到3兼容)。其他可选依赖项包括netcdf4如果希望使用netcdf文件作为输入或输出,和<代码> Smart TCPU/COD>如果希望使用智能模块的加速器模块( C++Excel用于智能模型",

型号规格

模型输入

  • 空中降雨时间序列[mm/时间步长]
  • 空中潜在蒸散量时间序列[mm/时间步长]

模型参数

  • t:降雨空中修正系数[-]
  • C:蒸发衰减参数[-]
  • H:快速径流系数[-]
  • D:排水流量参数-分流至排水流量的饱和过量分数[-]
  • S:土壤流出系数[-]
  • Z:有效土层深度[mm]
  • sk:表面布线参数[小时]
  • FK:流量间路由参数[小时]
  • GK:地下水路径参数[小时]
  • RK:河道走向参数[小时]

模型输出

  • 汇水出口流量时间序列[m3/s]

参考文献

Mockler,E.,O'Loughlin,F.,和Bruen,M.:使用不确定性和敏感性分析了解概念流域模型中的水文流路径,计算机和地球科学,90,66–77,doi:10.1016/j.cageo.2015.08.015,2016年

输入/输出文件格式

smartpy用于读取csv(逗号分隔值)文件和netcdf(网络通用数据格式)输入文件(用于rain、peva和flow),以及编写csv和netcdf输出文件(用于放电系列和蒙特卡罗模拟结果)。然而,使用netcdf文件需要在安装了smartpy的python实现上安装python包netcdf4(安装netcdf4之前的特定先决条件存在,可以在unidata.github.io/netcdf4 python)。

蒙特卡罗模拟

monte carlosmartpy附带的类套件为montecarlo模拟提供了各种选项。智能模型的参数空间可以使用拉丁超立方体采样(lhs)来探索所需的任何样本大小。在给定的仿真周期内完成采样后,可以在另一个仿真周期内使用total评估整套参数集的性能,或者,参数集可以根据其自身的性能,根据SmartPy计算的任何目标函数上的观察放电数据进行调整(使用glue区分行为和非行为参数集,或者使用best来保留预定义数量的最佳性能样本),并且可以在另一个模拟周期上评估得到的参数集子集。

并行计算

如果需要蒙特卡罗模拟,利用可用的计算机电源来减少运行时间是很重要的。个人电脑现在通常有几个处理器核心,可以用来并行运行智能模型的许多次运行(即同时运行),更不用说高性能集群了,并行计算的好处将更加显著。smartpymontecarlo类使用spotpy包来访问并行运行模拟的简单方法。spotpy本身需要mpi4py来操作,这扩展适用于smartpy。因此,在使用montecarloparallel='mpi'一起使用之前,需要在您的计算机上安装消息传递接口(mpi)库(例如打开mpi)和mpi4py,还需要安装spotpy。任何montecarlo类都可以采用可选参数parallel,其默认值设置为'seq'(用于顺序计算),但如果您的设置允许,则可以设置为'mpi'(用于并行计算)。

版本历史记录

确认

该工具是在爱尔兰环境保护署(批准号2014-W-LS-5)的资助下开发的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpringMVC控制器测试打印结果JSON字符串   若catch语句返回,那个么为什么它最终会阻塞呢?   java Grails中servletContext在哪里可用?   java Jhipster:如何为现有项目启用多种语言   java异常评估SpringEL表达式:“#fields.hasErrors('something')”   java如何验证SeleniumWebDriver中的文本颜色?   java在绘图时使用JPanel坐标   java如何初始化spring启动到project?   java如何通过JDBC的PreparedStatement将UUID数组插入HyperSQL数据库   java修改JVM以跨线程序列化文件访问   Javascript到Java正则表达式   使用Java运行时调用aspell程序时出现字符集问题。getRuntime()。执行官   执行RDP时的java Sukuli按钮识别   java如何使用okhttp更改connect请求的标头   java无法创建Maven Eclipse项目