降雨径流模型catchmod的python实现。
pycatchmod的Python项目详细描述
catchmod是英国应用最广泛的降雨径流模型。它是由wilby(1994)提出的。这个 版本是用python开发的,使用cython可以高效地执行长时间序列。
功能
pycatchmod包括以下功能:
- 用cython编写的核心catchmod算法,以提高速度,
- 同时模拟具有相同集水参数的多个输入时间序列,并且
- 与numpy阵列集成。
- 从温度计算pet的oudin(2005)pet公式的实现。
- 命令行界面
安装
这个模块主要是用cython编写的,需要安装一个c编译器来编译。该代码已经在gcc(linux)、msvc(windows)和clang(os x)上成功测试。
要安装,请使用setup.py
与通常一样:
python setup.py install
安装后,可以使用py.test
命令运行测试:
py.test tests
命令行界面
为了方便起见,编写了一个命令行界面。这是作为pycatchmod
命令安装的。请参见:
pycatchmod --help
您可以使用--help
开关访问每个子命令的帮助,例如:
pycatchmod run --help
要运行模型,请使用run
子命令:
pycatchmod run --parameters thames.json --rainfall thames_rainfall.csv --pet thames_pet.csv --output thames_flow.csv
命令行界面还提供了一些用于catchmod的excel实现的工具。可以使用dump
从excel文件中提取模型参数,例如:
pycatchmod dump --filename thames.xls
参数以json格式打印到标准输出(stdout)。这种格式的一个例子可以在tests
目录中找到。可以使用管道将此数据重定向到文件中:
pycatchmod dump --filename thames.xls > thames.json
可以使用compare
命令比较pycatchmod和excel模型的结果。输出之间的任何(显著)差异都被认为是一个bug(应该通过github报告)。
pycatchmod compare --filename thames.xls --plot
更改
版本1.1.0
- 为每个区域的输出流量添加了功能。
版本1.0.0
- 初始版本
许可证
这项工作是根据GNU通用公共许可证第3版(GNU GPLV3)授权的。详情请参阅牌照。
致谢
这项工作由英国曼彻斯特大学资助。
参考文献
Wilby,R.,Greenfield,B.,Glenny,C.,1994年。用于气候变化影响评估的耦合天气水文模型。水文学杂志。153号。第265-290页。