当前位置: 东星资源网 > 日记大全 > 五年级日记 > 正文

[ArcGIS中拓扑的介绍及应用] 拓扑在现实中的应用

时间:2019-02-07 来源:东星资源网 本文已影响 手机版

  摘要:本文介绍了拓扑的概念、实现方法以及在ArcGIS中拓扑的建立、错误处理过程,阐述了拓扑在数据处理中的重要作用。   关键词:拓扑、Geodatabase、拓扑规则、验证
  
  一、引言
   拓扑是地理要素间的空间关系,它是确保数据质量的基础。拓扑能提高空间分析能力,并且在确保GIS 数据库质量方面扮演了一个重要角色。在ArcInfo coverage 数据模型中,广大的GIS 用户通过build和clean操作认识到拓扑的好处。在ArcGIS中,ESRI提供了一组新的编辑工具来构造和维护用户定义的拓扑关系。在ArcGIS 中,validate topology 的功能将确保数据的完整性,依赖一系列拓扑规则使得Geodatabase中的要素有效。
   从ArcGIS8.3开始,为Geodatabase增加了全面的拓扑。在ArcGIS8.3以前,拓扑一直是ArcInfo coverage数据模型的一个特性。对于新的Geodatabase的介绍提供了这样的一个机会来阐述拓扑对于GIS 用户的意义,以及在空间数据建模中使用它的可能性。这篇文章介绍了Geodatabase的拓扑,并且描述了一个简化的地块数据模型。
  二、Geodatabase 中数据的存储和建模
   对于在数据库管理系统(DBMS)中存储和管理GIS 相关数据而言,Geodatabase是一个开放的存储结构。Geodatabase符合基本的关系数据模型,每一个对象和它的属性都存储为表中的一行。对象反映了一个要素或GIS 所要模拟的现实世界中的一个实体。存储在DBMS 表中的一组相似要素(对象),比如地块、建筑或河流,被称为一个要素类。一组相关的要素类,它们拥有相同的空间参考,能组织在一个更大的集合中,被称为要素集。
   Geodatabase中的每一个要素(比如地块)都有自己的形状(几何信息),并且能独立存在。这与coverage 数据模型是不同的,coverage 中的多边形(polygon)是由一组弧(arcs)和标注点(labelpoints)组成的。将完整几何信息存储在简单要素中的能力正是Geodatabase的一个优点,因为要素总能够用来显示和分析。
  三、ArcGIS是如何实现拓扑的
   拓扑的实现依赖于一组完整性规则,它定义了空间相关的地理要素和要素类的行为。当拓扑规则应用于Geodatabase中的要素或要素类时,它就使得GIS 用户能够建立连通(connectivity)和邻接(adjacency)这样的空间关系。拓扑同样能够管理不同要素类间几何重叠的完整性(比如,海岸线和国界是否重叠)。
   ArcGIS也包括了一组空间操作工具,以此来编辑共享几何形体(geometry),并且基于用户应用的规则来发现空间关系中的错误。
  四、为什么需要拓扑
   拓扑将GIS行为应用到空建数据上。拓扑使得GIS 软件能够回答这样的问题,比如邻接、连通、邻近和重叠。在ArcGIS 中拓扑为用户提供了一个有力的、灵活的方式,来确立和维护空建数据的质量和完整性。举个例子,你想知道所有的地块多边形都完全由封闭的环(rings)形成,它们互相不重叠并且地块间没有缝隙。你同样能用拓扑来验证要素类间的空间关系。比如在地块数据模型中的lot lines 必须和地块边界共享相同的几何形体。
   拓扑关系可以看成空间约束,你把它们应用到空间数据上。ArcGIS 应用了这些关系,并且在任何一个约束被打破时会通知你。为了做到这一点,GIS 软件中包含的工具必须要能够识别空间约束,并且提供用来查找和修复违规要素的工具。
  五、在Geodatabase 中如何建立拓扑
   对ArcGIS而言,能为包含在要素集中的一个或多个要素类定义拓扑。它可以为多点、线和多边形要素类定义拓扑。拓扑是一系列用于空间关系的完整性规则,有一些重要的属性:一个群组容限(cluster tolerance),要素类等级(对坐标精度而言),错误(违规)和你所定义的规则的任何异常情况。在ArcGIS8.3以及以后的版本中,ArcEditor 和ArcInfo 包含了一个拓扑向导来选择参与拓扑的要素类,并定义它们的属性。如图1、图2:
  
  
  
  (一)、拓扑规则
   拓扑规则可以为一个要素类中的要素定义,也可以为两个或两个以上要素类间的要素定义。比如规则包括:多边形不能重叠;不能有悬线(dangle);点必须在多边形边界内;多边形不能有间隙;线不能相交;点必须放置到端点。拓扑规则同样能为要素类的子类(subtype)定义。如下图:
  
  
  
   在ArcGIS中预计包含25种拓扑规则。更多的规则类型将包含在后继版本中。Geodatabase
   拓扑很灵活,因为你可以选择规则,并应用到数据类或数据集中的数据上。
  
  
  
   拓扑规则要求建筑(building)不与地块(parcle)交叠,并且lot line 和lot polygon 共享相同的
   几何形体。在运行Validate 以后,将产生并显示错误(error)。
  (二)、拓扑属性
   群组容限与模糊容限(fuzzy tolerance)很相似。它是一个距离范围,在这个范围内结点被认为是重叠的。在验证拓扑的过程中,落入群组容限的结点和端点会被捕捉。
   坐标精度等级在要素类上定义,在拓扑生效的时候,它将控制哪些要素类向另外哪些要素类进行捕捉。级别越高,在验证过程中移动的要素越少。
  (三)、验证拓扑产生的错误
   验证拓扑用来捕捉要素的几何形体,检查结点是否在群组容限内,以及是否有违规。验证拓扑首先是捕捉要素的结点,这些结点在考虑等级的要素类的群组容限范围以内。如果要素的结点在这个范围内,那么低坐标精度的要素将会被移动为高等级的要素。作为捕捉过程的一部分,如果要素相交的地方没有结点,那么验证拓扑时会自动增加。
  
  
  
   错误监视器用来显示拓扑中的错误和异常。在本例中,它列出了建筑物重叠而产生的错误。
   同样,任何的违规都会在验证过程中被发现并标记为错误。完整的错误列表可以在ArcCatalog和ArcMap 的拓扑属性中看到。在ArcMap 中错误可以在图上显示出来,也可以在错误监视器中列出。
  (四)、改正拓扑中的错误
   当错误在验证过程中被发现时,用户有三个选择:
   1、用Fix Topology Error(修复拓扑错误)工具或其它的方法改正。
   2、保留没处理的错误。
   3、将错误标记为异常,依据错误和要素类型,Fix topology Error(修复拓扑错误) 工具提供了多种方法来解决一个错误。
   错误监视器用来显示拓扑中的错误和异常。在本例中,它列出了建筑物重叠而产生的错误。同样,任何的违规都会在验证过程中被发现并标记为错误。完整的错误列表可以在ArcCatalog和ArcMap 的拓扑属性中看到。在ArcMap 中错误可以在图上显示出来,也可以在错误监视器中列出。
  改正拓扑中的错误
   当错误在验证过程中被发现时,用户有三个选择:
   1、用Fix Topology Error(修复拓扑错误) 工具或其它的方法改正。
   2、保留没处理的错误。
   3、将错误标记为异常。Fix topology Error(修复拓扑错误) 工具提供了多种方法来解决一个错误,依据错误和要素类型。
  (五)、异常
   在处理错误的时候,用户总能将单独的或一组错误标记为异常。当一个预定义的错误发生时,有许多解决方案可以采用。在这样的情况下,错误被标记为异常。举个例子,如果上例中的建筑是个购物中心,那么一个建筑叠盖几个地块就不是错误,顶多算是规则的异常情况。一旦错误被标记为异常,它将一直保持这个样子直到重新被设置为一个错误。对同一块区域进行验证时,不会对标记为异常的实例产生错误信息。
  (六)、共享几何形体
   进行验证的一个真正的好处是它会调整要素和要素类间的几何形体(因此在容限里的结点会变得一致或共享相同的坐标位置)。共享几何在数据库中并不像coverage 那样物理地存储,而是在需要的时候动态地查找拓扑要素,如一致的边界和其它的拓扑关系。比如在你用拓扑编辑工具单击一条线或一个点时,工具将确定那些与选中要素共享几何形体的要素。编辑操作将在这些共享几何的要素上进行。
   在编辑数据的时候,动态地寻找共享几何与在数据库中存储关系相比,会有明显的效率优势。在编辑操作中,ArcGIS提供的编辑工具也更加得灵活。比如,当处理的多边形边界只存储一次的时候,不难发现图层间的多边形边界并不是真正的一致。重新数字化并且重建拓扑无疑是一个费时的过程。用ArcGIS的编辑工具,你只要选中边界,就能查看共享这条边界的要素。勾掉不相关的要素就能够独立地更新一个或多个要素类。
  六、结束语
  拓扑对地理信息数据很重要,它严格地规定了数据空间关系。使我们的数据在结构上更加严密,关系更加合理。在ArcGIS的Geodatabase中定义拓扑,可以使我们更好的管理数据、改善数据的完整性和提高灵活性。
  
  注:文章内所有公式及图表请以PDF形式查看。

标签:拓扑 介绍 ArcGIS