倪锡春,范园园,陈永良
(德清县地理信息中心,浙江德清 313200)
基于ModelBulider的城市部件数据建库
倪锡春∗,范园园,陈永良
(德清县地理信息中心,浙江德清 313200)
城市部件数据建库是将城市部件外业普查成果CAD图形转换为SHP格式,并增加权属数据、网格编码和部件编码等属性信息的过程。该过程数据处理操作工作量大,并且处理流程稳定,重复性强。使用ModelBuilder模型构建器制作城市部件数据处理模型,依次调用数据处理工具,可以自动完成数据处理工作,减少大量重复工作。
城市部件;数据建库;ModelBuilder;模型
作为城市管理的新模式,“数字化城市管理系统”(以下简称“数字城管”)把井盖、路灯、邮筒、停车场、电话亭等城市元素都纳入城市信息化管理的范畴,在“单元网格”基础上,给每个公共设施配上一个“身份证”。“数字城管”实现了城市市政管理设施、市容环境和秩序的精细化、规范化、科学化管理,在现代化城市管理和公共服务中起到了重要作用。城市部件是指城市管理公共区域内的各项设施,可分为公用设施类、道路交通类、市容环境类、园林绿化类、房屋土地类、其他有关设施以及扩展部件类。城市部件数据信息是“数字城管”的数据之源,城市部件的信息普查及数字化建库是“数字城管”的基础,是项目建设过程的重要环节[1~2]。
城市部件数据建库是在外业普查的基础上,将各部件的空间信息与属性信息连接,并以地理空间数据的形式存储在Oracle数据库中。数据建库的流程如图1所示。
2.1 外业数据采集
城市部件数据包括部件所在地理位置和属性信息,主要通过外业调查来获取。城市部件地理位置的采集首先利用GPSRTK实施控制测量,再采用全站仪测量,并在测量的同时,同步记录该部件的属性信息。城市部件外业测量成果通过CASS软件绘制成CAD图形,属性信息整理成Excel格式的表格数据。
2.2 内业数据处理
城市部件外业成果CAD图和Excel属性表以文
图1 城市部件数据建库流程图
件形式存储。根据建设部《城市市政综合监管信息系统管理部件和事件分类与编码》规定,内业数据处理的过程需对上述无属性的CAD图形和信息量庞大的部件信息数据、照片和纸质资料,还有城市部件权属数据、网格编码和部件编码等,进行数据整理和挖掘。将DWG格式的空间数据转换成Geodatabase格式,录入部件的属性信息,并将数据存储到Oracle数据库中[3]。
传统的城市部件数据建库可选用ArcGIS、MapGIS等平台软件,进行多次手动处理,达到预期的建库目标。也可在现有数据采集软件基础上,进行二次开发,构建数据建库处理软件。
3.1 基于数据处理软件的手动处理数据建库
手动处理数据建库(如图2所示)需要在ArcGIS中进行多次使用ArcToolBox中的数据处理工具,进行数据格式转换和数据属性增删。
图2 手动处理数据建库
手动数据建库的过程所使用的工作量大,步骤繁琐,存在大量的重复工作。对于海量数据处理,手动数据建库方法不可取。
3.2 基于CAD或AE二次开发的平台式数据建库
据调查,ArcGIS和AutoCAD是实现部件采集软件二次开发的首选平台。ArcGIS平台所生产的部件数据不需要数据格式转换,可直接应用于“数字城管”的系统平台,但ArcGIS图形表达能力差,不适宜绘图。也可以在AutoCAD中进行二次开发,将每类部件的每个图形对象的“Handle”(句柄)和属性信息写到单独的一个Excel文件中,然后在ArcMap中直接读入DWG格式文件,另存点、线、面为SHP格式,再将SHP文件和xls文件通过共有的Handle信息进行关联,实现SHP文件中部件或格网实体的生信息[4]。
基于二次开发的数据建库处理软件可以完成图形数据的导入生成、属性数据与图形数据的连接、数据的修改与编辑、拓扑关系生成与检查、数据库文件的合并等多种复杂功能,但是二次开发的过程需要一定的编程技能,推广性不强。
4.1 ModelBulider简介
ModelBuilder模型构建器是一个用来创建、编辑和管理模型的应用程序。模型是将一系列地理处理工具串联在一起的工作流,它将其中一个工具的输出作为另一个工具的输入。也可以将模型构建器看成是用于构建工作流的可视化编程语言,为设计和实现ArcGIS中各种数据处理提供了一个图形化的建模环境。模型是以流程图的形式表示,该流程是由数据处理工具和数据组成,模型可以直接生成脚本语言。与脚本语言结合起来,建立模型,实际上是一种图形化编程,但技术要求大大降低,可以最大限度地重用,减少重复性的劳动[5]。
ArcGIS 10对模型构建器进行了显著增强,更新了模型构建器的工具条和菜单,专门为模型构建器设计了一系列新工具:迭代器和仅模型工具。新增了12个迭代器,用于迭代或模型中的重复任务;仅模型工具只能用在模型构建器中,不能独立使用,也不能用于脚本编写[6]。
4.2 城市部件数据处理关键步骤
城市部件外业普查是在单位网格的基础上分区块进行的,为保证部件的完整性以及部件属性信息的完整性、准确性和定位精度,城市部件数据建库的数据处理过程也需要及时地对区块数据进行处理。城市部件外业测量成果整理为DWG格式的图形数据和Excel格式的属性数据。数据建库的过程需要将DWG空间数据转换成Geodatabase格式,录入部件的属性信息。关键步骤包括: CAD数据转换成Geodatabase格式、增添外业普查属性、自动检验、批量删除字段、自动分层、自动编码等。
城市部件数据处理的工作流程稳定,数据处理步骤都需要多次重复,使用模型构建器制作数据处理模型则可以减少大量重复工作。
(1)CAD转Geodatabase
ArcGIS 10版本弃用了CAD转出至地理数据库工具集,新增“CAD至地理数据库(Geodatabase)”工具,它能自动执行一系列转换过程,包括导入CAD注记及合并相同的要素类名称、类型和属性。但是CAD注记和要素实体并没有直接连接,要实现CAD注记信息录入到要素实体的属性中,则需要另外完成下述连接操作[6]:
以Point(点)类为例,CAD转成Geodatabase之后,选择Point点层和Annotation注记层,进行空间连接,将离点最近的注记属性连接到该点属性。又因为Annotation注记层是面状的,不能直接与Point点层进行空间关联,需要使用“Feature To Point”进行转换,将Annotation注记转换为point图层,再与Point点层进行空间关联。这样就完成了CAD注记信息录入到要素实体的属性中的连接操作。
(2)添加外业普查的属性信息
由于CAD数据转换成Geodatabase地理数据格式,完成CAD注记信息录入到要素实体的属性中的连接操作之后,以《城市部件属性调查表》中“流水号”字段与注记“Text”字段为连接字段,实现要素实体与外业普查的属性信息连接。
(3)自动检验
在城市部件外业普查成果进行CASS绘图时,部件分层是按照每一小类一个图层进行分层。因此,通过图层信息和部件名称可以进行自动检验,检验部件分层是否正确、属性是否完整。自定义的自动检验工具,调用ArcPy站点包中的SelectLayerByAttribute_management函数来选中图层信息与部件名称不对应的要素。如果选择集为空则输出bool型结果“Yes”,自动检验合格。如果选择集不为空则输出选中的要素,在当前ArcMap视图中显示选择的数据,需要进行相应的属性修改。经过自动检验合格的数据进入下一部处理过程。
(4)迭代分层
迭代要素选择(Iterate Feature Selection)是ArcGIS 10新增迭代器工具集(Iterators)中的工具,用于迭代要素类中的要素。迭代要素选择工具可调用创建要素图层以创建新选择和两项输出:所选要素和值[7]。输出所选要素为要素图层,可在其地理处理工具中使用,如3图所示:迭代输出的I_Point_SpatitalJoin111_Layer图层可以作为CopyFeature工具的输入要素,输出的Value值可以作为CopyFeature工具的行内变量,作为CopyFeature输出要素类的名称。
如图3所示,图3(a)图以Point_SpatitalJoin111图层为例,以部件名称为分组字段,同时将部件名称作为行内变量对分层图层进行命名。图3(b)图为的分层结果。
图3 自动、迭代分层
(5)自定义编号脚本工具
根据《城市市政综合监管信息系统管理部件和事件分类、编码及数据要求》[9],部件代码由10位数字组成,依次为:6位县级及县级以上行政区划代码、2位大类代码、2位小类代码。部件标识码结构为:部件代码+流水号。流水号为6位,依照部件定位标图从000001~999999由小到大顺序编写[8]。
在ArcGIS 10版本中安装了Python 2.6版本。Python窗口取代了“命令行”窗口,可在Python窗口中以命令行方式执行工具,也可以可将∗.py文件导入到工具中创建自定义脚本工具。图4(a)为部件标识码编码的部分Python代码:
图4 自定义编码
将∗.py文件导入到工具后,需要对其进行参数设置。如图4(b)所示,自定义部件标识码编码脚本工具属性设置及其使用方法。
(6)单元网格编码
根据《城市市政综合监管信息系统单元网格划分与编码规则》,单元网格编码由14位数字组成,依次为:6位县级及县级以上行政区划代码、3位街道(镇)代码、3位社区代码和2位单元网格顺序码[9]。因此单元网格编码生成过程中,需要多次空间连接。
(7)图层符号化
向ArcMap内容列表添加模型输出时,可通过引用图层文件(.lyr)预定义模型输出的符号系统。在模型变量的图层符号系统属性中对引用的图层符合系统进行设置,指定引用的符号系统[10]。
4.3 城市部件数据处理模型设计
在上述城市部件数据处理关键步骤中,除单元网格编码和图层符号化不需要重复进行,其他数据处理步骤都需要多次重复,使用模型构建器制作数据处理模型,则可以减少大量重复工作。
(1)模型整体设计
城市部件数据处理的整体模型设计如图5所示,实现的功能包括:CAD数据转换成Geodatabase格式、实体要素与注记的连接、批量删除字段、录入外业普查属性、属性自动检验、关联单元网格、迭代分层、分类编号等。
图5 城市部件数据处理的整体模型设计
(2)模型参数设置
模型的重复使用可以通过变换模型变量来实现。ModelBulider中的任何模型变量都可以转换为模型参数。将变量转换为模型参数后,可以在模型工具对话框中指定此参数的值。以在(1)模型整体设计为例,将输入的CAD文件“德清开发区东20121008a.dwg”、Geodatabase工作空间“20121008a.gdb”和外业普查数据“普查属性”设置为模型参数。在模型运行后通过输入窗体,选择各个区块的外业汇总数据,实现对点状部件的处理。通过选择“子数据元素”参数来更改数据类型,分别对点、线、面状部件进行处理。
4.4 模型运行
模型建成后,尚未准备好运行的工具显示为白色,为工具指定了全部所需参数值后,准备运行的工具显示为黄色,运行中的工具显示为红色,已运行的工具和派生数据元素带有下移阴影。可以在模型构建器或者模型工具对话框中运行模型,打开模型工具对话框,输入所对应的模型参数,即可单击确定运行模型。
由此可见,只要是ArcGIS能够处理的过程,都可以使用ModelBuilder建模来简化空间数据的处理,同时还可以使用脚本创建的工具,支持循环和逻辑判断,构建复杂的嵌套的模型。使用ModelBuilder建模的方式进行城市部件建库数据处理,可以避免大量的重复劳动,极大提高了数据处理的效率。利用ModelBuilder建模进行复杂的数据质量检验还需要深入的探索和研究。
[1] 李五夫,李宇新.浅谈哈尔滨市城管部件普查与项目管理方法[J].测绘与地理信息空间,2008,31(1):186~188.
[2] 周灵勇,曹学礼.城市部件普查工程项目管理的研究与实践[J].城市勘测,2002,4(2):31~35.
[3] 苏铁柱,宋以胜,宋奇海等.数字城市管理部件快速入库方法探讨[J].测绘通报,2008(7):60~62.
[4] 陈再春,张云青.“数字城管”数据处理的关键技术研究[J].城市勘测,2009(3):16~18.
[5] ESRI,ArcGIS Resource Center,什么是模型构建器[DB/ OL].2012.
[6] ESRI,ArcGISResource Center,ArcGIS 10新特性快速浏览[DB/OL].2012.
[7] ESRI,ArcGISResource Center,ArcGIS 10新特性之模型构建器[DB/OL].2012.
[8] CJ/T214-2007.城市市政综合监管信息系统管理部件和事件分类、编码及数据要求[S].
[9] CJ/T213-2005.城市市政综合监管信息系统单元网格划分与编码规则[S].
Building the Database of Objects in Digital City M anagement Based on M odelBuilder
Ni Xichun,Fan Ynuayuan,Chen Yongliang
(Geomatics Center of Deqing,Deqing 313200,China)
In building the database of objects in digital citymanagement,survey results need to be converted to SHP format CAD drawings,and increase further information of the objects,such as the ownership,grid coding of location,object coding.This process involves a lotof data processing operations,and the flow of data processing is stability and repeatability. Modeling the data processing of building the database of objects in digital citymanagement using ModelBuilder,data processing tools can be called in turn automatically by running themodel.And this can reduce a lot of repetitive work.
objects in digital citymanagement;database building;modelBuilder;model
1672-8262(2013)04-45-04
P208.2
A
2013—03—20
倪锡春(1974—),男,高级工程师,注册测绘师,主要从事数字城市地理空间框架建设、管理及维护工作。
国家自然科学基金(40901192)