基于模型构建器的地理国情数据更新字段说明自动赋值方法

2021-11-17 00:51耿源浩杨旭东王子强刘博文黄迎春纪雷鸣
北京测绘 2021年10期
关键词:字段赋值国情

耿源浩 杨旭东 王子强 刘博文 黄迎春 纪雷鸣

(1. 北京市测绘设计研究院, 北京 100038; 2. 城市空间信息工程北京市重点实验室, 北京 100038)

0 引言

地理国情监测工作以地理国情普查数据为支撑,针对自然社会资源等自然和人文地理要素进行监测,通过遥感以及全球定位系统(Global Positioning System,GPS)等技术,对地理要素进行变化特征趋势等方面的分析[1]。地理国情监测工作的内容主要是对自然地理要素以及人文地理要素进行调查,对相关地理国情信息进行统计分析,以此为城乡规划、环境整治和重要工程等提供一定的决策依据[2]。目前的地理国情监测工作需要通过使用ArcGIS对大量数据进行分析和处理,其中ArcToolbox的各种工具被广泛地应用于实际的生产工作中。ModelBuilder是ArcGIS提供的一种可视化编程环境,通过直接利用ArcGIS平台中的各种工具,按照一定的规则将工具进行组合,形成一个完整的流程化的模型程序。ModelBuilder具有以下特点:可视性、快捷性、组合性[3],构建的模型程序可以通过流程化、自动化的方式保存和共享,减少重复性的劳作[4]。

本文提出一种基于ModelBuilder的数据更新(ChangeAtt)字段说明进行自动赋值的方法,通过简单的一键操作即可对数据更新字段说明进行自动更新,操作人员不需要具备地理国情数据整理的相关知识就可进行生产工作。在面对海量的地理国情数据时,仍能高效、快速地对更新字段说明进行自动赋值[5]。

1 数据更新字段说明赋值方法

ChangeAtt字段主要体现的内容为本底地理国情数据(上一年度的监测成果)与现年度的成果数据在属性上发生的改变,将变化属性相应的编码填入本字段。如若存在同一要素的属性发生两种及以上变化,则用“/”对编码进行分割。以北京市地理国情单体建筑数据为例,其属性字段如表1所示,需对其各种属性进行差异分析。

表1 地理国情监测数据更新字段包含内容属性及编码

数据更新字段说明可帮助相关人员对要素属性的变化情况进行直观地核验,客观且真实地反应单体建筑的地上建筑规模、地上层数等属性变化情况。

传统对数据更新字段说明赋值需要对本底数据和版本数据通过要素唯一识别码进行挂接,挂接成功之后逐条对相关属性说明字段进行变化分析,将变化的部分在数据更新字段中通过对应的编码进行标识。在生产工作中,需要将ArcGIS中多种工具组合使用,然而待处理的数据量往往非常庞大,完全依靠人工干预不仅会致使生产效率低下,还会导致随机误差产生。

将2020年房山区地理国情监测单体建筑数据作为测试数据,一台普通工作电脑作为测试工具,针对17个字段,采用传统人工赋值的方法对更新字段说明进行更新,一个人使用普通工作机则至少需要13 h的时间才可完成处理工作。如果涉及全北京市的数据更新字段说明的处理,时间成本会以指数型的量级增加,并且由于数据量的庞大,人工操作的过程中误差的产生率会极大地增加。

2 基于ModelBuilder的地理国情数据更新字段说明自动赋值方法

2.1 关键技术

地理国情数据更新字段说明自动赋值主要关键技术是基于ModelBuilder,将ArcToolbox的所需工具进行符合逻辑的组合,从而形成一个完整且连续的模型,简化多部操作[6]。通过计算机自动处理提高工作效率,降低误差率。应用ArcGIS模型构建器构建模型的本质是对ArcToolbox工具进行充分利用。但是在实际使用的过程中,需要对其逻辑性以及可行性进行评估,即所需实现的功能是否能通过ArcGIS软件得到实现。所构建模型主要的组成部分为:输入数据、空间处理工具、输出数据[7]。

2.2 技术要点

基于ArcGIS ModelBuilder对地理国情数据更新字段说明自动赋值方法,需要掌握以下几个技术要点:

一是利用结构化查询语言(Structured Query Language,SQL)和VB(Visual Basic)编程语言语句对数据进行筛选以及赋值,SQL作为一种查询语句[8],在本实验中的作用是对监测数据和本底数据进行筛选,筛选两期数据目标属性产生差异的单体要素,之后通过VB语句对筛选后的要素根据相应的编码进行赋值。

二是需掌握ArcGIS相关应用知识,ModelBuilder作为ArcGIS的一个组件,以可视化流程化的方式将数据处理中的多个处理任务进行继承处理,将相应的脚本工具加载进入作业区,以一定的逻辑性进行连接,不需要针对脚本工具编写程序就可以建立高效且精准的工作流[9]。

三是需掌握北京市地理国情监测技术标准, 北京市地理国情内容与指标体系是根据北京市的实际需求结合国家对地理国情监测内容指标的要求进行制定[10]。本文中所涉及的相关内容均来自2020年北京市地理国情监测内容与指标。

2.3 技术流程

北京市地理国情监测单体建筑数据更新字段主要包括监测数据的地理国情信息分类码、建筑编码、门牌地址、占地面积、总建筑规模、地上建筑面积、地上层数、地下层数、地下建筑面积、建筑高度、房屋性质、建筑使用性质、土地性质、所在区县、所在乡镇、数据来源、外业说明。北京市每个区县的监测数据属性内容原则上具有一致性,本文选择房山区2020年的单体建筑数据作为实验数据,主要技术流程如图1所示。具体模型如图2所示。

图1 基于ModelBuilder的地理国情数据更新字段说明自动赋值技术流程

图2 更新字段说明自动赋值模型结构

2.3.1本底数据与监测数据连接

将监测数据和本底数据导入模型构建器内,加入ArcToolbox中的连接字段工具。之所以使用连接字段工具,是因为连接字段是一种永久连接,可使之后按属性进行分类筛选符合条件的单体要素时的速度得到显著提高。将要素唯一识别码作为监测数据和本底的属性连接字段而不采用空间挂接的方式,是因为采用这种方法可以避开在实际生产工作中由于精度提高使单体建筑矢量发生空间位置偏移或变形而带来的影响。

2.3.2添加标识字段

为了方便记录数据更新字段,建立新的字段作为计算操作的基础。字段名命名为“chayi”,字段类型选择字符串。

2.3.3筛选要素并对其赋值

在模型编辑器中加入按属性查找工具并运用SQL查询语句,对单体要素进行筛选。SQL可视为数据查询的特殊语言,通过SQL语句对本底数据和监测数据所感兴趣的字段进行筛选,筛选出属性发生变化的要素。得到筛选后的单体建筑要素后,通过VB语言并且参照相应属性说明字段的编码进行赋值。由于存在多种属性发生变化的单体建筑,需要通过[chayi]&“编码”形式的语句对筛选后要素的“chayi”字段进行计算,此表达式的具体意思为“chayi”字段中的原始数据得到保留后,在其后添加入自己所规定的内容,通过这样的方式可以完整地保留经多次筛选得到的成果记录。以地理国情信息分类码发生变化的单体建筑要素为例,计算字段时的表达式应为:[chayi]&“/CC”。

2.3.4字段处理

由于实际生产中存在只有一种属性发生变化的单体建筑,以至于“chayi”字段中会出现例如“/CC”这种间隔符在字段内容前的情况,这种情况不符合技术设计要求,所以需要对这种单体建筑要素的“chayi”字段进行处理以满足生产标准,将例如“/CC”通刷为“CC”。此时会运用到VB语言中的MID函数“Mid(string, start[,length])”,string为字符串的名称,start[,length]的意义为从第A个字符开始,截至B个字符,其中的字符串得到保留。所以选择从第二个字符开始,对其之后的所有字符进行保留,则表达式为Mid([chayi],2,1000)。并且由于此模型选择将两期房屋单体建筑进行的连接是一种永久链接,所以就会导致本底房屋单体数据的属性值会被复制到监测数据内,所以就需要采用删除字段工具对其进行删减。

3 实验结果分析

由于数据量过于庞大,本文选取房山区某一单体建筑做为举例说明。表2为房山区某一单体建筑2019年和2020年ChangeAtt字段所要体现出差异的属性字段。

表2 房山区某单体建筑ChangeAtt字段属性字段

依据表2可知,这一单体建筑在2019—2020年间的CC、ABOVE_AREA、ALL_AREA、PAREA、SOURCE、U_PROPER属性均发生了改变。经过基于ModelBuilder编译模型处理后的结果如表3所示。

表3 房山区某单体建筑ChangeAtt字段

经过模型处理后的ChangeAtt字段将本单体存在的变化全部进行了标识,其规范以及标准完全符合2020年北京市地理国情监测任务规定的相关标准。ChangeAtt字段将单体建筑在一年间的变化进行了非常直观并且全面地展示,便于对地理国情数据进行相关统计分析工作。

基于ModelBuilder的地理国情数据更新字段说明自动赋值方法只需要对模型进行架构,然后将本底数据和监测数据加载入编写的模型内且不需要人工对中间过程进行干预,完全依靠计算机就可以对更新字段进行自动赋值。不同于传统人工赋值的手段,传统手段需要人工对每一项操作进行干预,从链接字段到赋值皆需要至少一个人全程监督。

经过2020年地理国情监测工作的检验,运用基于ModelBuilder的地理国情数据更新字段说明自动赋值的方法,对北京市房山区这样拥有众多单体建筑的区县,一个人操作普通工作机只需要大约1 h即可完成数据更新字段说明的工作。但是如果通过传统人工赋值的手段,需要大概13 h才可以完成相应工作;如果由于人为疏忽产生错误,对其进行修正同样需要大量时间。

4 结束语

通过ArcGIS ModelBuilder进行模型的编写,以此来完成地理国情数据更新字段说明自动赋值的方法在2020年地理国情监测工作的实际应用中得到了充分的验证,通过模型构建器进行地理国情数据更新字段说明自动赋值的方法具备以下几个特点。

一是自动性,将监测数据和本底数据加载入编译的模型内,完全依靠计算机进行自动赋值,不需要人工进行任何干预,节省人力成本。

二是高效性,通过计算机自动操作,即使是庞大的数据量也可将所需时间压缩10倍左右,可以在实际生产工作中节省时间成本。

三是准确性,完全依靠计算机,摆脱人工干预,不需要人为进行机械性的工作,减少随机误差的产生。

由于北京市的地理国情监测任务标准每年存在变化,需要对模型进行相应的调整,以便满足实际生产工作中的需要。本文提出基于ModelBuilder的地理国情数据更新字段说明自动赋值的方法,以此希望ArcGIS ModelBuilder在之后的北京市地理国情监测工作中得到更多的应用。

猜你喜欢
字段赋值国情
侨眷焦治稼:“古渡诗人”的家国情
带钩或不带钩选择方框批量自动换
悠悠游子心 深深家国情——一个普通海外留学生的成长
家国情 诗词魂
漫画
浅谈台湾原版中文图书的编目经验
算法框图问题中的易错点
抽象函数难度降 巧用赋值来帮忙
利用赋值法解决抽象函数相关问题オ
无正题名文献著录方法评述