|
阅读:1848回复:0
浅谈ArcGIS数字地图拓扑
<p align="center">李昂晟 王玉冰 资环学院</p>
<p><b>ArcGIS制图流程 </b><br/> <img src="http://greatcourse.cnu.edu.cn/dlxxxt/wlkc/xscg/x/img/012.jpg" width="486" height="697"/> <br/><br/><strong>为什么需要拓扑</strong><br/>拓扑是地理要素间的空间关系,它是确保数据质量的基础。拓扑能提高空间分析能力,并且在确保GIS数据库质量方面扮演了一个重要角色。<br/>拓扑将GIS行为应用到空间数据上。拓扑使得GIS软件能够回答这样的问题,比如邻接、连通、邻近和重叠。在ArcGIS中拓扑为用户提供了一个有力的、灵活的方式,来确立和维护空间数据的质量和完整性。<br/>拓扑关系可以看成是空间约束,可把它们应用到空间数据上。ArcGIS应用了这些关系,并且在任何一个约束被打破时会通知你。为了做到这一点,GIS软件中包含的工具必须要能够识别空间约束,并且提供用来查找和修复违规要素的工具</p> <p><strong>ArcGIS中拓扑功能的说明 </strong><br/>在ArcGIS8.3以前,拓扑一直是ArcInfo coverage数据模型的一个特性。在ArcInfo coverage数据模型中,广大的GIS用户通过build和clean操作认识到拓扑的好处。<br/>从ArcGIS8.3开始为geodatabase增加了全面的拓扑。<br/>在ArcGIS9.0中常用的有关topology的操作主要有两个地方,一个是在ArcCatalog中,一个是在ArcMap中。<br/>通常我们将在ArcCatalog中建立拓扑称为建立拓扑规则,而在ArcMap中建立拓扑成为拓扑处理。<br/>ArcCatalog的Geodatabase中所提供的创建拓扑规则,主要是用于进行拓扑错误的检查,其中部分规则可以在所设容差内对数据进行一些修改调整。建立好拓扑规则后,就可以在ArcMap中打开由拓扑规则所产生的文件,根据错误提示对SHAPE图层进行修改。<br/>ArcMap中的topolopy工具条主要功能有对线拓扑,删除重复线、相交线断点(topolopy中的planarize lines),根据线拓扑生成面(topolopy中的construct features),拓扑编辑(如共享边编辑等),拓扑错误显示(用于显示在ArcCatalog中创建的拓扑规则错误,topolopy中的error inspector),拓扑错误重新验证(也即刷新错误记录)。</p> <p><strong>Geodatabase中如何创建拓扑规则</strong> <br/>对ArcGIS的Geodatabase而言,能为包含在要素集中的一个或多个要素类定义拓扑。它可以为多点、线和多边形要素类定义拓扑。<br/>拓扑作为一系列用于空间关系的完整性规则,有一些重要的属性:一个群组容限(cluster tolerance,容差),要素类等级(rank,对坐标精度而言),错误(error,违规)和你所定义的规则(rules)的任何异常情况。 </p> <p><strong>Geodatabase中如何创建拓扑规则 </strong>在9.0版中,ArcCatalog包含了一个拓扑向导来选择参与拓扑的要素类,并定义它们的属性。创建拓扑规则具体步骤如下:<br/>1.创建一个新的geodatabase(个人数据集)<br/>2.在其下创建一个feature dataset(要素集),并为该要素集定制坐标系统<br/>3.创建feature class(要素类)或将其它数据作为要素类导入到该要素集下<br/>4.进入到该要素集下,在窗口右边空白处单击右键,在弹出的右键菜单中有new->topolopy<br/>5.按所给提示操作,设定合适容差,添加一些所需拓扑规则,若导入的要素类为多个图层,还需为图层划分等级,6.接着就可完成拓扑规则的检查<br/>7.最后在ArcMap中打开由拓扑规则产生的文件,利用topolopy工具条中给出的错误记录信息进行修改<img src="http://greatcourse.cnu.edu.cn/dlxxxt/wlkc/xscg/x/img/013.jpg" width="708" height="247"/><br/><strong><br/>执行拓扑规则产生的文件 </strong><br/> <img src="http://greatcourse.cnu.edu.cn/dlxxxt/wlkc/xscg/x/img/014.jpg" width="543" height="518"/><br/><br/><strong>geodatabase的拓扑规则 </strong><br/>具体规则包括:<br/>⑴ 线topology<br/>1.must not have dangle:线,不能有悬挂节点<br/>2.must not have pseudo-node:线,不能有伪节点<br/>3.must not overlay:线,不能有线重合(不同要素间)<br/>4.must not self overlay:线,一个要素不能自覆盖<br/>5.must not intersect:线,不能有线交叉(不同要素间)<br/>6.must not self intersect:线,不能有线自交叉<br/>7.must not intersect or touch interrior:线,不能有相交和重叠<br/>8.must be single part:线,一个线要素只能由一个path组成<br/>9.must not covered with:线+线,两层线不能重叠<br/>10.must be covered by feature class of:线+线,两层线完全重叠<br/>11.endpoint must be covered by:线+点,线层中的终点必须和点层的部分(或全部)点重合<br/>12.must be covered by boundary of:线+多边形,线被多边形边界重叠<br/>13.must be covered by endpoint of:点+线,点被线终点完全重合<br/>14.point must be covered by line:点+线,点都在线上<br/>(2) 多边形topology<br/>1.must not overlay:单要素类,多边形要素相互不能重叠<br/>2.must not have gaps:单要素类,连续连接的多边形区域中间不能有空白区(非数据区)<br/>3.contains point:多边形+点,多边形要素类的每个要素的边界以内必须包含点层中至少一个点<br/>4.boundary must be covered by:多边形+线,多边形层的边界与线层重叠(线层可以有非重叠的更多要素)<br/>5.must be covered by feature class of:多边形+多边形,第一个多边形层必须被第二个完全覆盖(省与全国的关系)<br/>6.must be covered by:多边形+多边形,第一个多边形层必须把第二个完全覆盖(全国与省的关系)<br/>7.must not overlay with:多边形+多边形,两个多边形层的多边形不能存在一对相互覆盖的要素<br/>8.must cover each other:多边形+多边形,两个多边形的要素必须完全重叠<br/>9.area boundary must be covered by boundary of:多边形+多边形,第一个多边形的各要素必须为第二个的一个或几个多边形完全覆盖<br/>10.must be properly inside polygons:点+多边形,点层的要素必须全部在多边形内<br/>11.must be covered by boundary of:点+多边形,点必须在多边形的边界上<br/></p> <p><strong><img align="right" src="http://greatcourse.cnu.edu.cn/dlxxxt/wlkc/xscg/x/img/015.jpg" width="217" height="266"/>利用拓扑查错</strong><br/>Geodatabase里建立的拓扑用来捕捉要素的几何形体,检查结点是否在群组容限内,以及是否有违规。<br/>拓扑首先是捕捉要素的结点,这些结点在考虑等级的要素类的群组容限范围以内。如果要素的结点在这个范围外,则视为违规,都会在验证过程中被发现并标记为错误。完整的错误列表可以在ArcCatalog和ArcMap的拓扑属性中看到。<br/>在ArcMap中拓扑中的错误和异常可以在图上显示出来,也可以在错误探测器中列出。然后用户可根据错误提示对图层要素进行修改。<br/><br/><br/><strong>拓扑属性</strong><br/>(1)群组容限(cluster tolerance)<br/>群组容限与模糊容限(fuzzy tolerance)很相似。它是一个距离范围,在这个范围内结点被认为是重叠的。在验证拓扑的过程中,落入群组容限的结点和端点会被捕捉。<br/>(2)等级(rank)<br/>坐标精度等级在要素类上定义,在拓扑生效的时候,它将控制哪些要素类向另外哪些要素类进行捕捉。级别越高(1为最高),在验证过程中移动的要素越少。<br/> <img src="http://greatcourse.cnu.edu.cn/dlxxxt/wlkc/xscg/x/img/016.jpg" width="486" height="427"/><br/><br/><strong>Geodatabase中拓扑的优点 </strong><br/>ArcInfo coverage模型明确地定义、存储和操作拓扑信息,并使用一组固定的工具来创建和维护拓扑。结果被软件所规定的工作流程紧紧地控制着,并且拓扑的完整性依然被维持着。这个数据模型不够灵活。因此与很多GIS应用程序的需求相比,用于编辑的应用程序开发需要建立和维护更复杂的数据模型。</p> <p><strong>在geodatabase中定义拓扑的好处有:</strong></p> <p>①更好的数据管理----你可以选择某些要素类参与拓扑。<br/>②更高的灵活性----多部件的多边形、点和线要素能够参与拓扑。<br/>③改善的数据完整性——你可以为数据指定合适的拓扑规则。<br/>④更多的数据建模机会——大量可能的空间约束可以应用到你的数据上。<br/>⑤更多的地图图层——非常多的图层能存放在一个单一的数据库中。<br/></p> <p><strong>结语</strong><br/>Geodatabase中的拓扑提供了一个更加灵活的环境,我们能够定义和应用众多的完整性规则和约束。因此,在设计阶段由用户指定的任何一个工作流程都能够应用在拓扑完整性分析中。你不用强制执行clean命令来重建拓扑。用户在任何时候都可以验证geodatabase的拓扑,使用geodatabase数据来进行查询和分析,进而生产出高质量的地图。<br/><br/>作业展示<br/> <img src="http://greatcourse.cnu.edu.cn/dlxxxt/wlkc/xscg/x/img/017.jpg" width="462" height="557"/><br/></p> |
|
|