一种基于有向图的流域梯级水库开发评估方法及系统

文档序号:30458839发布日期:2022-06-18 04:01阅读:95来源:国知局
一种基于有向图的流域梯级水库开发评估方法及系统

1.本发明涉及水文数据分析技术领域,更具体地,涉及一种基于有向图的流域梯级水库开发评估方法及系统。


背景技术:

2.梯级水库是在一条河流的水利水电开发规划中,为了充分利用水利水力资源,从河流或河段的上游到下游所修建的一系列呈阶梯式的水库。梯级水库的开发规划,关乎发电、防洪、灌溉、城乡供水、航运等问题,具有重要的战略意义。梯级水库的落差与流动距离直接关乎每个水库的发电效益,汇水范围与汇流区间关乎水库的生态效益,都是水库管理者十分关心的内容。
3.现有的评估方法主要通过构建流域网图模型,并基于例如网状水系连通性指数rci等数据进行评估。然而由于梯级水库的数据复杂,从数字高程模型中获取的数据与梯级水库的实际位置有一定偏差,因此在构建流域网图模型时容易存在误差。此外,在实际工作中,梯级水库的落差与汇流区间常常依赖于人为确定,当梯级较多时容易出错,难以得到较高准确度和可信度的梯级水库开发评估结果。


技术实现要素:

4.本发明为克服上述现有技术所述的梯级水库数据出错率高、梯级水库开发评估准确度低的缺陷,提供一种基于有向图的流域梯级水库开发评估方法,以及一种基于有向图的流域梯级水库开发评估系统。
5.为解决上述技术问题,本发明的技术方案如下:
6.一种基于有向图的流域梯级水库开发评估方法,包括以下步骤:
7.s1、获取数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据作为输入数据,基于所述输入数据构建流域有向图;
8.s2、根据所述输入数据获取梯级水库开发评估区域范围;
9.s3、基于梯级水库开发评估区域范围对流域有向图中任意一个水库进行位置修正;
10.s4、根据经过位置修正的流域有向图,计算流域有向图中各像元之间的流动距离、任意两个梯级水库之间的落差和流动距离,以及任一梯级水库的汇水范围和汇流区间,进行梯级水库开发评估。
11.本技术方案通过对由数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据构建的流域有向图进行水库位置修正后,计算各梯级水库到流域出口的流动距离、两梯级水库之间的落差、水库的汇流区间与汇水范围,结合上述数据即可对流域梯级水库开发进行高准确率且高效的评估工作。
12.进一步地,本发明还提出了一种基于有向图的流域梯级水库开发评估系统,应用上述提出的基于有向图的流域梯级水库开发评估方法,包括数据采集模块、流域有向图构
建模块、区域范围计算模块、修正模块和评估模块。
13.其中,数据采集模块用于获取数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据。流域有向图构建模块用于根据数据采集模块采集的数据构建流域有向图。区域范围计算模块用于根据数据采集模块采集的数据计算梯级水库开发评估区域范围。修正模块用于根据梯级水库开发评估区域范围对流域有向图构建模块构建的流域有向图中所有水库进行位置修正。评估模块用于根据经过修正模块修正的流域有向图计算流域有向图中各像元之间的流动距离、任意两个梯级水库之间的落差和流动距离,以及任一梯级水库的汇水范围和汇流区间,并作为流域梯级水库开发评估参考数据进行输出。
14.与现有技术相比,本发明技术方案的有益效果是:本发明根据数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据构建流域有向图,并基于梯级水库开发评估区域范围对流域有向图中的水库位置进行修正,能够避免梯级水库数据误差影响评估结果;利用修正后的流域有向图快速计算各梯级水库到流域出口的流动距离、两梯级水库之间的落差、水库的汇流区间与汇水范围,结合上述数据即可对流域梯级水库开发进行高准确率且高效的评估工作。
附图说明
15.图1为实施例1的基于有向图的流域梯级水库开发评估方法的流程图。
16.图2为实施例2中对流域有向图中任一水库进行位置修正的流程图。
17.图3为实施例2中流动距离计算的算法伪代码示意图。
18.图4为实施例3中原始数字高程模型、梯级水库位置、高要水文站位置示意图。
19.图5为实施例3中流域有向图的保存方式示意图。
20.图6为实施例3中西江流域的流动距离示意图。
21.图7为实施例3中红水河水电基地开发剖面图。
22.图8为实施例3中红水河水电基地中第8级乐滩水库的汇水范围的示意图。
23.图9为实施例3中红水河水电基地中第8级乐滩水库的汇流区间的示意图。
24.图10为实施例4的基于有向图的流域梯级水库开发评估系统的架构图。
具体实施方式
25.附图仅用于示例性说明,不能理解为对本专利的限制;
26.为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
27.对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
28.下面结合附图和实施例对本发明的技术方案做进一步的说明。
29.实施例1
30.本实施例提出一种基于有向图的流域梯级水库开发评估方法,如图1所示,为本实施例的基于有向图的流域梯级水库开发评估方法的流程图。
31.本实施例提出的基于有向图的流域梯级水库开发评估方法中,包括以下步骤:
32.s1、获取数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据作
为输入数据,基于所述输入数据构建流域有向图。
33.本实施例中的数字高程模型数据包括目标流域区域的经纬度等地理数据信息,进一步结合流域控制性水文站位置数据和梯级水库位置数据构建得到包含流域水系位置信息、水库位置信息、流域的出口位置信息等数据的流域有向图,用于进一步进行流域梯级水库开发评估。
34.s2、根据所述输入数据获取梯级水库开发评估区域范围。
35.本实施例中根据数字高程模型数据获取梯级水库开发评估区域范围,所述梯级水库开发评估区域范围用于限定流域有向图的范围,以及用于计算梯级水库的位置坐标。
36.s3、基于梯级水库开发评估区域范围对流域有向图中任意一个水库进行位置修正。
37.本步骤基于梯级水库开发评估区域范围以及根据梯级水库开发评估区域范围计算的梯级水库的位置坐标,对流域有向图中任意一个水库进行位置修正,旨在对从数字高程模型中获取的数据与梯级水库的实际位置存在的偏差进行修正。
38.s4、根据经过位置修正的流域有向图,计算流域有向图中各像元之间的流动距离、任意两个梯级水库之间的落差和流动距离,以及任一梯级水库的汇水范围和汇流区间,进行梯级水库开发评估。
39.本实施例通过经上述计算得到的各像元之间的流动距离、任意两个梯级水库之间的落差和流动距离,以及任一梯级水库的汇水范围和汇流区间作为评估参考数据,用于梯级水库开发评估。
40.本实施例根据数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据构建流域有向图,并基于梯级水库开发评估区域范围对流域有向图中的水库位置进行修正,能够避免梯级水库数据误差影响评估结果;利用修正后的流域有向图快速计算各梯级水库到流域出口的流动距离、两梯级水库之间的落差、水库的汇流区间与汇水范围,结合上述数据即可对流域梯级水库开发进行高准确率且高效的评估工作。
41.实施例2
42.本实施例在实施例1提出的基于有向图的流域梯级水库开发评估方法的基础上作出改进。
43.本实施例提出的基于有向图的流域梯级水库开发评估方法中,包括以下步骤:
44.s1、获取数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据作为输入数据,基于所述输入数据构建流域有向图。
45.本步骤中,基于所述输入数据构建流域有向图的步骤包括:
46.s1.1、对数字高程模型数据进行流向计算,得到数字高程模型中各像元的流向,并通过累积流量计算提取得到流域水系及其像元;
47.s1.2、根据数字高程模型中各像元的流向,以像元为节点,流动方向为边,构建流域有向图,并根据流域控制性水文站位置数据和梯级水库位置数据在所述流域有向图中标记流域控制性水文站位置和梯级水库位置。
48.s2、根据所述输入数据获取梯级水库开发评估区域范围。
49.本步骤中,根据所述输入数据获取梯级水库开发评估区域范围的步骤包括:对所述输入数据利用getgeotransform函数进行数据提取,得到数字高程模型数据的起始经度
lon
′0、终止纬度lat
′1、经度分辨率r
lon
和纬度分辨率r
lat
,以及数字高程模型数据的列数cols和行数rows;根据输入数据的数据提取结果计算梯级水库开发评估区域范围。
50.其中,根据输入数据的数据提取结果计算梯级水库开发评估区域范围的表达式如下:
[0051][0052]
式中,lon
′1表示数字高程模型的终止经度,lat
′0表示数字高程模型的起始纬度。
[0053]
由此得到梯级水库开发评估区域范围为{lon
′0,lat
′0,lon
′1,lat
′1,cols,rows}。
[0054]
s3、基于梯级水库开发评估区域范围对流域有向图中任意一个水库进行位置修正。
[0055]
本步骤中,对流域有向图中任意一个水库进行位置修正的步骤包括:
[0056]
s3.1、根据梯级水库开发评估区域范围对数字高程模型中的流域水系转化为栅格数据,得到流域水系在流域有向图中m个像元的横坐标river
x,j
和纵坐标river
y,j
,其中j=1,2,...,m,m为像元的总数。
[0057]
通过数字高程模型得到的水系数据为矢量数据,需要首先将其转化为栅格数据,用于后续的梯级水库位置修正。
[0058]
s3.2、计算各个水库所属数字高程模型在流域有向图中的像元的横坐标和纵坐标,得到水库位置坐标;其表达式如下:
[0059][0060]
式中,rowi表示第i个水库的纵坐标,coli表示第i个水库的横坐标;loni表示第i个水库的经度,lati表示第i个水库的纬度;其中i=1,2,...,n,n为水库的总数。
[0061]
s3.3、对于任意一个水库,计算水库与流域水系中所有像元在流域有向图中的距离;其表达式如下:
[0062][0063]
式中,d
i,j
表示第i个水库与流域水系中第j个像元在流域有向图中的距离。
[0064]
s3.4、对于任意一个水库,根据水库与流域水系中所有像元在流域有向图中的距离,将水库位置坐标修改为与其距离最近的流域水系像元的位置坐标;其表达式如下:
[0065][0066]
式中,river
y,j

、river
x,j

为与第i个水库距离最近的流域水系的像元的纵坐标和横坐标,row
t,i
、col
t,i
分别表示第i个水库完成修正后的纵坐标和横坐标;d
min
为第i个水库与流域水系中的像元之间的最短距离。
[0067]
如图2所示,为本实施对流域有向图中任一水库进行位置修正的流程图。
[0068]
本实施例基于梯级水库开发评估区域范围以及根据梯级水库开发评估区域范围计算的梯级水库的位置坐标,计算任一水库与栅格化水系的距离,然后将其移动到最近的河段上,实现对流域有向图中水库位置的修正,能够有效避免直接获取的数字高程数据存
在的数据偏差影响梯级水库开发评估的准确度。
[0069]
进一步地,在一实施例中,为了数据的方便储存,将完成水库位置坐标修正的流域有向图以表格形式存储,并将梯级水库的坐标转化为编号,以查询其与其他像元的上下游关系。
[0070]
其中,将梯级水库的坐标转化为编号;其中第i个梯级水库的编号为:
[0071]
indexi=row
t,i
·
rows+col
t,i

[0072]
对所述流域有向图中所有像元的横坐标和纵坐标以编号进行表示记录。然后将各像元的编号作为流域有向图表格的索引列,将各像元的上游像元作为流域有向图表格的数据列,得到流域有向图表格并进行存储。
[0073]
s4、根据经过位置修正的流域有向图,计算流域有向图中各像元之间的流动距离、任意两个梯级水库之间的落差和流动距离,以及任一梯级水库的汇水范围和汇流区间,进行梯级水库开发评估。
[0074]
其中,在计算流域有向图中各像元之间的流动距离时,根据预设的流动方向,采用d8算法对流域有向图中各像元的流向进行计算,得到任一像元到下一像元的流动距离。
[0075]
本实施例在流域有向图中将无下游的像元定义为出口像元,且定义出口像元的流动距离为0;自出口像元往上游方向计算任一像元到出口像元的流动距离,其表达式如下:
[0076]
dist
upstream
=dist
downstream
+d
upstream
[0077]
式中,dist
upstream
表示当前像元到出口像元的流动距离,dist
downstream
表示当前像元的下游像元到出口像元之间的流动距离,d
upstream
表示当前像元到其下游像元的流动距离。
[0078]
如图3所示,为本实施例的流动距离计算的算法伪代码示意图。
[0079]
在一具体实施过程中,分别以64、128、1、2、4、8、32记录8种流动方向:北、东北、东、东南、南、西南、西、西北。对于任意两个有直接连接关系的像元,不同的流动方向有不同的流动距离。若数字高程模型的分辨率为r,则北、东北、东、东南、南、西南、西、西北8个方向对应的流动距离分辨率分别为r,r,r,r,进一步根据s1.1步骤计算得到的各像元的流向,采用d8算法可查找任一像元到下一像元的流动距离。
[0080]
进一步地,考虑到在原始的梯级水库位置数据中,仅包含水库的经纬度信息,无上下游拓扑关系,本实施例根据流域有向图中各像元之间的流动距离得到任一水库到出口像元之间的流动距离,并对任一水库到出口像元之间的流动距离进行排序,构建梯级水库拓扑关系,可用于查询任意水库到出口的流动距离。其中流动距离越大的水库,级数越低,位于上游。
[0081]
在计算任意两个梯级水库之间的落差和流动距离时,从经过位置修正的流域有向图中获取梯级水库位置坐标,根据梯级水库位置坐标和数字高程模型得到各梯级水库的高程,计算任意两个梯级水库之间的落差。
[0082]
任意两个梯级水库之间的落差的表达式如下:
[0083]
δh
p
=elev
p-elev
p+1
[0084]
式中,δh
p
表示第p级水库落差,elev
p
为第p级水库的高程。
[0085]
进一步地,根据流域有向图中各像元之间的流动距离,计算任意两个梯级水库之间的流动距离。其表达式如下:
[0086]
δfd
p
=fd
p-fd
p+1
[0087]
式中,δfd
p
表示第p级水库到第p+1级水库的流动距离,fd
p
表示第p级水库到流域出口的流动距离。
[0088]
在计算任一梯级水库的汇水范围和汇流区间时,对所述经过位置修正的流域有向图进行可达性分析,得到任一水库的汇水范围,其中,对于流域有向图中任一像元j,若存在一条路径使得像元j与水库i所在像元联通,则像元j属于水库i的汇水范围。
[0089]
像元j属于水库i的汇水范围的表达式如下:
[0090]di
={pixelj|pixelj→
pixeli}
[0091]
式中,di为水库i的汇水范围,pixelj表示像元j的位置,pixeli表示水库i的位置。
[0092]
进一步地,根据水库的汇水范围计算其汇流区间,其表达式如下:
[0093]ai+1
=d
i+1-di[0094]
式中,a
i+1
为第i+1级水库的汇流区间,且第i+1级水库为第i级水库的直接下游水库。
[0095]
在另一具体实施过程中,通过定义类class以及定义函数def()的方式,将s1~s4步骤封装为多个类及函数,将代码保存为.py格式的文件。在进行梯级水库水库开发评估时,使用import语句导入类及函数后,即可使用。
[0096]
实施例3
[0097]
本实施例应用实施例1或实施例2提出的基于有向图的流域梯级水库开发评估方法,对中国西江流域红水河水电基地进行流域梯级水库开发评估。
[0098]
本实施例中的步骤解析如下:
[0099]
s1、采集西江流域红水河水电基地梯级水库开发评估所需用到的数字高程模型,高要水文站位置数据,红水河水电基地梯级水库位置数据并进行存储。
[0100]
本实施例分别定义变量dem、station、cascade_reservoirs储存对应的文件路径。通过pygeoc中的d8flowdir函数调用上述数据文件,计算西江流域的数字高程流向,构建流域有向图。
[0101]
如图4所示,为本实施例的原始数字高程模型、梯级水库位置、高要水文站位置示意图。且本实施例的流域有向图的保存方式如图5所示。
[0102]
s2、使用gdal的open函数读取西江流域数字高程模型数据,转化为dataset对象。通过dataset对象中的getgeotransform方法获取本次计算实例中的计算范围以及计算尺度。
[0103]
s3、基于梯级水库开发评估区域范围对流域有向图中任意一个水库进行位置坐标修正。
[0104]
s3.1、利用gdal中的rasterize函数将上述提取得到的流域水系进行栅格化处理,分别保存水系像元的横纵坐标。
[0105]
s3.2、利用geopandas的read_file函数读取红水河水电基地梯级水库的位置数据,转化为geodataframe对象,利用geometry.x和geometry.y方法获取水库的经纬度。根据经纬度以及中得到的数字高程模型数据信息,计算水库在数字高程模型中所属像元的编号。
[0106]
s3.3、按照最小距离的原则,通过计算红水河水电基地梯级水库与栅格化后的西
江流域水系的距离,对梯级水库的位置进行修正。
[0107]
s4、梯级水库开发评估。
[0108]
s4.1、利用python的for循环,从西江流域的出口像元开始,往上游进行迭代计算,逐步地计算各像元到流域出口的流动距离。计算后,使用python第三方库gdal保存为tiff文件。
[0109]
如图6所示,为本实施例的西江流域的流动距离示意图。
[0110]
s4.2、利用python中的sort函数,按照流动距离对红水河梯级水库进行排序,得到红水河梯级水库的连接关系。流动距离越大的水库,等级越低,位于上游。
[0111]
s4.3、对于红水河水电基地中的任一级别水库,可计算其与下一级别水库的落差以及流动距离。如图7所示,为本实施例的红水河水电基地开发剖面图。
[0112]
s4.4、对于任一梯级水库,根据流域有向图进行可达性分析,计算得到其汇水范围并可进一步计算其汇流区间。
[0113]
如图8、9所示,分别为本实施例的红水河水电基地中第8级乐滩水库的汇水范围和乐滩水库的汇流区间的示意图。
[0114]
由图6~9可见,采用本实施例提出的基于有向图的流域梯级水库开发评估方法能够得到较高准确度和可信度的梯级水库开发评估结果。
[0115]
实施例4
[0116]
本实施例提出一种基于有向图的流域梯级水库开发评估系统,应用实施例1或实施例2提出的基于有向图的流域梯级水库开发评估方法。如图10所示,为本实施例的基于有向图的流域梯级水库开发评估系统的架构图。
[0117]
本实施例提出的基于有向图的流域梯级水库开发评估系统中,包括数据采集模块1、流域有向图构建模块2、区域范围计算模块3、修正模块4和评估模块5。
[0118]
其中,本实施例的数据采集模块1用于获取数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据。
[0119]
本实施例的流域有向图构建模块2用于根据数据采集模块1采集的数据构建流域有向图。
[0120]
本实施例的区域范围计算模块3用于根据数据采集模块1采集的数据计算梯级水库开发评估区域范围。
[0121]
本实施例的修正模块4用于根据梯级水库开发评估区域范围对流域有向图构建模块2构建的流域有向图中所有水库进行位置修正。
[0122]
本实施例的评估模块5用于根据经过修正模块4修正的流域有向图计算流域有向图中各像元之间的流动距离、任意两个梯级水库之间的落差和流动距离,以及任一梯级水库的汇水范围和汇流区间,并作为流域梯级水库开发评估参考数据进行输出。
[0123]
在具体实施过程中,通过数据采集模块1获取数字高程模型数据、流域控制性水文站位置数据和梯级水库位置数据,数据采集模块1将采集的数据分别传输至流域有向图构建模块2和区域范围计算模块3中。
[0124]
流域有向图构建模块2根据输入的数据构建流域有向图,具体地,流域有向图构建模块2对数字高程模型数据进行流向计算,得到数字高程模型中各像元的流向,并通过累积流量计算提取得到流域水系及其像元,然后根据数字高程模型中各像元的流向,以像元为
节点,流动方向为边,构建流域有向图,并根据流域控制性水文站位置数据和梯级水库位置数据在所述流域有向图中标记流域控制性水文站位置和梯级水库位置。流域有向图构建模块2将生成的流域有向图发送至修正模块4中。
[0125]
区域范围计算模块3根据输入的数据获取梯级水库开发评估区域范围,具体地,对所输入的数据利用getgeotransform函数进行数据提取,得到数字高程模型数据的起始经度lon
′0、终止纬度lat
′1、经度分辨率r
lon
和纬度分辨率r
lat
,以及数字高程模型数据的列数cols和行数rows,最后向修正模块4输出梯级水库开发评估区域范围{lon
′0,lat
′0,lon
′1,lat
′1,cols,rows}。
[0126]
修正模块4对流域有向图中的水库位置坐标进行修正。具体地,根据梯级水库开发评估区域范围对数字高程模型中的流域水系转化为栅格数据,得到流域水系在流域有向图中m个像元的横坐标river
x,j
和纵坐标river
y,j
。然后计算各个水库所属数字高程模型在流域有向图中的像元的横坐标和纵坐标,得到水库位置坐标。对于任意一个水库,计算水库与流域水系中所有像元在流域有向图中的距离,然后根据水库与流域水系中所有像元在流域有向图中的距离,将水库位置坐标修改为与其距离最近的流域水系像元的位置坐标。修正模块4对流域有向图中的所有水库进行遍历后,输出完成位置修正的流域有向图并传输至评估模块5中。
[0127]
评估模块5根据经过位置修正的流域有向图,计算流域有向图中各像元之间的流动距离、任意两个梯级水库之间的落差和流动距离,以及任一梯级水库的汇水范围和汇流区间,进行梯级水库开发评估。
[0128]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1