转自: http://www.docin.com/p-16979506.html
拓扑是地理要素间的空间关系, 它是确保数据质量的基础。 拓扑能提高空间分析能力, 并且在确保GI S 数据库质量方面扮演了一个重要角色。
拓扑将GI S 行为应用到空间数据上。 拓扑使得 GI S 软件能够回答这样的问题, 比如邻接、连通、邻近和重叠。
在ArcGIS中拓扑为用户提供了一个有力的、 灵活的方式来确立和维护空间数据的质量和完整性。
拓扑关系可以看成是空间约束, 可把它们应用到空间数据上。 ArcGIS 应用了这些关系,并且在任何一个约束被打破时会通知你。为了做到这一点,GIS软件中包含的工具必须要能够识别空间约束,并且提供用来查找和修复违规要素的工具。
在 ArcGIS8.3 以前, 拓扑一直是ArcInfo coverage 数据模型的一个特性。 在 ArcI nfo coverage 数据模型中, 广大的 GIS 用户通过bui ld 和 clean 操作认识到拓扑的好处。
从ArcGIS8.3 开始为 geodatabase 增加了全面的拓扑。
在 ArcGIS9. 0 中常用的有关 topology 的操作主要有两个地方, 一个是在 ArcCatalog 中,一个是在 ArcMap中。
通常我们将在 ArcCatalog 中建立拓扑称为建立拓扑规则, 而在ArcMap中建立拓扑成为拓扑处理。
ArcCatalog 的 Geodatabase 中所提供的创建拓扑规则,主要是用于进行拓扑错误的检查, 其中部分规则可以在所设容差内对数据进行一些修改调整。 建立好拓扑规则后,就可以在 ArcMap 中打开由拓扑规则所产生的文件, 根据错误提示对 SHAPE 图层进行修改。
ArcMap 中的 topolopy 工具条主要功能有对线拓扑, 删除重复线、 相交线断点( topol opy 中的planarize li nes ), 根据线拓扑生成面( topolopy 中的 construct features ), 拓扑编辑( 如共享边编辑 等) , 拓扑错误显示( 用于显示在 ArcCatalog 中创建 的拓扑规则错误, topolopy 中的 error inspector ) , 拓扑错误重新验证( 也即刷新错误记录) 。
对 ArcGIS 的 Geodatabase 而言, 能为包含在要素集 中的一个或多个要素类定义拓扑。 它可以为多点、 线和多边形要素类定义拓扑。
拓扑作为一系列用于空间关系的完整性规则, 有一些重要的属性: 一个群组容限( cl uster tolerance , 容差) , 要素类等级( rank , 对坐标精度而言) , 错误( error , 违规) 和你所定义的规则(rules)的任何异常情况。
在 9. 0 版中, ArcCatalog 包含了一个拓扑向导来选择参与拓扑的要素类, 并定义它们的属性。 创建拓扑规则具 体步骤如下:
创建一个新的 geodatabase ( 个人数据集)
在其下创建一个 feature dataset( 要素集) ,并为该要素集定制坐标系统
创建feature class( 要素类 ) 或将其它数据作为要素类 导入到该要素集下
进入到该要素集下, 在窗口右边空白处单击右键, 在弹出的右键菜单中有 new->topolopy
按所给提示操作, 设定合适容差, 添加一些所需拓扑规则, 若导入的要素类为多个图层, 还需为图层划分等级,接着就可完成拓扑规则的检查
最后在 ArcMap 中打开由拓扑规则产生的文件, 利用 topolopy 工具条中给出的错误记录信息进行修改
具体规则包括:
⑴ 线 topol ogy
1 . must not have dangle : 线, 不能有悬挂节点
2. must not have pseudo-node : 线, 不能有伪节点
3. must not overlay : 线, 不能有线重合( 不同要素间)
4. must not sel f overlay : 线, 一个要素不能自覆盖
5. must not intersect : 线, 不能有线交叉( 不同要素间)
6. must not selfintersect : 线, 不能有线自交叉
7. must not i ntersector touch i nterrior : 线, 不能有相交和重叠
8. must be single part : 线, 一个线要素只能由一个 path 组成
9. must not covered wi th : 线+ 线, 两层线不能重叠
1 0. must be covered by feature cl ass of : 线+ 线, 两层线完全重叠
1 1 . endpoi nt must be covered by : 线+ 点, 线层中的终点必须和点层的 部分( 或全部) 点重合
1 2. must be covered by boundary of : 线+ 多边形, 线被多边形边界重叠
1 3. must be covered by endpoint of : 点+ 线, 点被线终点完全重合
1 4. poi nt must be covered by line : 点+ 线, 点都在线上
(2) 多边形 topology
1 . must not overl ay : 单要素类, 多边形要素相互不能重叠
2. must not have gaps : 单要素类, 连续连接的多边形区域中间不能有 空白区( 非数据区)
3. contai ns poi nt : 多边形+ 点, 多边形要素类的每个要素的边界以内 必须包含点层中至少一个点
4. boundary must be covered by : 多边形+ 线, 多边形层的边界与线 层重叠( 线层可以有非重叠的更多要素)
5. must be covered by feature cl ass of : 多边形+ 多边形, 第一个 多边形层必须被第二个完全覆盖( 省与全国的关系)
6. must be covered by : 多边形+ 多边形, 第一个多边形层必须把第二 个完全覆盖( 全国与省的关系)
7. must not overl ay wi th : 多边形+ 多边形, 两个多边形层的多边形 不能存在一对相互覆盖的要素
8. must cover each other : 多边形+ 多边形, 两个多边形的要素必须 完全重叠
9. area boundary must be covered by boundary of : 多边形+ 多边形 , 第一个多边形的各要素必须为第二个的一个或几个多边形完全覆盖
1 0. must be properl y i nsi de pol ygons : 点+ 多边形, 点层的要素必 须全部在多边形内
1 1 . must be covered by boundary of : 点+ 多边形, 点必须在多边形 的边界上
(1 ) 群组容限(cl uster tol erance) • 群组容限与模糊容限( fuzzy tol erance ) 很相似。 它是一个距离范围 , 在这个范围内结点被认为是重叠 的。 在验证拓扑的过程中, 落入群组容限的结点和端 点会被捕捉。
(2) 等级(rank) • 坐标精度等级在要素类上定义, 在拓扑生效的时候, 它将控制哪些要素类向另外哪些要素类进行捕捉。 级 别越高( 1 为最高) , 在验证过程中移动的要素越少 。
Geodatabase 里建立的拓扑用来捕捉要素的几何 形体, 检查结点是否在群组容限内, 以及是否有 违规。
拓扑首先是捕捉要素的结点, 这些结点在考虑等 级的要素类的群组容限范围以内。 如果要素的结 点在这个范围外, 则视为违规, 都会在验证过程 中被发现并标记为错误。 完整的错误列表可以在 ArcCatal og 和 ArcMap 的拓扑属性中看到。
在 ArcMap 中拓扑中的错误和异常可以在图上显 示出来, 也可以在错误探测器中列出。 然后用户 可根据错误提示对图层要素进行修改。
ArcInfo coverage 模型明确地定义、 存储和操作拓扑信息 , 并使用一组固定的工具来创建和维护拓扑。 结果被软件所规定的工作流程紧紧地控制着, 并且拓扑的完整性依然被维持着。 这个数据模型不够灵活。 因此与很多 GI S 应用程序的需求相比, 用于编辑的应用程序开发需要建立和维护更复杂的数据模型。
在 geodatabase 中定义拓扑的好处有: ① 更好的数据管理 ---- 你可以选择某些要素类参与拓扑。 ② 更高的灵活性 ---- 多部件的多边形、 点和线要素能够参与 拓扑。 ③ 改善的数据完整性——你可以为数据指定合适的拓扑规则 。 ④ 更多的数据建模机会——大量可能的空间约束可以应用到 你的数据上。 ⑤ 更多的地图图层——非常多的图层能存放在一个单一的数 据库中。 Geodatabase 中的拓扑提供了一个更加灵活的环境, 我们能 够定义和应用众多的完整性规则和约束。 因此, 在设计阶段 由用户指定的任何一个工作流程都能够应用在拓扑完整性分 析中。 你不用强制执行cl ean 命令来重建拓扑。 用户在任何 时候都可以验证geodatabase 的拓扑, 使用 geodatabase 数 据来进行查询和分析, 进而生产出高质量的地图。