基于arcpy实现地理国情监测路网更新自动化检查

2020-07-02 06:32任雷鹏
经纬天地 2020年1期
关键词:国情路网分区

任雷鹏

(山西省测绘地理信息院测绘地理信息数据中心,山西 太原 030001)

0.引言

地理国情是空间化、可视化的国情信息,是从地理的角度分析、研究和描述国情,是重要的基本国情之一。地理国情监测是综合利用现代测绘技术和各时期已有测绘成果档案,对地表覆盖和地理国情要素等进行全面普查和监测,并统计分析其分布特征与差异、变化量和变化频率以及相互关系等,形成反映各类自然资源、生态环境、社会经济要素的空间分布及其发展变化规律的地理国情数据、地图和报告。

其中地理国情监测成果建库是地理国情监测的重要内容,是对监测成果数据进行集成管理、统计分析、应用服务的前提,是为今后开展地理国情监测常态监测提供本底数据库及应用服务平台。地理国情监测数据库与传统的基础地理数据库相比,在技术要求和标准都有较大幅度的提高。由于在建库过程中遇到地理数据结构复杂、数据量大、数据源多等特点,因此需要在建库前对地理国情数据进行数据预处理。地理国情监测入库前预处理,是指按照数据库技术设计,对监测生产成果数据作入库前处理,使得成果数据内容及形式满足数据建库与管理要求。

在地理国情监测数据预处理过程中,路网数据更新与检查是整个数据预处理过程中很重要的一步。由于道路数据量大,更新情况比较多,更新工作量大,尤其是2019年收集公路数据中,道路数据属性变化比较多,全省道路数据有20多万条记录,发生变化的道路达到7万多条记录,更新比例超过30%。如果单纯依靠人工检查,在预处理时间不充裕的情况下,很难保证路网数据及时检查完成,因此需要实现对路网检查实现自动化检查,以提高质检效率。本文选择Python作为开发语言,以arcpy站点包作为工具,实现地理国情监测路网更新自动化检查,提高质检效率与质检准确率。

1.路网更新主要内容

路网更新是将本底数据N_LRDL层拷贝为变化数据层UN_LRDL,并按要求从分区数据中提取道路变化信息通用属性项,更新到相应路网数据中。

1.1 路网数据

地理国情监测路网更新数据包括本底路网数据和分区数据中变化道路数据。其中本底路网数据主要是指上一年度不分区数据中的路网数据,主要是由公路数据以及部分起联通作用的农村道路、城市道路合并的一套完整的道路路网。

分区数据中包括公路UV_LRDL、城市道路UV_LCTL、农村道路UV_LVLL,不分区数据库中包括路网本底数据N_LRDL,更新结果为UN_LRDL。路网更新数据(以太原市为例)(如图1所示):

图1 太原市路网更新数据

1.2 路网变化类型

路网变化类型主要包括三种变化:图形变化、属性变化以及图形和属性变化,变化类型通过属性字段changetype与changeatt两个字段表示。其中changeatt主要是记录变化字段,changetype主要记录变化类型,分别用 -2、-1、0、1、2、3、9 表示,Changetype 字段说明(如表1所示):

表1 分区数据道路中的Changetype字段说明

2.路网更新方法

路网更新方法是以上一年度路网数据UN_LRDL作为本底,从完成入库检查和修改的分区公路要素层UV_LRDL、城市道路UV_LCTL层和乡村道路UV_LVLL层中提取除标记为灭失的国道、省道、县道和乡道、连接道等要素以及保持公路网弧段连通所需的其他要素,提取后按照相应的变化类型,对UN_LRDL进行更新。更新时对路网中不再存在的路网弧段,直接进行物理删除,不记录变化类型。更新时注意保持路网连通性,最终形成以省级任务区为整体的不分区数据库文件UN_LRDL层,路网更新方法(如图2所示):

图2 路网更新方法

3.路网质检方法

路网质检主要是检查路网数据是否根据分区道路数据进行合理更新,主要包括图形信息与属性信息是否根据分区数据中道路变化类型进行相应更新。

3.1 需求分析

在数据预处理过程中,路网生产相对其他数据预处理工作量比较大。而且过程繁杂、参与作业人员较多,导致路网生产过程中出现数据质量不一致,不合理的情况相对较多。在全省数据汇交时,各类更新问题同时被发现,如果依靠人工检查,在汇交时间紧张,数据质量不能下降的情况下,路网质检很难做到及时准确发现问题。

由于分区数据中的道路数据分散在全省117个任务区数据库中,道路数据达到20多万条记录,数据量非常大。人工检查需要分别加载分区道路对比路网更新内容,过程繁杂,容易漏检查,因此,需要一款软件实现路网自动化检查,以提高质检效率。

arcpy是以arcgisscripting模块为基础,并继承了相应功能而构建成的站点包。它是以实用高效的方式通过Python执行地理数据分析、数据转换、数据管理和地图自动化创建基础。通过arcpy可访问地理处理工具和其他函数、类和模块,从而快速轻松地创建各种简单或复杂工作流。本文选择Python作为编程语言,结合arcpy站点包实现路网质检自动化,通过程序实现路网问题的快速定位,以快速反馈给作业人员及时进行相应修改,提高数据预处理的效率。

3.2 整体设计

根据路网数据与路网更新方法,质检程序整体设计主要包括读取数据、数据预处理、数据分析对比、结果输出四个模块。其中数据分析对比是整个程序的主要模块,根据地理国情监测路网更新方法,在此确定数据对比分析分为图形更新检查与属性更新检查,整体设计(如图3所示):

图3 整体设计图

3.3 详细设计

通过对数据内容与总体设计分析,结合python特点,分别对数据读取、数据预处理、数据分析对比、成果输出四个部分进行详细设计,详细设计(如图4所示):

图4 详细设计图

3.3.1 数据读取

由于分区数据中道路包括UV_LRDL、UV_LVLL、UV_LCTL,分别存储在分区数据库的数据集中,分别读取比较费时费力,在此我们利用arcpy.ListWorkspaces与arcpy.ListFeatureClass函数实现对分区数据库中道路的遍历。

3.3.2 数据预处理

第一步,通过数据遍历获取各分区数据库中的UV_LRDL、UV_LCTL、UV_LVLL,利用 arcpy.Append_management实现各分区道路的合并,将质检任务区内分区道路合并成整个任务区完整道路。

第二步,由于路网更新主要是更新UV_LRDL中变化数据,而UV_LCTL与UV_LRDL存在道路重叠情况,因此,需要先通过空间选择算法将重叠的城市道路选出并进行删除操作,在此主要用到arcpy.SelectLayer ByLocation_management与arcpy.DeleteFeatures_management函数实现。

第三步,是需要将整合的UV_LRDL、UV_LCTL、UV_LVLL进行进一步合并,形成融合公路、城市道路、农村道路的数据UV_LRDL1,方便下一步对路网数据进行对比,在此主要利用arcpy.Merge_management函数实现道路合并。

3.3.3 数据分析对比

数据分析对比主要包括图形对比与属性对比。

图形对比分为两部分,分别是对打断更新识别判断与对伸缩、新增、灭失等更新的识别判断。

(1)对道路容易漏更新的打断更新进行检查,主要检查changetype为 -1、0的变化道路;利用FeatureVerticesToPoints_management函数实现道路断点的提取,然后对两者进行擦出,提取多余断点,生成断点图层,并输出到结果数据库中。

(2)对变化类型为微调、伸缩、新增、灭失等更新的检查,重点检查 changetype为 -2、1、2、3、9 等变化类型的UN_LRDL是否根据分区数据进行相应更新。分别提取UN_LRDL1与UN_LRDL中变化要素,利用arcpy.Erase_analysis进行擦出操作,提取图形未更新的道路,并输出到结果数据库中。

属性对比主要包括道路相交提取与字段对比两部分。

(1)针对发生变化的UV_LRDL1与相同位置的UN_LRDL进行字段对比,通过筛选UV_LRDL1中变化数据与路网数据进行相交,利用arcpy.Intersect_analysis实现道路相交形成新图层,然后利用arcpy.AddField_management实现字段追加,新增字段用来记录字段值不相等的字段名称。

(2)对相交形成的新图层进行字段对比实现分区道路字段与路网字段的训循环对比。如果字段不相等,则在新增的问题字段中追加相应字段名称,利用arcpy.da.UpdateCursor实现对新增字段的字段值更新。

3.3.4 结果输出

质检结果主要包括三层数据,分别是漏打断更新的点图层、判断伸缩、新增、灭失等更新不一致的线图层、判断字段更新不一致的线图层。

4.结束语

本文研究了使用Python和arcpy实现路网更新自动化检查。经实践,通过该程序能快速定位路网更新问题,提高质检工作效率。相比人工检查,质检程序能高效、准确的定位更新问题,以往需要数天甚至十多天的质检工作,缩短至十几分钟,极大的提高质检效率。

在实践操作过程中,同时发现汇交数据的多样性与数据问题的差异性,造成全省路网数据检查过程中,个别问题仍需要依靠人工排查。因此,还需认真研究建立相关检查方法与检查模型,最大程度的实现计算机自动化检查,以促进地理国情监测数据预处理工作与汇交工作的顺利、快速、准确的完成。

猜你喜欢
国情路网分区
贵州省地质灾害易发分区图
上海实施“分区封控”
悠悠游子心 深深家国情——一个普通海外留学生的成长
家国情 诗词魂
浪莎 分区而治
打着“飞的”去上班 城市空中交通路网还有多远
推广生物乙醇汽油:迫切且合乎国情
省际路网联动机制的锦囊妙计
首都路网 不堪其重——2016年重大节假日高速公路免通期的北京路网运行状况
路网标志该如何指路?