2021FME博客大赛 —— FME在无名河流水系实体化中的应用实践

作者:栗敏光

0 摘要

水系实体化是新型基础测绘工作的重要内容。河流水系可以建模为由各个层级的干流所组成的网络体系。无名河流水系的实体化可以解析为确定各个层级干流对象的过程。依据长度准则,逆向运用GIS网络分析中的最短路径分析技术,基于FME平台设计了无名河流水系实体化算法程序。生产应用结果表明,算法程序正确合理,不仅广泛适用于单汇水点、多汇水点、树状、网状等不同拓扑结构水系的实体化,而且同时适应单个水系的独立实体化和多个水系的同步实体化。

1 问题提出

实体化是新型基础测绘的核心要义,实体化的对象包括地球表面一切自然地理要素和经济人文要素。

水系是一种重要的自然地理要素,被喻为地形的骨架。水系实体化是推行河长制,开展水文分析、水灾监测、水路交通管理和流域生态环境管理等深层应用的基础,也是新型基础测绘工作的重要内容。

水系的构成主体是河流。水系实体化的核心是河流实体化。由有名河流组成的水系的实体化易于根据名称属性结合空间连通性加以实现。由无名河流组成的水系的实体化则无法借助属性,而只能依据其自身的空间特征和一定的准则来进行。

2 解决方案

在空间结构上,河流水系通常由多重干流与支流所组成,具有显著的层级特征。在几何形态上,虽然河流水系可以表现为复杂多样的类型,却具有网络连通的共性特征。综合来看,河流水系可以抽象为由从高到低各个层级的干流所组成的网络体系(终极支流亦可理解为最低层级的独立干流)。

于是,无名河流水系的实体化可以解析为从高到低确定各个层级干流对象的过程。又由于确定干流对象通常采用长度准则(亦即所谓源头唯远、流程唯长的原则),因此无名河流水系的实体化就进一步归结为在河流网络中寻找从各个源头到汇水点的最长流径的问题,这正是GIS网络分析技术中的最短路径分析所要解决的问题。只不过经典的最短路径分析技术以路径最短为取向,本课题须要对其加以逆向运用。

从具体操作的意义上讲,河流水系实体化的实质就是为一个将构成同一河流的各条河段的标识实体的属性赋予相同属性值,也就是说,提取出的河流水系实体需要加以实体化标记或者编码才算实现完整意义上的河流水系实体化。同时不难发现,要实现整个河流水系的实体化,实际上需要完成一个从高到低确定各个层级干流对象的不断循环往复的过程。

基于以上分析设计解决方案,具体可以分解为以下十个步骤:

第一大步是构建流径分析因子。以获取道路网络中起点与终点之间的最短路径为目标的经典最短路径分析是以路段长度作为分析因子的,欲同样运用最短路径分析技术获得河流网络中各个源头点到汇水点的最长流径则需以河段长度倒数为分析因子。通过提取以河段长度倒数为因子的最短流径来逆向获得以河段长度为度量的最长流径。

第二大步是划分河网体系,即将整个区域水系根据连通性特征划分为内部贯通且彼此独立的不同河流网络体系,进而对每个独立的河网体系实施分析。

第三大步是以河网体系为单元构建源汇点向量,又分解为三小步。第一小步是提取河网各条河段的起点和终点(亦即有向线段的首末节点)。第二小步是河网所有河段端点叠加,通过重叠数提取其中的悬挂点。其中悬挂的起点即为河网源头点,悬挂的终点即为河网汇水点。第三小步是以河网为单元构建各个源头点与各个汇水点的两两组合,亦可理解为河网所有源头点到所有汇水点的向量。

第四大步是河网各个源汇点向量对应最长流径提取。给定一个源汇点向量,利用最短路径分析技术即可获取从源头点出发流经河网体系各条河段到达汇水点的最长流径。

第五大步是所有河网当前层级最长流径提取,通过计算第四大步提取出的各个河网各个源汇点向量对应最长流径的长度并加以统计分析即可完成。

第六大步是所有河网当前层级最长流径实体化编码,即对所有河网当前层级最长流径所包含河段赋予相同的实体编码而将其标识为同一条河流实体。

第七大步是对未完成实体化编码的河网河段返回第二大步,循环执行第二大步至第六大步的操作,直至所有河网所有河段全部完成实体化编码。

算法流程如图1所示。

 

 

《2021FME博客大赛 —— FME在无名河流水系实体化中的应用实践》

                                                                                                                                  图1 算法流程图

 

3 FME实现

FME作为一款功能强大的GIS数据处理与空间分析工具,具有丰富的空间数据处理与分析函数库,提供灵活直观的可视化工作流设计界面,充分胜任本课题解决方案的最终实现。

首先从函数库中搜索恰当的转换器匹配算法流程中的每一项操作(关键操作对应的转换器如表1 ),然后运用固有转换器构建自定义转换器,实现单个河网某一层级最长流径的实体化编码子过程(如图2),最后在主程序中循环调用单个河网某一层级最长流径实体化编码自定义转换器,结合其它固有转换器,搭建整个区域河流水系的实体化编码流程。最终设计完成的FME程序如图3。

表1 算法流程关键操作与FME转换器对照表

算法流程关键操作

FME转换器

长度计算

LengthCalculator

网络构建

NetworkTopologyCalculator

端点提取

Snipper

点点叠加分析

PointOnPointOverlayer

坐标提取

CoordinateExtractor

属性链接对照

FeatureMerger

列表分解

ListExploder

向量创建

VertexCreator

最短路径提取

ShortestPathFinder

统计分析

StatisticCalculator

条件判断

Tester

 

《2021FME博客大赛 —— FME在无名河流水系实体化中的应用实践》

                                                                                                                            图2 单个河网某一层级最长流径实体化编码自定义转换器

 

《2021FME博客大赛 —— FME在无名河流水系实体化中的应用实践》

                                                                                                                             图3 整个区域河流水系实体化编码主程序

4 应用案例

算法程序深度应用于国家基础地理信息中心全国水网数据结构化处理项目,效益显著。

算法程序实体化编码的结果与人工按照逐一统计、累加河段长度——比较、筛选每个河网当前层级最长河径——最长河径所含各条河段相同编码赋值的步骤轮回进行实体化编码的结果进行比对,吻合率100%。

无论常规的只有唯一汇水点的水系还是同时具有多个汇水点或者具有入河点、入湖点、断头点等多种类型汇水点的水系,无论支流与干流具有多对一关系的树状水系还是支流与干流具有多对多关系的网状水系,无论单个水系还是多个水系,实体化编码结果均严密地遵循了源头唯远、流程唯长的原则(部分实体化编码结果如图4)。

综合来看,所设计算法程序不仅具有高度的精确性和鲁棒性,而且在效率上具有手动实体化编码作业方式所无法比拟的优势。

 

 

《2021FME博客大赛 —— FME在无名河流水系实体化中的应用实践》

                                                                             (单汇水点)树状水系          (单汇水点)网状水系               多汇水点水系

                                                                                                                     图4 部分生产数据实体化结果(局部)

    原文作者:fmechina
    原文地址: https://blog.csdn.net/fmechina/article/details/115510021
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞