一种基于图计算的水文模型并行率定方法和系统技术方案

技术编号:27686291 阅读:25 留言:0更新日期:2021-03-17 03:58
本发明专利技术涉及一种基于图计算的水文模型并行率定方法和系统,将水文模型分解成子流域模型,进而将模型率定过程转化成有向图表达,并利用Pregel算法在Spark集群中实现模型率定并行模拟。本发明专利技术能快速实现水文并行率定。

【技术实现步骤摘要】
一种基于图计算的水文模型并行率定方法和系统
本专利技术涉及水文率定
,特别是一种基于图计算的水文模型并行率定方法和系统。
技术介绍
水文模型是对自然界中复杂水文现象在计算机中的抽象和概化,是认识复杂水文循环过程和机理的有效手段,同时也是解决诸多实际水文问题的有力工具。在遥感技术和共他传感器技术发展推动下,用于构建水文模型的数据越来越丰富,水文模型研究正逐步向大数据时代发展。在大数据效应的作用下,水文建模的时空范围不断延伸、尺度也越来越细,且人类对水文过程认知水平提高及不断增长的研究应用需求也使得模型中物理、化学和生物过程的描绘也更为精细全面,两者综合作用下模型运行所需的计算资源和时间也随之增长。同时,模型参数通常无法直接测算得到,需要通过多次将模型模拟结果与观测值进行对比,然后从中优选出一组能够表征所研究流域的模型参数(即所谓的模型率定)。模型率定需要大量的模型迭代模拟,产生了海量的计算需求。解决水文模型率定过程的海量计算问题,已经成为了水文学研究的关键难题。尽管,前人就此开展了大量研究工作,一定程度解决了水文模型率定计算难题,但以图计算作为切入点来解决此问题的方法和装置尚未见报导。有鉴于此,设计出一种基于图计算,能快速实现水文并行率定的方法和装置是非常必要的。
技术实现思路
有鉴于此,本专利技术的目的是提出一种基于图计算的水文模型并行率定方法和系统,能快速实现水文并行率定。本专利技术采用以下方案实现:一种基于图计算的水文模型并行率定方法,将水文模型分解成子流域模型,进而将模型率定过程转化成有向图表达,并利用Pregel算法在Spark集群中实现模型率定并行模拟。进一步地,在将水文模型分解成子流域模型之前还包括步骤:依据用户定义的模型率定参数范围和模型迭代模拟次数,对水文模型的参数进行采样,生成与用户指定迭代次数一致的模型参数组。进一步地,所述对水文模型的参数进行采样具体为:根据用户指定参与率定的参数及其取值区间、模型模拟的次数,首先将率定参数取值区间分成与模型模拟的次数一致的等分线段,其次随机排列各率定参数线段,再次在每个线段值区间内随机取一个数据,最后按垂直方向对率定参数进行组合生成率定参数组。进一步地,所述将水文模型分解成子流域模型具体为:按照流域的汇流关系,将原流域模型划分成两个以上的子流域模型,子流域模型之间的汇流关系通过点源进行表征,即把上级子流域的模拟输出当作下游子流域的点状输入源。进一步地,所述将模型率定过程转化成有向图表达具体为:将每个子流域当作有向图中的节点,依据子流域汇流关系,生成模型的有向图,将迭代模拟的模型当作有向图的一个子集,并添加一个虚拟节点将多次迭代模拟的有向图子集连接在一起,形成模型率定过程的有向图表达。进一步地,有向图中每个节点均包括三个信息,分别为M1、M2以及M3;其中M1为该节点所代表的子流域的唯一标识,M2为与该节点所代表的子流域直接连接的上游子流域的个数,M3为与该节点所代表的子流域直接连接的上游子流域模型已经完成模拟的个数。进一步地,所述利用Pregel算法在Spark集群中实现模型率定并行模拟具体包括以下步骤:步骤S41:向每个节点发送值为0的初始信息;步骤S42:每个节点将所有接收信息与本节点M3的值合并,即将所有信息值及M3的值累加在一起,然后将新值更新到本节点的M3中;步骤S43:判断当前节点M3值是否与M2值相同,若相同则执行步骤S44,若不相同则执行步骤S45;步骤S44:依据本节点M1的值,执行指定模拟和子流域的模拟,并向本节点的直接下游子流域节点发送值为1的信息;并进入步骤S46;步骤S45:向本节点直接下游子流域节点发送值为0的信息;并进入步骤S46;步骤S46:判断所有节点信息队列是否包含未处理信息,若有则返回步骤S42,若无则结束模型率定。进一步地,还包括步骤:依据用户指定的站点信息,结合模型模拟结果与观测序列,计算每次模拟的目标函数,并优选出目标函数最佳的参数组及模拟结果。本法民还提供了一种基于上文所述的方法的系统,包括数据预处理服务器与Spark服务器集群,所述数据预处理器与Spark服务器集群通过网络相连;所述预处理服务器上运行的方法包括:将水文模型分解成子流域模型,进而将模型率定过程转化成有向图表达;所述Spark服务器集群上运行的方法包括:利用Pregel算法在Spark集群中实现模型率定并行模拟。进一步地,所述Spark服务器集群上运行的方法还包括:依据用户指定的站点信息,结合模型模拟结果与观测序列,计算每次模拟的目标函数,并优选出目标函数最佳的参数组及模拟结果。与现有技术相比,本专利技术有以下有益效果:本专利技术通过将水文模型分解成子流域模型,进而将模型率定过程转化成有向图表达,并通利用Pregel算法在Spark集群中实现模型率定并行模拟,可有效提高水文模型的率定计算速度。同时,基于Pregel算法实现的并行模拟可获得Spark平台的支持,从而充分Spark平台扩展、容错及大吞吐的数据处理能力,且鉴于主流的云计算服务都支持Pregel算法,因此本方法较易在云计算服务平台实施。而模型分解采用的是子流域的分解形式,分解仅涉及模型配置文件的重构,无需对水文模型进行源代码的重构,相比按领域分解方法更易实施。附图说明图1为本专利技术实施例的系统结构示意图。图2为本专利技术实施例的方法流程示意图。图3为本专利技术实施例的参数采样示意图。图4为本专利技术实施例的有向图表达示意图。图5为本专利技术实施例的有向图表达流程示意图。图6为本专利技术实施例的并行率定示意图。具体实施方式下面结合附图及实施例对本专利技术做进一步说明。应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。如图1至图6所示,本实施例提供了一种基于图计算的水文模型并行率定方法,将水文模型分解成子流域模型,进而将模型率定过程转化成有向图表达,并利用Pregel算法在Spark集群中实现模型率定并行模拟。在本实施例中,在将水文模型分解成子流域模型之前还包括步骤:依据用户定义的模型率定参数范围和模型迭代模拟次数,对水文模型的参数进行采样,生成与用户指定迭代次数一致的模型参数组,如图2所示。在本实施例中,如图3所示,所述对水文模型的参数进行采样具体为:根据用户指定参与率定的参数及其取值区间、模型模拟的次数,首先将率定参数取值区间本文档来自技高网
...

【技术保护点】
1.一种基于图计算的水文模型并行率定方法,其特征在于,将水文模型分解成子流域模型,进而将模型率定过程转化成有向图表达,并利用Pregel算法在Spark集群中实现模型率定并行模拟。/n

【技术特征摘要】
1.一种基于图计算的水文模型并行率定方法,其特征在于,将水文模型分解成子流域模型,进而将模型率定过程转化成有向图表达,并利用Pregel算法在Spark集群中实现模型率定并行模拟。


2.根据权利要求1所述的一种基于图计算的水文模型并行率定方法,其特征在于,在将水文模型分解成子流域模型之前还包括步骤:依据用户定义的模型率定参数范围和模型迭代模拟次数,对水文模型的参数进行采样,生成与用户指定迭代次数一致的模型参数组。


3.根据权利要求2所述的一种基于图计算的水文模型并行率定方法,其特征在于,所述对水文模型的参数进行采样具体为:
根据用户指定参与率定的参数及其取值区间、模型模拟的次数,首先将率定参数取值区间分成与模型模拟的次数一致的等分线段,其次随机排列各率定参数线段,再次在每个线段值区间内随机取一个数据,最后按垂直方向对率定参数进行组合生成率定参数组。


4.根据权利要求1所述的一种基于图计算的水文模型并行率定方法,其特征在于,所述将水文模型分解成子流域模型具体为:
按照流域的汇流关系,将原流域模型划分成两个以上的子流域模型,子流域模型之间的汇流关系通过点源进行表征,即把上级子流域的模拟输出当作下游子流域的点状输入源。


5.根据权利要求1所述的一种基于图计算的水文模型并行率定方法,其特征在于,所述将模型率定过程转化成有向图表达具体为:
将每个子流域当作有向图中的节点,依据子流域汇流关系,生成模型的有向图,将迭代模拟的模型当作有向图的一个子集,并添加一个虚拟节点将多次迭代、模拟的有向图子集连接在一起,形成模型率定过程的有向图表达。


6.根据权利要求1所述的一种基于图计算的水文模型并行率定方法,其特征在于,有向图中每个节点均包括三个信息,分别为M1、M2以及M3;其中M1为该节点所代表的子流域的唯一标识,M2为与该节点所代表的子流域直接连接的上游子流域的个数,M3为与该节点所代表的子流域...

【专利技术属性】
技术研发人员:林巧莺张德健陈兴伟林炳青吴杰峰
申请(专利权)人:泉州师范学院
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1