栗敏光,许庆领,申朝永
(1.自然资源部重庆测绘院,重庆 401120; 2.贵州省第三测绘院,贵州 贵阳 550004)
水系是一种重要的自然地理要素,被喻为地形的骨架[1]。水系数据是基础地理信息数据和地理国情普查数据的重要组成部分[2,3]。水系实体化是推行河长制,开展水文分析、水灾监测、水路交通管理和流域生态环境管理等深层应用的基础[4]。水系的构成主体是河流。水系实体化的核心是河流实体化。由有名河流组成的水系的实体化易于根据名称属性结合空间连通性加以实现。由无名河流组成的水系的实体化则无法借助属性,而只能依据其自身的空间特征和一定的准则来进行。在空间结构上,河流水系通常由多重干流与支流所组成[5],具有显著的层级特征。在几何形态上,虽然河流水系可以表现为复杂多样的类型[5],却具有网络连通的共性特征。综合来看,河流水系可以抽象为由从高到低各个层级的干流所组成的网络体系(终极支流亦可理解为最低层级的独立干流)。由此,无名河流水系的实体化可以解析为从高到低确定各个层级干流对象的过程[6]。许多学者基于这一思路针对这一问题进行了卓有成效的研究。由采用人工方式或单纯依据长度(河段长度和最大)准则[7],到角度(干流与支流夹角最小)与级数(河段层级数量最多)准则的结合[8],再到长度与角度、级数、落差(水位高差最大)、面积(集水面积最大)等多个准则综合[6,9],干流对象的确定策略获得了不断优化,然而这些研究成果都仅仅支持无环路(树状)拓扑结构的水系,且未考虑同一水系存在多个汇水点的情况。
作为GIS空间分析技术的重要组成部分,GIS网络分析是一种通过将数据建立为网络模型并依据网络模型的拓扑关系(弧段与弧段之间、弧段与结点之间、结点与结点之间的联结关系)对网络模型的特征与性能进行计算和分析的技术[10]。GIS网络分析的基础与核心是最短路径分析[11,12]。
本文依据干流对象确定准则中运用最为广泛的长度准则,援引GIS网络分析中的最短路径分析技术并加以逆向运用,设计了一种无名河流水系实体化算法,基于FME软件平台加以实现,利用模拟数据和地理国情普查监测成果深化应用——全国水网数据优化处理项目生产数据验证了其合理性。
河流水系在拓扑结构上可以建立为网络模型,因而具备应用GIS网络分析技术的基础和条件。实现无名河流水系实体化的核心是确定干流对象,且通常采用长度准则(亦即所谓源头唯远、流程唯长的原则)。于是无名河流水系的实体化就归结为在河流网络中寻找从各个源头到汇水点的最长流径的问题,这正是GIS网络分析技术中的最短路径分析所要解决的问题。只不过经典的最短路径分析技术以路径最短为取向,本文命题须要对其加以逆向运用。从具体操作的意义上讲,河流水系实体化的实质就是为一个将构成同一河流的各条河段的标识实体的属性赋予相同属性值[13],也就是说,提取出的河流水系实体需要加以实体化标记或者编码才算实现完整意义上的河流水系实体化。同时不难发现,要实现整个河流水系的实体化,实际上需要完成一个从高到低确定各个层级干流对象的不断循环往复的过程[6]。
基于以上分析构建本文算法的基本思路,具体可以分解为以下几个步骤。
第一步是构建流径分析因子。以获取道路网络中起点与终点之间的最短路径为目标的经典最短路径分析是以路段长度作为分析因子的,欲同样运用最短路径分析技术获得河流网络中各个源头点到汇水点的最长流径则需以河段长度倒数为分析因子。通过提取以河段长度倒数为因子的最短流径来逆向获得以河段长度为度量的最长流径。
第二步是划分河网体系,即将整个区域水系根据连通性特征划分为内部贯通且彼此独立的不同河流网络体系,进而对每个独立的河网体系实施分析。
第三步是以河网体系为单元构建源汇点向量,又分解为三小步。第一小步是提取河网各条河段的起点和终点(亦即有向线段的首末节点)。第二小步是河网所有河段端点叠加,通过重叠数提取其中的悬挂点。其中悬挂的起点即为河网源头点,悬挂的终点即为河网汇水点。第三小步是以河网为单元构建各个源头点与各个汇水点的两两组合,亦可理解为河网所有源头点到所有汇水点的向量。
第四步是河网各个源汇点向量对应最长流径提取。给定一个源汇点向量,利用最短路径分析技术即可获取从源头点出发流经河网体系各条河段到达汇水点的最长流径。
第五步是所有河网当前层级最长流径提取,通过计算第四步提取出的各个河网各个源汇点向量对应最长流径的长度并加以统计分析即可完成。
第六步是所有河网当前层级最长流径实体化编码,即对所有河网当前层级最长流径所包含河段赋予相同的实体编码而将其标识为同一条河流实体。
第七步是对未完成实体化编码的河网河段返回第二步,循环执行第二步至第六步的操作,直至所有河网所有河段全部完成实体化编码。
算法流程如图1所示。
基于FME软件平台,调用其函数库提供的丰富的转换器,定制可视化工作流实现上述算法。首先从函数库中搜索恰当的转换器匹配算法流程中的每一项操作(其中关键操作与转换器对照表如表1所示),然后运用固有转换器构建自定义转换器,实现单个河网某一层级最长流径的实体化编码子过程(如图2所示),最后在主程序中循环调用单个河网某一层级最长流径实体化编码自定义转换器,结合其他固有转换器,搭建整个区域河流水系的实体化编码流程。最终设计完成的FME程序如图3所示。
图1 算法流程图
算法流程关键操作与FME转换器对照表 表1
图2 单个河网某一层级最长流径实体化编码自定义转换器
图3 整个区域河流水系实体化编码主程序
分别利用模拟数据和部分生产数据开展了试验。其中,模拟数据囊括了单汇水点、多汇水点、树状、网状等不同拓扑结构类型水系,生产数据为地理国情普查监测成果深化应用——全国水网数据优化处理项目云南、西藏、新疆国际河流诸河流域5级以下2个水网300余条河段。算法程序实体化编码的结果与人工按照逐一统计、累加河段长度——比较、筛选每个河网当前层级最长河径——最长河径所含各条河段相同编码赋值的步骤轮回进行实体化编码的结果进行比对,吻合率100%。无论常规的只有唯一汇水点的水系还是同时具有多个汇水点或者具有入河点、入湖点、断头点等多种类型汇水点的水系,无论支流与干流具有多对一关系的树状水系还是支流与干流具有多对多关系的网状水系,无论单个水系还是多个水系,实体化编码结果均严密地遵循了源头唯远、流程唯长的原则(部分实体化编码结果如图4所示)。试验证明,本文算法程序不仅正确合理,具有广泛适用性,而且在效率上具有手动实体化编码作业方式所无法比拟的优势。
图4 试验数据实体化结果
本文算法突破了现有相关研究成果研究对象和适用范围的局限性,是GIS网络分析技术在水系数据处理中的一个有效应用,为无名河流水系的实体化提供了有力的工具,为水系数据建库等进一步深加工处理奠定了坚实的基础。