一种基于现有GIS数据识别河道上下游水文站点的方法技术

技术编号:36743033 阅读:14 留言:0更新日期:2023-03-04 10:22
本发明专利技术提供一种基于现有GIS数据识别河道上下游水文站点的方法,属于水文信息数字孪生领域。本发明专利技术根据水文站点坐标GIS数据和河网矢量图,根据给定站点编号寻找该站点所对应河道上下游任意数量站点;显示给定站点的上下游站点拓扑关系图;判断其他站点是否位于给定站点上游,以及处于上游流域干流和支流何者之中;将站点上下游拓扑关系、河网边表保存在文本文件中,进行后续分析。本发明专利技术只需要基于现有的GIS数据构建两个图层文件,即能够识别河道上下游水文站点,能够大幅节省人工寻找特定站点上下游水文站的工作量,对大型河网和站点图层,准确程度高、运行速度较快,可以作为河网数字孪生的有利基础。数字孪生的有利基础。数字孪生的有利基础。

【技术实现步骤摘要】
一种基于现有GIS数据识别河道上下游水文站点的方法


[0001]本专利技术涉及一种基于现有GIS数据识别河道上下游水文站点的方法,属于水文信息数字孪生领域。

技术介绍

[0002]在自然河网中,时常需要了解河流水文站的上下游关系,以便进行水文情况分析、防洪预报和水文数据错误判断等工作,近年来深度学习模型在各领域中的应用和水利部对数字孪生的建设,更加凸显自动获取上下游关系,接入其他程序的重要性。
[0003]迄今为止,学界和业界缺乏根据现有GIS数据,自动获取给定站点上下游站点拓扑关系的手段,故专利技术人在本专利技术中提出一种基于现有GIS数据识别河道上下游水文站点的方法,自动识别河网站点拓扑关系。

技术实现思路

[0004]针对业界和学界缺乏自动寻找站点随河流流向拓扑关系的现状,本专利技术提出一种基于现有GIS数据识别河道上下游水文站点的方法,采用pyshp、shapely、networkx等成熟开源技术,使用图论算法分析河网,得到站点游向关系,作为基础设施使用。
[0005]为了达到上述技术目的,本专利技术采用的技术方案如下:
[0006]一种基于现有GIS数据识别河道上下游水文站点的方法,包括如下步骤:
[0007]步骤1:从可靠水文站点数据源(例如水文部门或任何权威数据提供者的数据库)获取水文站点经纬度信息,以及从可靠河网信息数据源(例如HydroRIVERS或任何权威数据提供者的数据库)获取河网矢量信息,建立以Point图层形式存在,保存水文站点位置的shapefile文件(包括*.shp、*.shx、*.prj、*.dbf文件,即水文站点图层文件)和以LineString图层形式存在,保存河网矢量图的shapefile文件,即河网矢量图层文件。
[0008]步骤2:遍历水文站点图层,通过pythonpyshp和shapely开源包内置功能,为水文站点图层中每个水文站点寻找离其最近的河道(河网线LineString)以及河道上距离水文站点最近的点(即投影点),构建所有水文站点和其投影点之间映射关系、以及投影点和所在河道之间的映射关系,即为投影过程,若为首次运行会生成缓存文件,若他人已经提供缓存文件,便不再生成。
[0009]步骤3:将河网和投影点采用python networkx开源包构建出虚拟拓扑图,其中虚拟拓扑图包括虚拟河网

水文站点投影点图、带权虚拟河网图两张图,通过两张拓扑图和步骤2投影过程得出的两个映射关系进行后续步骤。
[0010]步骤4:用户自主指定一个水文站点号,自主选择向上游还是下游追溯,同时自主指定追溯水文站点数量N(N为正整数且不超过2
31

1,若不指定则代表无限),便会在步骤3得出的拓扑图中,沿用户指定的上游/下游方向追溯所有河段,每条河段最大遍历到N个站点;若是首次运行,无缓存文件,则会将上下游拓扑子图保存成边表文件,同时对所有水文站点都计算一遍它的上下游水文站点拓扑关系,生成上下游关系集合;若他人已经提供相应边
表文件和上下游关系集合缓存文件,则不再生成边表文件和上下游关系集合。
[0011]步骤5:用户可以自行指定第一水文站点和第二水文站点,根据步骤4产生的上下游拓扑子图,确定第二水文站点在第一水文站点上游的干流、支流还是不在其上游流域中(干流判定采取“河源唯远”原则)。
[0012]步骤6:以上步骤执行完毕后,将步骤4中得出的上下游关系集合保存为缓存文件,便于后续分析。
[0013]进一步的,步骤1中从可靠数据源获取站点位置和河网矢量图的步骤如下:
[0014]步骤1.1:从步骤1所述可靠水文站点数据源获取xls/xlsx/csv数据文件,手动剔除无效数据(例如超出考察范围、或坐标为null、或坐标重复的数据);
[0015]步骤1.2:将步骤1.1产生的数据通过pythongeopandas包转化为shapefile文件(包括*.shp、*.shx、*.prj、*.dbf文件);若数据源已经提供站点位置,shapefile文件则可以省掉步骤1.1、1.2,直接使用shapefile文件即可;
[0016]步骤1.3:从可靠河网信息数据源获取河网矢量图文件,采用ArcGIS/QGIS将其从多部件(MultiLine

String)转为单部件(LineString),若已是单部件此步骤可以省略。
[0017]进一步的,步骤2中找到离站点最近河道、河道上最近点步骤如下:
[0018]步骤2.1:使用pythonshapely的buffer方法,对第一步得到的水文站点图层文件中的某个水文站点增添限定范围,不断扩大范围直到河网矢量图层文件中,该水文站点限定范围内出现至少一条河网线,然后对限定范围内所有河网线,计算其与当前水文站点的距离,取距离最小的一条河网线(LineString)矢量作为待投影河段,以此确定上下游拓扑关系;
[0019]步骤2.2:使用shapely内置算法,直接找到当前水文站点在待投影河段上的投影点,若该河段上有不止一个投影点,便通过投影点到该河段源点的欧氏距离进行排序,对河网矢量图层中,步骤2.1得到的所有待投影河段重复此过程;
[0020]步骤2.3:构建所有水文站点和投影点、所有投影点和所有待投影河段之间的映射关系,若首次运行会将其写入缓存文件,若他人已提供缓存文件则不再进行此过程。
[0021]进一步的,步骤3中构建两张拓扑图,通过拓扑图和步骤2中所得两个映射关系寻找源站点间关系步骤如下:
[0022]步骤3.1:将步骤2所得所有投影点与每个河段的起点和终点,通过pythonnetworkx开源包连接在一起,得到虚拟河网

站点投影点图,同时将每个河段起点与终点以及河段长度连接起来,构成带权虚拟河网图;
[0023]步骤3.2:将虚拟河网

站点投影点图、带权虚拟河网图保存为缓存文件,留待后续分析。
[0024]进一步的,步骤4中由指定站点号寻找拓扑子图步骤如下:
[0025]步骤4.1:用户自主指定站点号、选择上下游方向和追溯数量N后,使用pythonpyshp得到站点号对应Point,再通过步骤2所得映射关系,确定目标节点;
[0026]步骤4.2:在步骤3得到的虚拟河网

站点投影点图或者对应缓存文件中,通过目标节点在图中的祖先节点获得上游拓扑子图,进而将拓扑子图中坐标和站点坐标一一对应,结果写入站点集合,站点集合最大长度为N;或者通过目标节点深度优先搜索树,获取下游拓扑子图,同样将子图中坐标和站点坐标一一对应,结果写入站点集合,最大长度为N;
[0027]步骤4.3:返回站点集合,将拓扑子图保存为缓存文件,留待后续分析。
[0028]进一步的,步骤5中指定第二水文站点,判断其是否在第一水文站点上游流域、在第一水文站点上游流域干流/支流中步骤如下:
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于现有GIS数据识别河道上下游水文站点的方法,其特征在于,包括以下步骤:步骤1:从可靠水文站点数据源获取水文站点经纬度信息,以及从可靠河网信息数据源获取河网矢量信息,建立以Point图层形式存在,保存水文站点位置的shapefile文件和以LineString图层形式存在,保存河网矢量图的shapefile文件,即河网矢量图层文件;步骤2:遍历水文站点图层,通过pythonpyshp和shapely开源包内置功能,为水文站点图层中每个水文站点寻找离其最近的河道以及河道上距离水文站点最近的点即投影点,构建所有水文站点和其投影点之间映射关系、以及投影点和所在河道之间的映射关系,即为投影过程,若为首次运行会生成缓存文件,若他人已经提供缓存文件,便不再生成;步骤3:将河网和投影点采用python networkx开源包构建出虚拟拓扑图,其中虚拟拓扑图包括虚拟河网

水文站点投影点图、带权虚拟河网图两张图,通过两张拓扑图和步骤2投影过程得出的两个映射关系进行后续步骤;步骤4:用户自主指定一个水文站点号,自主选择向上游还是下游追溯,同时自主指定追溯水文站点数量N,在步骤3得出的拓扑图中,沿用户指定的上游/下游方向追溯所有河段,每条河段最大遍历到N个站点;若是首次运行,无缓存文件,则会将上下游拓扑子图保存成边表文件,同时对所有水文站点都计算一遍它的上下游水文站点拓扑关系,生成上下游关系集合;若他人已经提供相应边表文件和上下游关系集合缓存文件,则不再生成边表文件和上下游关系集合;所述的N为正整数且不超过2
31

1;步骤5:用户可以自行指定第一水文站点和第二水文站点,根据步骤4产生的上下游拓扑子图,确定第二水文站点在第一水文站点上游的干流、支流还是不在其上游流域中,其中干流判定采取“河源唯远”原则;步骤6:将步骤4中得出的上下游关系集合保存为缓存文件,进行后续分析。2.根据权利要求1所述的一种基于现有GIS数据识别河道上下游水文站点的方法,其特征在于,所述的步骤1中从可靠数据源获取站点位置和河网矢量图的步骤如下:步骤1.1:从步骤1所述可靠水文站点数据源获取xls/xlsx/csv数据文件,手动剔除无效数据,所述无效数据包括超出考察范围、或坐标为null、或坐标重复的数据;步骤1.2:将步骤1.1产生的数据通过pythongeopandas包转化为shapefile文件;若数据源已经提供站点位置,shapefile文件则可以省掉步骤1.1、1.2,直接使用shapefile文件即可;步骤1.3:从可靠河网信息数据源获取河网矢量图文件,采用ArcGIS/QGIS将其从多部件MultiLine

String转为单部件LineString,若已是单部件此步骤可以省略。3.根据权利要求1所述的一种基于现有GIS数据识别河道上下游水文站点的方法,其特征在于,所述的步骤2中找到离站点最近河道、河道上最近点步骤...

【专利技术属性】
技术研发人员:王阳叶磊欧阳文宇王梦云张弛
申请(专利权)人:大连理工大学
类型:发明
国别省市:

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

1