□浙江省统一征地事务办公室 俞建康
ETL工具在数字城管内业处理中的应用
□浙江省统一征地事务办公室 俞建康
随着数字地球、数字城市的发展,数字城管也应运而生。数字城管是运用信息化手段和移动通信技术手段来处理、分析和管理整个城市的所有城管部件和城管事件信息,促进城市管理的现代化、信息化。数字城管平台根据部件数据的特点,采用ArcGIS数据入库来管理部件数据,ArcGIS数据入库是一项很复杂的工作,在实际工作中摸索发现,ArcGIS软件自带的一个扩展模块Spatial ETL Tool工具给数据入库带来很大的方便。
“数字城管”系统基于3S技术、大型空间数据库、网络通讯、地理编码等信息技术,集成地理空间框架、单元网格、管理部件和时间、地理编码等多种数据源,将信息技术与城市管理有机结合的城市综合管理系统。城市管理部件的普查和建库为“数字城管”系统建设提供基础数据,数据的质量及可靠性是系统建设成败的关键。实现数字化、信息化的关键在于基础数据的支持,部件数据库是数字城管系统的核心数据库。
在《城市市政监管信息系统技术规范》中指出,“空间数据是系统运行的数据基础”,空间数据的管理和展现需要采用地理信息系统(GIS)技术。以GIS为核心的地理空间信息技术是数字城管的核心应用技术,它与无线通信、宽带网络和无线网络日趋融合在一起,为政府管理、城市居民生活和商务活动提供了一种立体的、多层面的信息服务系统。在数字城管的项目中应用GIS技术,不仅要考虑当前项目应用的具体需求,还要站在“数字城管”建设的高度上,综合评价和选择。
采用GIS技术有三点好处:首先,它使得每个城市部件有了自己的精确空间位置,并以地图的方式直观展现;其次,地物和地上设施是部件的重要参照系,全城市的大比例尺地形图以及高分辨率影像图被无缝集成管理,以图形的方式展现出来,不论对于城市监督员还是指挥中心和监督中心,都可以对城市部件周围的环境有一个全面、完整的了解,从而在事件处理上有更多的参考依据;最后,结合移动定位技术,监督中心可以在地图上随时掌握城管监督员的准确位置,实现有效地监督和调度。
▲图1▲传统内业处理流程图
▲图2▲创建要素类
▲图3▲新建要素类设置字段属性对话框
城市部件的建设和管理涉及到城市的多个职能部门的工作内容,主要存在以下特点。
一是类型复杂。涵盖城市公共设施的各个方面。城市部件涉及7大类97个小类,城市街道、广场等公共区域所能看到的公共设施需要全部分类测量采集、建库。
二是产权单位和维护单位众多。涉及园林、绿化、城建、规划、市政公用、道桥等多个城市管理部门。
三是城市发展变化快,更新频率大。城市建设的快速发展,不停的改变着城市的面貌及城市基础设施,导致城市部件的更新普查频率提高。
四是同一空间位置可能有多个城管部件。如路灯和路灯上广告的空间坐标就相同。
GIS技术发展多年,市场上的GIS软件多种多样,应用在不同的领域。GIS的基础作用在数字城管系统中是不可替代的,它管理着城市的基础地理信息、地名信息和重要的部件信息,并通过工作流程实现了数据的共享。GIS平台为数字城管提供了数据获取、管理、分析等一整套解决方案,可广泛应用于数字城管业务处理平台的各个子系统中。根据部件数据类型复杂、更新速度快等特点以及数字城管系统的运行和管理特点,为避免由于GIS软件的扩展性不强,无法支撑更高层次的应用,被迫放弃原有平台,推倒重来,造成数据、经济和时间的损失等缺陷,数字城管系统选用ERIS公司开发的ArcGIS软件作为基础GIS平台。
ArcGIS具有强大的地图制作、空间数据管理、空间分析、空间信息整合、发布与共享的能力,是分析功能最强大的GIS软件。利用ArcGIS建立个人地理数据库来管理城市部件数据,给数据处理与管理带来很大的方便。空间数据库系统可以充分利用RDBMS数据管理的功能,利用SQL语言对空间与非空间数据进行操作,同时可以利用关系数据库的海量数据管理、事务处理(Transaction)、记录锁定、并发控制、数据仓库等功能,与传统的基于文件方式的空间数据管理模式相比较,具有安全性高、并发性能好、对海量数据的管理能力强等优点。
数字城管内业处理的主要任务是利用ArcGIS建立个人地理数据库来管理外业测量的城市部件数据。传统内业处理的作业流程如图1所示。
1.整理EXCEL表格
外业测量人员把每个组每天外业测量的DAT数据导入到EXCEL表格中,内业人员按照外业的记录表格整理数据。内业整理表格的标准格式如图2所示。
表格内容包括:点号,该点的坐标X、Y、H,部件名称,材质,状态,照片,主管部门名称,主管部门代码,数据来源,规格,备注。外业测量人员把每个点号对应的部件名称和相应属性都会记录在测量表格中,内业人员按照外业记录将相应的属性输入到EXCEL表中。
按部件名称将表格分类是一个比较复杂的过程,现采用某公司自主研发的软件给工作带来了很大的方便。
2.EXCEL表转SHP文件
在ArcGIS的ArcCatalog下,将分类后的EXCEL表格转为SHP文件。在Catalog根目录下选择要转为SHP的目标表格的Sheet,单击鼠标右键,在出现的快捷菜单栏中选择创建要素类下的从XY表,如图2所示。
在从XY表创建要素类的对话框中设置输入字段,选择输入坐标的坐标系,指定输出shipfile的路径。这里需要注意的是:在X输入字段的下拉框中选择Y,在Y输入字段的下拉框中选择X,而坐标系的选择则是根据外业测量所选择的坐标系来确定,最后指定输出shapefile文件的存储路径。
参数设置完成后点击“确定”按钮,SHP文件将按指定路径存到指定的文件里。
3.创建个人地理数据库
创建个人地理数据库也是在Catalog软件中进行的。首先在根目录的目标文件夹下新建个人地理数据库并对其重命名,命名规则为“×××数字城管”。在新建的数据库下新建要素集,要素集名称统一为Components,然后在Components要素集下新建要素类。新建要素类的命名规则为“区名拼音首字母缩写”(大写字母)+“_”+“部件大类”+“部件小类”+“_”+“部件名称”,如泰安的上水井盖命名为“TA_0101_上水井盖”。根据所建要素类部件的类型选择存储要素的类型,如上水井盖要选择“点要素”。点击“下一步”设置图层要素的属性字段,输入字段名称、选择数据类型并设置字段长度,设置对话框如图3所示。
图层的字段名称及对应的字段代码、数据类型和字段长度祥见表1。
按上述步骤依次建立各个图层,各个点状图层的字段属性都是完全相同的,可以采用图层复制,然后对复制图层重命名的方法,这样可以提高工作效率,避免重复工作。但是线状图层不能复制点状图层,新建线状要素类时注意存储类型的选择,在存储的要素类型中选择“线要素”,如图4所示。
表1▲部件数据基本属性字段要求
▲图4▲要素存储类型的选择
▲图5▲用ETL处理内业流程图
4.数据入库
数据库建成之后,即要进行数据入库。数据入库也是在Catalog根目录下进行的,右击新建数据库下的要素类,在出现的下拉菜单中选择“加载”项下的“数据加载”功能。点击数据加载即出现简单数据加载程序对话框,在输入数据选择框中选择目标SHP文件,SHP文件打开之后需要注意的是必须点击“添加”按钮把目标SHP文件添加到要加载的源数据列表中。
点击“下一步”按钮,所有参数设置都为默认,继续点击“下一步”进入到选择加载到目标字段中的源字段的界面,在匹配源字段的下拉框中选择要加载到目标字段的对应字段。字段选择完成后点击“下一步”,出现选择加载数据内容的对话框,在此对话框中选择“加载全部源数据”,继续点击“下一步”,然后点击“完成”按钮,至此数据加载完成。
数据入库就是按照上述步骤,将每个SHP图层都一一加载到已经建好的数据库中。这是一个很复杂的重复工作过程,既耗费时间又容易出现人为原因造成的错误。
Spatial ETL Tool相当于FME的Workbench。FME是加拿大Safe软件公司针对ArcGIS开发的一个扩展模块。其独立的软件称为FME Suite(Feature Manipulate Engineering),FMESuite是一套完整的访问空间数据的解决方案,可用于读写存储和转换各种空间数据,是功能更为强大的空间数据平台。ETL是数据抽取(Extract)、转换(Transform)、清洗(Cleansing)、装载(Load)的过程,是构建数据库的重要环节,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据库模型,将数据加载到数据库中。
1.利用ETL工具进行内业处理
利用ETL工具内业处理的步骤,如图5所示。
2.表格合并
合并表格前的整理工作很重要,要保持所有表格的表头都相同,当然内容也要按表头的顺序排列。把整理好的表格全部放到同一个文件里,在该文件里新建一个EXCEL表,重命名为“合并”。打开新建的合并表,单击视图菜单,双击右上角的“宏”命令,创建一个新的“合并表”宏定义,将VB代码粘贴到“合并表”宏中,点击运行,文件夹内的所有表格就按顺序合并到表“合并”内。
▲图6▲新建Spatial▲ETL▲Tool
▲图7▲Spatial▲ETL▲Tool界面
3.利用ETL分层
按上面讲述的步骤把合并后的表格转为SHP文件。把SHP文件按上述数据入库的步骤导入到事先建立好的数据库中,这里的数据库只需建立三个图层,即点层、线层、面层。SHP文件导入数据库后相应的字段就被赋予标准的格式,然后再导出为SHP文件。这样SHP文件就转为标准格式了。
Spatial ETL Tool是ArcGIS软件自带的一个扩展模块,是ArcMAP中ArcToolbox下自定义的一个应用工具。利用Spatial ETL Tool工具按部件名称分层的工作流程:
打开ArcMap,右键点击ArcToolbox的根目录,选择“New Toolbox”项,点击新建一个Toolbox,重命名为LayerTools。
右键点击新建的LayerTools工具箱,依次选择〉〉New〉〉Spatial ETL Tool菜单项,如图6所示。
在新建Spatial ETL Tool后,会出现设置向导对话框,设置好输入文件的格式。该工具是一个强大的数据交换平台,支持上百种数据格式的交互,在下拉框中输入文件格式或者点击下拉框后方的按钮,打开格式选择对话框选择格式,在输入格式时可以体会下该工具方便易用的智能提示功能。要处理的原始数据是shape文件,在数据格式下拉框中选择ESRI Shape的数据格式。
点击下一步按钮,弹出原数据选择对话框,选择原始数据。
点击下一步按钮,弹出目标数据格式选择对话框,设置好对应的ESRI Shape格式。
点击下一步按钮,弹出指定文件参数对话框,点击Paramerters按钮选择文件参数,Shape File Type选择2D(ArcView 3.0),其他参数选择默认值。
点击下一步按钮,在下一步弹出的对话框中点击完成按钮,弹出Spatial ETL Tool界面,对应FME的Workbench。图7中褐色区域表示原数据,浅黄色区域表示目标数据。
点击目标数据浅黄色框的属性按钮,弹出要素类型属性对话框,选择Fanout by Attribute的分类方法,并在其下拉框里选择OBJNAME。
最后,点击Run Translation,设置目标数据输出路径,稍等片刻,分类处理即可完成。
总之,SHP文件内的所有部件都按部件名称分为单个的图层,把各个图层导入到空数据库即可。这里只需建一个空数据库,无需建立各个分图层,但是需要注意的是数据入库选择的是导入而不是前面的加载。两者的区别在于加载数据是一个层一个层的加载,而导入是把所有的SHP图层一次性全部加入到数据库中。
利用ETL工具进行数据入库可以极大提高内业处理的工作效率,按照传统的入库工作流程,在表格整理完成后的工作,也需要一段时间,而且这个工作是一个重复枯燥的过程,需要工作人员精神高度集中,稍不留神就容易出错。利用ETL工具不仅降低了工作人员的劳动强度,而且减少了人为因素造成的错误,从而降低了错误率、提高了工作效率。另外,ETL工具对数据进行的是整体处理,保证了数据的完整性和一致性。