Python 特别用作现有程序的粘合剂,无论是用 C 还是 FORTRAN 编写的。对于想要开始使用 Python 的人(对于水文学家),我建议看一下本篇博客介绍的资源。

(1) 常用库介绍
CFM :是一个用于创建水文模型的编程库。 虽然是用 C++ 编写的,但它有一个 Python 接口
ESMF :重新网格化已与 Python ESMPy 接口
GRASS :GIS 已与 Python 接口
Python 也与 gvSIG 接口,如您在此处所见。
HPGL: 一个高性能地质统计库。 用 C++ 编写的由 Python 粘合在一起
MODFLOW :地下水模型由 FloPy 接口。 文档和其他信息在这里。
PcRaster -: 是一个针对时空环境模型开发和部署的软件集合。 它有一个不断增强的 python 界面。
OpenHydrology 是一个用 Python 编写的开源水文软件库,可在伞形接口下作为包运行
PyHSPF Python 对 Fortran 水文模拟程序 (HSPF) 的扩展
PyQGIS:QGIS 的 Python 接口
RhessysWorkflow RHESSysWorkflows 提供用于构建 RHESSys 模型的 Python 脚本。 RHESSys 上的其他 Pythonic 材料可以在这里找到。
用于连接华盛顿大学水文模型的 UWHydro 工具,特别是 VIC 驱动程序 PythonDriver
(2)具体的水文水文模型列举如下
EXP-HYDRO 模型是一个以每日时间步长运行的流域规模水文模型。
Landlab Landlab 是一个基于 Python 的建模环境,允许科学家和学生构建数值景观模型。 专为地貌学、水文学、冰川学、地层学等量化地球表面动力学的学科而设计,也可用于相关领域。
LHMP - 集总水文模型游乐场 - 具有完整预测环境的小型码头集装箱。
PyCatch 是在 PCRaster Python 框架内构建的基于组件的流域水文模型。
PyTOPKAPI 是一个 BSD 许可的 Python 库,用于实现 TOPKAPI 水文模型(Liu 和 Todini,2002)。 该模型是基于物理的全分布式水文模型,已在全球多个国家成功应用
SPHY。 有关模型和出版物(HESS、Nature 等)的详细信息,请参见此处。 就在最近,PloS 发表了一篇关于气候变化和山地水文学的新论文,使用的是 SPHY 模型,更多信息请点击此处。
Topoflow 是 Scott Peckham 的 python 水文模型
WOFpy 是 CUAHSI 的 Water One Flow 服务栈在 python 中的实现
wflow 是一个分布式水文模型平台,目前包括两个模型:wflow_sbm 模型(源自 topog_sbm 土壤概念)和 wflow_hbv 模型,它是 HBV 模型的分布式版本。 这实际上是一个名为 OpenStream 的更大的 Deltares 项目的一部分
(3)统计和数据分析工具
CUAHSI 时间序列查看器
此处提供 NetCDF 文件操作。 然而,还有 txt2netcdf,它包含各种 Python 函数,用于将文本导入 NetCDF 数据文件(创建文件、添加变量、列表结构等),由 Ko van Huissteden 开发。
Pandas 是一个开源的、BSD 许可的库,为 Python 编程语言提供高性能、易于使用的数据结构和数据分析工具。 (这里也有一个简短的教程)
极端分布(来自 scipy.stats)在这里
使用 Pandas 分析时间序列的
实际上,Python 贡献的质量给我留下了深刻的印象。 我认为没有理由再在大学中使用像 Matlab 这样的商业程序(请参阅此处的评论)。 Matlab 做什么,Python 也做什么。 与 R 相比,它具有更清晰的语法,当然是一种更好的语言。 所以我建议将它与学生(或 R)一起使用。 我喜欢 R 但我从来没有在它上面构建程序,因为它的面向对象真的很差。 Python 更好,而且众所周知,它的语法很干净。 Python 非常适合链接 FORTRAN 和 C/C++ 本机库,因此实际上许多人使用它来组装他们用这些更高性能的语言编写的库。
然而, 与 Python 相比,Java 更不直接且更冗长,但它允许构建许多框架来使用,并且通常比 Python 更快。 可能是因为 Java 得到了宏伟的构建工具(Maven、Gradle)的支持,这些工具允许以 Python 可能无法完成的方式管理大型项目。