于启升
(山西省地球物理化学勘查院,山西运城 044004)
地理国情普查是一项重要的国情国力调查[1],是测绘地理信息面临的又一新的重大发展战略,它既是对现有基础地理信息数据的整合、提取和加工[2],又是与其他专业部门业务数据的融合和集成[3]。ArcGIS软件是测绘地理信息的重要软件,它具有强大的空间分析能力和空间数据管理能力,备受测绘行业技术人员的亲睐。2014年全国范围内开展了大批量的地理国情普查项目,为保障项目的顺利开展,GEOWAY软件公司针对地理国情普查软件开发了专门的地理国情普查采集编辑模块,该软件采集编辑功能强大,但涉及的数据编辑、管理、拓扑查错等在GEOWAY软件下无法流畅的实现,特别是针对全县数据进行操作时速度过慢,ArcGIS对于大数据操作的便捷性与快速准确性使其成为地理国情普查项目的新宠。
地理国情普查项目中,一个县的地表覆盖分类数据图斑个数达到数万个,利用GEOWAY软件进行拓扑查错特别是对于拓扑面分割、道路中心线落入道路面的检查速度较慢,短则一天,长则数天,大大影响了地理国情普查项目的进展。针对这一情况,本文从生产实际出发,探讨了利用ArcGIS强大的数据整合建库与拓扑查错功能实现各县数据库快速检查的方法。主要包括拓扑面分割检查、拓扑面缝隙检查、拓扑面重叠检查、道路中心线落入道路面的逻辑一致性检查等,最后结合Access软件,将ArcGIS查出的各类错误导出,并实现与GEOWAY软件的互通,确保数据可以进入到GEOWAY软件进行修改。
在地理国情普查项目中,逻辑一致性检查涉及很多方面,例如道路中心线应落入道路面、桥梁中心线应落入道路线、地表覆盖的水面应落入国情要素的高水界范围、水闸点应落入水系线等。本节以道路中心线应落入道路面为例进行介绍。
道路中心线共分为 LRRL(铁路)、LRDL(公路)、LCTL(城市道路)和LVLL(乡村道路)4个图层,而地表覆盖中,路面采集分为0601(无轨道路路面)和0610(有轨道路路面)2大类,此项检查要求道路中心线必须落入道路面内。检查步骤如下:
1)首先在ArcCatalog中新建TEST.MDB数据库,在数据库中建立数据集,取名TEST。将待检数据导入数据集中,包括地表覆盖层(LCA)、铁路层(LRRL)、公路层(LRDL)、城市道路层(LCTL)和乡村道路层(LVLL)。
2)在TEST数据集中新建拓扑,并添加拓扑规则,规则为“LCTL Must Be Inside LCA”,见图1。依据同样的方法建立LRRL、LRDL、LVLL与LCA之间的拓扑关系,并记录拓扑规则序号,此处 LCTL 为1,LRDL为2,LRRL为3,LVLL 为4。
图1 添加拓扑规则Fig.1 Add topology rule
3)利用Access软件打开TEST.MDB,通过实践发现,TEST.MDB中的T_1_lineErrors就是记载拓扑查错的数据表,将T_1_lineErrors数据表保存为DBF格式。在这个表中有3个字段对找出拓扑错误对应的实体有很重要的作用,分别为OriginID、TopuRuleType、TopuRuleID。这3个字段的意义分别是:OriginID字段值对应的是导入到TEST.MDB后进行拓扑查错文件里的OBJECTID字段;TopuRuleType字段对应的是用户在ArcGIS里添加的拓扑规则类型;TopuRuleID字段对应用户在ArcGIS里添加拓扑规则的顺序[4]。
4)打开ArcMap,打开 TEST.MDB中的 T_Topology拓扑文件,同时将 LCA、LRDL、LCTL、LVLL、LRRL 加入 ArcMap,最后将上一步导出的“T_1_lineErrors的副本”数据表添加到ArcMap。在数据窗口中就可以看到高亮显示的为查出的拓扑错误,见图2。
图2 拓扑错误显示Fig.2 Display of topology errors
5)在ArcMap的工作区,选中 LVLL图层,点击右键/Join and relates/Join,通过OBJECTID和ORIGINID字段进行连接,见图3。
图3 数据连接Fig.3 Join data
6)在ArcMap菜单栏里选择Selection/select by attributes命令,见图4。在Layer栏选择LVLL,并在下面的脚本栏里输入“T_1_lineErrors的副本.TopuRuleID=4”,点击OK即选中了LVLL图层中的拓扑错误,最后导出选中的错误,并取名为“LVLLERRO.shp”。利用相同的方法将 LRRL、LRDL、LCTL图层中的错误导出。最后将导出的错误图层导入到GEOWAY软件中进行修改。
图4 属性选择Fig.4 Selection by attributes
ArcGIS自带的面拓扑规则中包含了拓扑面缝隙检查、拓扑面重叠检查,但没有拓扑面分割(即相邻面属性不应完全一致)的拓扑检查规则,本文利用ArcGIS的合并功能和选择功能,实现此项检查。
1)以临猗县全县数据为例,临猗县地表覆盖分类数据共有74 232个图斑,首先将LCA层加入到ArcMap中,选择ArcToolboxData Management ToolsGeneralizationdissolve工具,将LCA层中属性一致的相邻面进行合并,此处选择CC码作为属性检查字段,见图5。合并后生成LCA_dissolve7层,该图层中共有74 200个图斑,证明该数据存在拓扑面分割错误,有些图斑相邻且属性一致。
图5 属性一致面合并Fig.5 Surface dissolve with consistent attributes
2)图斑合并完成后,将原始LCA层与合并后生成的LCA_dissolve7图层进行比对,经分析不难发现:不存在拓扑面分割错误的图斑,LCA层与LCA_dissolve7层相同位置的图斑属性、边界应完全一致;而存在拓扑面分割错误的图斑,在合并后图斑边界产生了变化,导致LCA层与LCA_dissolve7层在该位置边界不一致。得出以上结论后,利用ArcGIS的位置选择功能,将LCA层中与LCA_dissolve7层完全一致的面选择出来,剩余的面即为存在拓扑面分割错误的图斑。在ArcMap菜单栏下选择Selection/select by location命令,selection method选择“与源图层完全一致”,操作界面,见图6。
图6 位置选择Fig.6 Selection by location
3)通过以上选择发现,LCA与LCA_dissolve7层中完全一致的面共有74 168个,在LCA层的属性表中,点击“Switch selection”即选中了剩余图斑,剩余图斑即为错误图斑,将这些图斑导出为.shp格式文件,即得到拓扑面分割错误的错误文件,将错误文件导入到GEOWAY软件完成修改。
4)随机选取一个错误面查看,结果见图7。图7中高亮显示的两个图斑均为0211乔灌果园,应进行拓扑面合并。
图7 随机选取的一个错误面Fig.7 A random selection error polygon
通过以上实例不难发现,利用ArcGIS强大的大数据处理功能结合Access软件可以完成GEOWAY软件无法完成的任务。特别是在地理国情普查项目后期数据整理中,ArcGIS发挥着更为重要的作用,大大节约生产时间的同时提高了数据质量,为地理国情普查项目顺利完成奠定基础。
[1]宋晓红,张立朝,禄丰年,等.地理国情普查中多源异构数据整合研究[J].测绘通报,2014(9):104-107.
[2]李德仁,眭海刚,单杰.论地理国情监测的技术支撑[J].武汉大学学报,2012,37(5):505 -512.
[3]中国测绘宣传中心.地理国情监测研究与探索[M].北京:测绘出版社,2010:80-89.
[4]施郎.如何把ArcGIS中的拓扑查错文件导出[C]//全国测绘科技信息网中南分网第二十一次学术信息交流会.长沙:China Academic Journal Electronic Publishing House,1994:623 -629.