摘 要:本文提出了一个实用的分析流域洪水计算的拓扑分析方法。此方法的核心思想就是将流域概化为一张节点图,对节点的属性、联接方式以及拓扑关系进行分析,运用邻接表、邻接矩阵和深度优先遍历的方法解决了模型之间的集成问题。该方法能够应用于流域洪水预报调度决策支持系统当中,提高系统运行的效率,是一个简明但行之有效的流域洪水计算模型系统集成的方法。
关键词:洪水;拓扑;决策支持系统
我国是一个洪涝灾害频繁的国家,随着社会经济的发展、人口的不断增长,人们对防洪的要求越来越高
。在防洪方面,人们普遍认为从实时洪水预报系统过渡到防洪决策支持系统是当前的发展趋势。发达国家竞相开展这类研究和开发工作,但目前仍处于只针对系统开发中的关键技术进行探索并在中小河流流域试验开发的阶段[2]。防洪决策支持系统中的一个关键技术就是如何将相对独立的各个模型集成在一个大的系统内进行整体计算,解决好模型之间数据的传递,提高系统运行的效率。目前国内外的研究还没有提出一个方便、有效的模型系统集成的办法。有人在尝试建立全流域的洪水模拟模型,对各部分统一求解。但这种办法在交互式预报调度时会遇到诸多不便,而且对于各个不同的流域不可能用相同的全流域的洪水模拟模型。因此研究一种方便的模型系统集成办法具有重要意义。本文提出了一个实用的流域洪水计算系统集成的办法。对于河道特征比较复杂、水利工程比较多的流域来说,洪水计算首先要将流域水系进行概化,将流域概化成互相联系的不同类型的节点,不同类型的节点用到相应不同的计算模型[3]。一些常见的水文或水力学模型已经为我们熟知,模型的编制问题不大,但是在模型的集成时却会遇到很棘手的问题,那就是节点之间的联接问题。只有搞清楚节点间是怎样联接的、节点间是怎样交换数据的、节点的计算顺序是怎样的等问题才能将一个个分散的模型组成有机的整体,才能模拟出洪水在整个流域中的流动情况。节点的有机联接就涉及到节点之间的拓扑关系,解决好了流域的拓扑关系,就能易如反掌地解决复杂流域洪水计算的模型集成问题。
1 流域洪水计算拓扑结构中的节点类型
进行流域洪水计算时人们要用到流域洪水模拟技术,运用各种模型来计算洪水过程。为了计算方便,首先要对流域水系进行概化,即把流域看成是由不同类型的节点联接在一起的一个有机整体
。节点类型主要有产汇流分区、河道洪水演进、水量交汇点、水库、闸门和平原区。各种不同类型的节点其计算方法是不同的,如P类(产汇流分区)节点所采用的是产汇流模型,计算产汇流的方法可以用新安江模型或其他方法;R类(河道洪水演进)节点所采用的是水文学或水力学模型,如马斯京干法、一维非恒定流法等;W类(水库)节点采用的是水量平衡法进行水库调度等等。
图
1 节点类型图例
www.tmgc8.com
节点类型用图例表示如图
1所示。
2 节点联接方式
流域内各个节点之间的联接方式大致分为
3种:串联,并联以及复杂联接(既有串联又有并联)。对某些简单流域,可能所有节点之间的联接都是串联,而对复杂流域,一般各种联接方式都存在。图2表示了产汇流分区节点(P)、河道洪水演进节点(R)、水库节点(W)以及水量交汇点(N)与其他节点之间的联接关系。各个符号的意义同前。产汇流分区是洪水产生的源节点,因此该类节点没有入流节点,而且它的出流节点只有一个,故此类节点与其他节点之间的联接为串联。河道洪水演进节点是洪水在河道中演进的概化,它应该有一个入流节点和一个出流节点,所以它与其他节点的联接方式也为串联。水量交汇节点是支流洪水交汇的节点,它又分为汇流节点、分流节点及复杂节点(既有汇流,又有分流),所以联接方式一般为并联或复杂联接。水库是流域中对水流进行控制的节点,一般它应该有一个或多个入流节点和一个出流节点,故为串联或复杂联接。闸门也是流域中对水流进行控制的节点,它与其他节点的联接方式与水库节点类似。平原区是流域中洪水泛滥的地方,它的情况一般非常复杂,在洪水计算中通常都对它的边界条件进行简化。
3 节点联接的拓扑表示法
流域洪水计算中,通常是要把流域进行概化,图
3是一幅流域概化节点图。这样一张节点图能够直观地反映洪水在流域内的流动方向,也反映了洪水计算的顺序。在某些节点没有计算之前,其他节点是不能计算的。最常见的情况就是一些节点的入流就是其他节点的出流,我们只有计算出上节点的出流,才能计算下节点的洪水过程。
在许多情况下,流域概化节点图在数据结构上是图而不是树。图和树的区别在于:图中的任意两个节点之间都有可能相关,节点之间的邻接关系是任意的;而在树形结构中,节点具有层次关系,每一层的节点只能与上一层中最多一个节点相关
。图结构描述了一种复杂的数据对象,具有广泛的应用。
图
2 几种类型节点的联接方式
这里首先引入数据结构中图的定义和术语。图
(Graph)G是由两个集合V和E组成,记为G=(V,E)。V是图中顶点(vertex)的集合;E是边的集合。顶点和顶点之间的连线称为边,若边是有向的,则图成为有向图,否则成为无向图[4]。若v,w是两个顶点,则从v到w的有向边成为一条狐,记为,从v到w的无向边则记为(v,w)[4]。
图
3是一张有向的连通图。为了知道节点之间的计算先后顺序,用一种最简单的拓扑关系来表达节点之间的联接:将图拆分成最小的子图,子图只包括一个起始节点、一个终止节点以及这两个节点的联接。只需在数据库中建立一张节点邻接表(NodesLink),就可以把所有的子图的联接关系反映在数据库里,从而搞清楚整个流域内节点的联接关系。图3的节点邻接表如表1所示。
图
3 流域概化节点
图
4 节点邻接矩阵
表
1 节点邻接
图的存储结构还可以用邻接矩阵来表示。图
3可以用图4所示的矩阵来表示。流域共有28个节点,所以该矩阵是28×28的方阵。该矩阵具有如下的性质:
其物理意义也很清楚,例如,
A[1,3]=1表示P1和R1是连通的,而且方向是从P1指向R1.而A[3,1]=0则表示虽然P1和R1连通,但是方向不能逆转,即不能从R1指向P1.这样一来,整个流域内洪水的流动方向都可以从该矩阵中得到了反映。
用邻接矩阵表示法来存储图,在计算机程序中可用如下方法实现:定义一个一维数组来存储各个节点的信息,例如节点类型等;定义一个二维数组来存储图www.tmgc8.com
4所示的邻接矩阵;定义两个整型变量分别储存图的节点数和边数;定义一个整型变量来表示图的类型,例如用0表示无向图,1表示有向图等等。
4 流域洪水计算
流域洪水计算就是要搞清楚水在流域内的运动、分布和存储情况。计算包括暴雨模拟、产汇流、河道洪水演进、流域内水利工程调度、平原区洪水泛滥以及潮位模拟等一系列过程直到洪水流入大海。降水量扣除蒸散发、植物截留、洼地储蓄以及补充土壤含水量等水量损失,剩下的部分为净雨量,即产生径流的雨量。净雨量的计算称之为产流计算。分布在流域各处的净雨,从不同地方向流域出口断面汇集的过程乃是流域汇流的过程,汇流计算的目的就是计算流域出口断面的洪水过程。洪水在河槽中的运动过程,我们称之为河道洪水演进。洪水水流受到水利工程
(如闸门、水库)的调蓄和控制,需要进行洪水的调度计算。另外洪水在平原区的流动情况我们称之为平原区的洪水泛滥。无论是产汇流计算,还是洪水演进计算,以及洪水泛滥的计算等,都有比较成熟的水文、水力学模型来实现。问题是用什么样的办法才能把流域洪水计算的模型有机地结合在一起,实现流域内洪水计算的一体化。
图
5 深度优先遍历算法的程序框
表
2 R类节点属性 [1] [2] 下一页
上一篇:青铜峡灌区水土资源平衡分析的探讨