分布式水文模型软件系统MWEasyDHM简介
2013-08-29廖卫红雷晓辉蒋云钟王宇晖
廖卫红,雷晓辉,蒋云钟,王宇晖,2
(1.中国水利水电科学研究院 水资源研究所,北京 100038;2.东华大学 环境科学与工程学院,上海 201620)
1 研究背景
分布式水文模型大都采用比较传统的方法来实现模型构建、计算及率定工作,即:先采用成熟的商业GIS软件(如ArcView,ArcGIS等)及一些小程序来处理各种下垫面、水文、气象和社会经济数据,从而实现数据前处理及模型构建,然后再通过手动调参来找到理想的模型参数。由于建模过程复杂,数据类型多且数据量大,需要对模型非常熟悉的高级专业人员才可以较好地完成模型构建及率定工作。随着水文科学、地理信息系统(GIS)技术和遥感(RS)技术等的发展,国际上出现了几个比较成熟的分布式水文模型软件系统(如:Mike SHE[1],SWAT[2]等)。这些系统的出现,大大简化了水文模型的建模及率定过程,使得普通用户可以很快构建分布式水文模型,并能够达到一定模拟精度。
根据采用的GIS软件的不同,可以将现有的分布式水文模型系统的分为三类:(1)基于商业GIS软件,如SWAT模型的软件系统AVSWAT、ArcSWAT,SHE模型的软件系统MIKE SHE等,均基于ESRI公司开发的商业GIS软件ArcView或者ArcGIS开发;(2)基于开源GIS软件的,如MWSWAT[3]、BASINS4[4]等均是基于开源GIS软件MapWindow开发;(3)不依赖于外部GIS软件,如:HEC-HMS[5],JAMS[6]等,这些模型系统内嵌了自己开发的GIS工具,但通常只提供比较简单的GIS操作及分析。上述几种类型中,基于商业GIS软件的系统功能通常比较强大,水文分析算法也较通用、高效,开发也相对较容易,但由于其使用成本高,一定程度上影响了推广应用;开源GIS软件的最大优势在于免费和代码共享,但其开发成本相对较高,难度也较大,且相比成熟的商业GIS软件,开源GIS软件通常缺乏较完整的开发文档或者软件功能测试不够完全,漏洞较多;不依赖于外部GIS的软件,系统集成效果最好,但是通常由于GIS功能比较弱,不能进行复杂的GIS分析。
本文的开发目标是要建立国内第一个面向实际应用,集成前处理、模型计算、参数识别、统计分析和结果展示等功能于一体的低成本分布式水文模型软件系统。因此在开发时选用开源GIS软件作为系统平台。在开源GIS软件阵容中比较知名的软件有:GRASS、MapWindow、QGIS、OpenJUMP和SharpMap等[7-9]。综合考虑开发的难度和稳定性,本文选择其中的MapWindow进行开发。
2 MWEasyDHM模型系统结构
本文主要介绍本课题组基于开源GIS软件MapWindow,为分布式水文模型EasyDHM[11]所开发的配套模型系统MWEasyDHM(MapWindow based Easy Distributed Hydrological Model)。其软件体系结构如图1所示,包括4大部分:(1)自主开发的面向水文分析的通用GIS软件(基于MapWindow);(2)前处理模块;(3)模拟模块;(4)后处理模块。其中,自主开发的通用GIS软件为其他3个模块提供支持。整个系统包括多个模块,不同模块又涉及到众多算法和程序等,为保护以前的代码,及不同专业的开发习惯,整个平台通过组件方式把各个模块和算法组织起来,整个平台的开发语言包括:C++、C#、VB.Net和Fortran等。
图1 MWEasyDHM软件体系结构
3 MWEasyDHM模型系统主要功能
3.1 面向水文分析的通用GIS软件面向水文分析的通用GIS软件是MWEasyDHM平台的基础,不但包括常用的GIS展示、查询和数据管理等功能,还包括水文建模过程中所需的空间分析功能,如数据格式转换和投影等功能。此外,还在开源GIS软件MapWindow的基础上,对其进行了二次开发及改造,实现以下新增功能,包括:(1)原有矢量、栅格数据相互转化算法只能处理简单对象(简单河网),通过重写这部分算法,提高了原有算法通用性,可以实现对各种复杂对象(复杂河网)的处理;(2)提高栅格数据加载、输出算法的效率;(3)对MapWindow中大部分模块进行了汉化,使其较好地支持了中文环境。
3.2 前处理模块前处理模块是分布式水文模型建模过程中最复杂的部分,主要基于所开发的通用GIS软件完成计算。该模块包含以下几个子模块:(1)基于DEM的通用水文分析组件,主要用于处理研究范围内的下垫面数据,生成研究范围内的数字水系、并依据下垫面和控制站点进行空间单元离散;(2)模型参数推求,包括各基本计算单元的产流、汇流参数;(3)气象数据空间插值,即将观测站点的气象观测数据插值到各个计算单元中。
3.2.1 基于DEM的通用水文分析组件 基于DEM的通用水文分析组件主要功能见图2。该组件主要由3部分组成:(1)栅格数据基本处理模块,主要包括:栅格切割、矢量/栅格数据投影、矢量/栅格数据互转化和栅格计算等;(2)DEM处理模块,主要包括:根据实测河网的DEM数字高程修正、DEM填洼、流向计算、累积数计算、模拟河网提取、模拟河网链、模拟河网分级、流长计算、坡度计算、河道出口点标识、人工出口点添加/自动吸附、下游河道追踪和上游控制范围搜索等;(3)流域空间离散模块,主要包括:河网编码及子流域划分、子流域内计算单元划分以及参数分区划分等[11]。之所以用“通用”来形容该水文分析组件,是因为其功能适用于大部分分布式水文模型,无论是基于网格式的,或子流域式的分布式水文模型。该分析组件均为研究团队自主开发,作为MapWIndow软件的一个工具供用户使用。
图2 基于DEM的通用水文分析组件的主要功能
本组件的核心目标是流域空间单元的离散及各单元基本属性的推求。计算时,依据河道上生成的自然出口点和人为添加的出口点(水文站点、水利工程等)对河流进行分段,依据每段河流的集水范围划分成不同的子流域,子流域再细分成内部单元。MWEasyDHM对所选出口点及用户所添加的入口点、水文站和水库等都提供了合理性检查功能,避免出现如水文站和水库等不在模拟河网上的问题。
为更一步提高系统的友好性,MWEasyDHM还提供了“流域上游控制范围”及“下游河道追踪”的功能,即可分析河流上任意一点的上游集水范围和下游河段,如图3所示。
图3 上游集水范围、下游河道追踪功能展示
该功能可以提高用户对流域水文分析的直观体验,同时在此基础上实现更多高级水文分析功能,如水文站、水库所控制的“流域面积计算”功能。
3.2.2 模型参数推求子模块 分布式水文模型的一个重要特点是其模型参数大多具有相应的物理意义,而且可以根据下垫面数据来推求模型参数。正因为这一点,分布式水文模型才具备适用于无资料地区模拟的基本条件。为对模型参数进行推求,MWEasyDHM集成了3期全国1km网格的土地利用数据(1980,1995,2000年),且包括了两个数据源的土壤数据,它们分别是:(1)中国科学院南京土壤研究所的2km精度的高精度土壤粒径分布数据,数据把土壤共分为5层,分别为0~10、10~20、20~30、30~70和>70cm;(2)FAO的全球10km精度的土壤粒径分布数据,其把土壤共分为2层,分别为0~30和30~100cm。如果对精度要求不高,用户在使用MWEasyDHM时无需再收集上述下垫面信息。与此同时,MWEasyDHM还提供了其他下垫面数据输入功能,即可用上述数据源以外的用户自行添加的数据源。因此,若能收集到更精细的下垫面数据也能使用MWEasyDHM进行前处理。
基于DEM分析、土壤类型和土地类型数据,MWEasyDHM可自动推求研究区域各计算单元的产汇流参数,详细数据流程参见图4所示。
图4 模型参数推求数据流程
MWEasyDHM主要根据DEM、流长、河网编码和子流域划分结果等来推求子流域内主河道和支流的汇流参数。而产流参数则根据DEM、土地利用和土壤数据计算每个网格的各种物理参数,然后把它们统计到子流域内计算单元上。
3.2.3 气象数据插值子模块 分布式水文模型EasyDHM的基本产流模拟单元为子流域内部单元,因此,要利用EasyDHM模型对研究区域进行水文模拟,还需将观测站点的气象、降雨数据插值到各个基本单元上,MWEasyDHM也集成了该功能,其计算流程如图5所示。
图5 雨量和气象数据插值流程
系统集成了多种气象数据展布算法,包括:泰森多边形法、距离反比法、Kriging法、考虑高程修正的距离反比法和综合法[10]。另外,针对长系列气象数据空间插值的耗时问题,作者引入了Fortran MPI并行技术和C#的多线程技术,实现了对气象数据的快速插值。其中并行计算的思路就是把长系列划分为多个时段,然后对不同时段的气象数据进行同时并行空间插值,然后再把各个不同时段的气象数据展布结果合并成一个文件。例如:对1956—2005年的长系列数据,可以分成5个并行计算任务,每个任务单独计算10年,各个任务单独计算完后,再把各自的结果合并为一个结果。MWEasy-DHM还实现了数据库访问接口,能从数据库中选择需要的气象站、雨量站,并将这些站点的观测数据按固定格式导出成文本文件供系统使用。
3.3 模拟模块MWEasyDHM系统中,模型计算过程中能实时显示模型计算的结果,包括:模拟与实测的流量过程,某个时刻水循环要素空间展示等。实时计算模块的开发也增加了用户对模型的感性认识,提高了模型的交互性,如图6所示。图6右侧所示的是汉江上游向家坪水文站1983—1984年的降雨径流模拟过程,该过程是动态显示的,随着计算的推进,不断滚动绘制。
图6 模型实时计算界面
3.4 后处理模块为提高分布式水文模型对水资源管理项目的支撑,MWEasyDHM系统还提供了强大的后处理功能,能提高模型模拟精度并对研究区域的水资源情况进行分析及评价。后处理模块主要包括参数识别模块和模型结果展示两个部分。
3.4.1 参数识别子模块 参数自动识别模块主要包含两个功能:参数敏感性分析和参数优化。前者用于分析参数对模拟效果的敏感性,后者用于对系统中自动推求的默认产汇流参数进行优化,使得模拟结果更为准确。此模块的开发可以降低模型调参过程中的经验性,提高模型参数识别的稳定性和可靠性,使得模型参数识别过程更加高效。分布式水文模型EasyDHM中集成了多种参数敏感性分析和参数优化方法[11],可以选择相应的敏感性分析方法和优化方法(单/多目标),还可对参与优化的参数进行设置、修改,对优化目标进行设定和选择等。
3.4.2 结果展示子模块 方便的模型结果展示与分析功能可大幅提高模型结果分析的效率。MWEasy-DHM系统可以对EasyDHM模拟的结果按照不同的方式进行展示分析,包括表格式、图表式和GIS方式。图7给出了GIS方式对模拟结果的空间展示示意图,其中显示的内容为汉江上游流域1983年的实际蒸发量(ETmm)空间分布图。从图中可以看出,通过设定要展示的时间、数据项及输入、输出数据文件名就可以按照子流域、计算单元的方式对数据项的空间分布情况进行快速显示。很方便水资源管理人员对全流域的蒸发分布状况有所掌握。从而对流域水资源管理及决策提供支撑。
图7 模型结果GIS展示界面
4 结论
分布式水文模型EasyDHM模型的模型软件系统MWEasyDHM的开发,初步实现了面向实际应用、低成本、且功能完整的分布式水文模型建模及率定的目标。MWEasyDHM建模及应用的基本流程为:(1)流域空间离散,包括DEM处理,土地利用数据处理,土壤数据处理,基本水文参数推求,子流域划分,等高带/等流时带/HRU划分,参数/计算分区划分,产流参数/汇流参数等属性文件计算;(2)气象、雨量数据空间插值,包括多种空间插值方法,并支持对各要素进行时间、空间上的统计分析;(3)模型率定,包括参数敏感性分析、自动率定等,能自动对推求出的默认参数进行优化,提高模型精度;(4)模型应用及结果展示,使用最优参数进行高精度的分布式水文模拟并对结果进行展示,基于计算结果进行相应的水资源评价。
MWEasyDHM系统为分布式水文模型在水资源管理中进一步开展应用及大范围推广奠定了基础,同时也为分布式水文模型的一般用户提供了一个很好的建模环境。尽管MWEasyDHM取得了阶段性成果,但仍面临大量的技术和资金等多方面困难,若要真正实现服务于实际水资源管理,仍需不断改进。
[1]Abbott M B,Bathurst J C,Cunge J A,et al.An introduction to the european system:Systeme Hydrologique Europeen(SHE)[J].Journal of Hydrology.,1986,87:61-77.
[2]Neitsch S L,Arnold J G,Kiniry J R,et al.Soil and water assessment tool theoretical documentation(Version 2005)[Z].2005.
[3]George C,Leon L F,WaterBase:SWAT in an open source GIS[J].The Open Hydrology Journal,2008(1):19-24.
[4]BASINS4[EB/OL].[2012-06-13].http://www.epa.gov/waterscience/ftp/basins/system/BASINS4.
[5]William A.Scharffenberfeg and Matthew J.Fleming.Hydrologic Modeling System HEC-HMS Technical Reference Manual[M].U.S.Army Corps of Engineers Hydrologic Engineering Center,2000.
[6]Kralisch S,Krause P.JAMS-A Framework for Natural Resource Model Development and Application[C]//Voinov A,Jakeman,Rizzoli A E.Proceedings of the iEMSs Third Biannual Meeting“Summit on Environmental Modelling and Software”.Burlington,USA,International Environmental Modelling and Software Society,2006.
[7]唐黎明,尤黎明,周荣福.GRASS—Linux下的开源GIS软件[J].采矿技术,2006,6(2):82-84.
[8]Stefan Steiniger,Geoffrey J.Hay,Free and open source geographic information tools for landscape ecology[J].Ecological Informatics,2009,4(4):183-195.
[9]Robert I Dunfey,Bruce M Gittings,James K Batcheller.Towards an open architecture for vector GIS[J].Computers&Geosciences,2006,32(10):1720-1732.
[10]周祖昊,贾仰文,王浩,等.大尺度流域基于站点的降雨时空展布[J].水文,2006,26(1):6-11.
[11]雷晓辉,廖卫红,蒋云钟,等.分布式水文模型EasyDHM(I):理论方法[J].水利学报,2010,41(7):786-794.