地理国情监测路网数据程序化更新研究地理国情监测路网数据程序化更新研究

2021-11-04 02:47吴森相
龙岩学院学报 2021年5期
关键词:赋值路网线段

吴森相

(福建省测绘院 福建福州 350003)

道路工程在推动区域经济发展,加快区域之间沟通交流等方面发挥着非常积极的作用。对道路信息进行精确识别和定位,在地理国情监测等方面有着不容忽视的意义和作用[1]。

地理国情监测的路网数据更新,主要从已完成数据采集成果中的铁路、公路要素层、城市道路层和乡村道路层中,将变化的铁路、国省县乡道、连接道等必要的要素以及保持交通网弧段连通所需的其他要素,在确保路网合理连通性的前提下,按照“重要性最高、距离最短、个数最少”的原则进行更新[2]。在历年的路网数据更新中,采用人机交互的方式提取道路变化信息,存在生产效率低下及图形、属性更新准确率不高等问题。为解决这些问题,本文以福建省地理国情监测项目路网数据更新为例,利用软件编程的方式实现路网数据的快速更新。

1 路网数据年度更新的特点

地理国情监测是对地表自然和人文地理要素的空间分布、主要特征、相互关系、时空演变等进行持续性的调查、统计、分析、评价、预测的活动[3],其基本特性包括数据的一致性、现势性以及继承性。路网数据更新包含国情监测的一般属性,也包括其自身的特性,即利用道路监测成果数据,提取图形、属性变化的要素,按照技术设计要求,将其转绘到路网数据层中。

2 道路要素变化类型分析

在地理国情监测中,路网数据更新与道路监测成果数据戚戚相关。道路层包括UV_LRDL(公路)、UV_LRRL(铁路)、UV_LCTL(城市道路)及UV_LVLL(乡村路),是以线状图形进行表达的。在年度监测中,道路变更包括道路新增、道路改道和拓宽、道路废弃以及道路属性发生变化等,因此相应的道路图形变化包括:(1)由于几何要素编辑需要被切分打断,但其空间位置未发生变化的要素;(2)实地未发生变化,只是根据精度更高的监测资料(如:高精度影像),对原有几何要素进行修正的要素;(3)属性发生了变化,但空间位置没有发生变化的要素;(4)实地道路发生了伸缩或者位移变化,对原有道路几何图形进行编辑的要素;(5)实地新建已完工的道路;(6)由于道路改道,实地道路已废弃使用的几何要素。

在地理国情监测中,道路变化信息采用CHANGETYPE字段进行记录的。CHANGETYPE值对应变化类型,如表1。

表1 CHANGETYPE值对应变化类型

3 路网数据图形更新

在地理国情监测中,路网数据图形更新包括图形分割和图形替换两部分。

3.1 图形分割原理

路网数据层(N_LRDL)的图形分割是在完成道路层(UV_LRDL)要素年度更新的基础上,根据CHANGETYPE值为“-1”和“1”的图形进行更新的。本底数据中,两个图层相关联各要素的空间位置、节点及属性是完全一致的,因此在软件编程中,路网数据依托于新增图形的节点进行图形分割,其原理设计如下:(1)从UV_LRDL层中提取CHANGETYPE值为“-1”和“1”的线段;(2)提取的线段及N_LRDL层中所有线段的节点分别生成空间点;(3)将分别生成的空间点进行擦除,剩余的点即为N_LRDL层线状要素需分割的空间位置点;(4)以剩余点为基点对N_LRDL层的线状要素进行切分。

图形分割的主要目的是保证N_LRDL与UV_LRDL要素分割的空间位置及线段长度保持一致,同时也为CHANGETYPE值为“1”“-2”和“3”的图形更新打下基础。

3.2 图形替换原理

图形替换是在图形分割完成的基础上进行更新的。图形替换包括新增道路、实地道路改道或道路属性变化引起的图形更新(如图1)。N_LRDL图形替换自动化更新实现中,根据路网数据更新的特性结合UV_LRDL层字段CHANGETYPE值进行设计。

图1 图形替换解析图

3.2.1 CHANGETYPE值为“0”的图形更新

路网数据按照更新原则,本底数据中其他公路的部分图形并没有在N_LRDL层中进行表达。因此,在实现程序化更新中,要充分考虑由其他公路升级为乡道及以上道路的图形更新。在程序自动化实现设计中,提取同时满足UV_LRDL层字段CHANGETYPE值为“0”、RN值第一个字符为“Y、X、S、G”和字段CHANGEATT值中有“RN”条件的要素,将本底数据 N_LRDL的要素与提取的要素进行擦除,擦除成果即为补充至N_LRDL层的要素。考虑到道路的连通性,对N_LRDL层中RN值相同的要素进行图形悬挂判断,如果线段两个端点都悬挂,将其提取出来,进行人工处理。

3.2.2 CHANGETYPE值为“1”“-2” 的图形更新

在国情监测中,N_LRDL层与UV_LRDL层的图形存在逻辑关系包括:(1)UV_LRDL层的图形完成包含在N_LRDL层内,(2)UV_LRDL层的图形部分包含于N_LRDL层内,(3)UV_LRDL层的图形不包含在N_LRDL层内。因此在N_LRDL层图形更新的程序设计中,依据两个图层图形的相互逻辑关系进行设计。如果两个图层的图形有包含关系(两条线段相交只有一个交点的除外),直接将UV_LRDL层的图形替换到N_LRDL图层中,属性与本底保留一致;如果两个图层的图形没有包含关系,直接提取UV_LRDL层的要素几何图形,拷贝到N_LRDL层中,除建库阶段处理的属性值外,其余要素属性与提取的UV_LRDL层属性值保持一致。

3.2.3 CHANGETYPE值为“2” 的图形更新

新增道路包括年度监测中新增的国省县乡道、连接道和原有道路技术等级降级的道路。在N_LRDL的图形更新中,主要考虑的是原有技术等级降级处理的道路,其余图形可以直接拷贝到N_LRDL层中。因此软件编程设计原理如下:(1)提取UV_LRDL层字段CHANGETYPE值为“2”的图形;(2)根据提取的要素与 N_LRDL层的要素进行重叠分析,如果两者100%重叠,保留N_LRDL层中的图形,除建库阶段赋值的属性项进行置空外,其余属性值保留不变;如果两者没有重叠(交点除外),将UV_LRDL层的图形(含属性)直接拷贝到N_LRDL层。

3.2.4 CHANGETYPE值为“3” 的图形更新

在路网数据层中,废弃道路的几何图形是不进行表达的。由于UV_LRDL层CHANGETYPE值为“3”的要素与N_LRDL层的要素图形是完成一致的,因此在程序快速更新编程中,根据其空间位置一致性的特点,按照以下原理进行设计:(1)提取UV_LRDL层字段CHANGETYPE值为“3”的图形;(2)将提取的图形与N_LRDL层图形进行空间分析,如果两者空间位置完全一致,则对N_LRDL层的图形进行物理删除。

4 路网数据属性更新

图形更新处理后,N_LRDL层与UV_LRDL层更新要素的空间位置是一致的,在此基础上,对路网属性进行更新、赋值。路网属性更新包括专用属性项的属性更新和CHANGTYPE字段赋值(如图2)。

图2 路网属性更新解析图

4.1 专用属性项的属性更新

路网数据的图形更新后,N_LRDL层与UV_LRDL层各相关要素的图形是完全一致的,因此在N_LRDL层专用属性项的字段更新中,只要对UV_LRDL层字段CHANGEATT值进行分析。如果UV_LRDL层字段CHANGEATT值为缺省值时,则N_LRDL层要素属性保留本底,不进行重新赋值;如果UV_LRDL层字段CHANGEATT值记录了要素属性变化后各字段名称,则N_LRDL各要素变化的属性值按照UV_LRDL层字段CHANGEATT记录的字段名称中的属性值进行更新,同时将UV_LRDL层字段CHANGEATT记录的字段名称,完整拷贝到N_LRDL层字段CHANGEATT中。

4.2 CHANGETYPE字段赋值

CHANGETYPE值的赋值是与本底数据中路网数据层的要素图形进行比对,根据要素唯一码(FEATID值)结合线段长度进行赋值。

在程序自动化更新设计中,按照这一特性对变化的要素进行赋值。其软件编程设计原理如下:(1)N_LRDL层要素与本底数据比对,FEATID值在本底数据中无法搜索到相同值时,则CHANGETYPE值赋值为“2”,同时将数据建库阶段赋值的通用属性项的值置空。(2)N_LRDL层中有多个一致的FEATID值,且线段的长度总和与本底数据中相同FEATID值的线段长度一致,则CHANGETYPE值赋值为“-1”。如果专有属性项的值也发生了变化,则将变化的属性项的名称记录在“CHANGEATT”字段中。(3)在N_LRDL层中有且只有一个FEATID值与本底数据中FEATID值一致且线段长度相等,如果专有属性项的值发生变化,则CHANGETYPE值赋值为“0”,同时将变化的属性项的名称记录在“CHANGEATT”字段中。(4)有且只有一条要素的FEATID值与本底数据中FEATID值一致但线段长度不相等,则CHANGETYPE值赋值为“1”。如果专有属性项的值也发生了变化,则将变化的属性项的名称记录在“CHANGEATT”字段中。(5)N_LRDL层中有多个一致的FEATID值,且其线段的长度总和与本底数据相同FEATID值的线段长度不一致,则CHANGETYPE值赋值为“1”。如果专有属性项的值也发生了变化,则将变化的属性项的名称记录在“CHANGEATT”字段中。

5 程序化更新流程设计与实现

5.1 程序快速更新流程设计

路网数据更新包括图形、属性更新。通过上述分析,除极少部分需人工处理的图形外,其余均可通过开发软件进行快速、程序化处理。考虑到人工处理的图形较少,在路网数据更新流程设计中,利用编程对图形、属性进行更新后,通过人机交互的方式对部分无法利用程序处理的图形进行更新。路网数据更新流程如图3。

图3 路网数据更新流程图

5.2 程序界面设计

程序运行界面设计包括数据输入输出栏、参数设置栏及运行情况栏等。其中输入输出栏包括未分区数据成果、多个分区数据成果调入及成果输出等功能;参数设置栏包括分区数据集前缀的设置、处理UV_LRRL及只处理道路降级等功能。软件运行界面设置如图4。

图4 软件运行界面及运行情况图

5.3 程序化更新的实现

路网数据程序化更新,是应用C#与Arc Engine组件式GIS软件平台,调用Arc Engine的Carto、Controls Cisplay、GeoDatabase、Geometry等组件实现系统的开发[4]。本文给出部分代码如下:

//创建目标数据集

IEnumDataset targetEnumDataset = resultWp.get_Datasets(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTAny);

IDataset targetDataset = targetEnumDataset.Next();

while (targetDataset != null)

{

if (targetDataset is IFeatureDataset)

{

if (usedDataset.ContainsKey(targetDataset.Name))

{

usedDataset.Remove(targetDataset.Name);

}

}

targetDataset = targetEnumDataset.Next();

}

foreach (string c_name in usedDataset.Keys)

{

IFeatureDataset fd = usedDataset[c_name] as IFeatureDataset;

ac.createDataset(fd, resultWp);

}

5.4 程序运行情况及更新结果

程序化更新部分成果如图5。图中实线部分为2020年路网数据对道路编码和名称进行了更新,虚线部分为新增的两条道路。经检核,程序对2019年本底数据更新,N_LRDL和UV_LRDL层要素的图形、要素属性值一致,符合技术设计、软件设计要求。

图5 快速更新部分成果图

6 结语

本文基于ArcGIS的二次开发的基础上,采用C#和Arc Engine开发环境进行编程,实现路网数据提取快速、自动化批量处理,改变了图形、属性更新人机交互作业、人工检查模式,极大提高了工作效率,已在福建省测绘院地理国情监测项目中得到应用。

在历年数据检测中,仍有极少部分的图形替换无法程序化批量处理,需要人机交互方式完成,此问题的解决方法,目前仍在研究中。

猜你喜欢
赋值路网线段
云南智慧高速路网综合运营管控平台建设实践
基于多源异构大数据融合技术的路网运行监测预警平台
宁夏高速公路路网“最强大脑”上线
画出线段图来比较
怎样画线段图
数线段
打着“飞的”去上班 城市空中交通路网还有多远
算法框图问题中的易错点
抽象函数难度降 巧用赋值来帮忙
利用赋值法解决抽象函数相关问题オ