ArcGIS教程 - 8 空间数据拓扑处理

链接:https://pan.baidu.com/s/1wIXdZ4IrA7IUEXr6kB4v3w  提取码:qefu

第8章 空间数据拓扑处理

拓扑学(Topology)直译地志学,和研究地形、地貌相类似的有关学科。拓扑关系是空间分析的基础,拓扑关系的正确性事衡量空间数据质量的关键指标。拓扑是一组规则和关系的集合,是地理实体行为和属性的实现,是GIS中的一个语义场景;从更专业的角度上来说,拓扑是指规则和关系的集合再加上一系列的工具和技术,旨在揭示地理空间世界中的地理几何关系。

GIS技术中,可将拓扑理解为一种描述地理空间关系的模型,一种维护地理空间实体间空间几何关系的机制。而拓扑关系是指地理空间实体间的一种关系,这种关系不会因为地理空间实体的地理空间的改变而改变。

在GIS中,拓扑的主要功能就是用于保证数据质量,同时也为模拟地理空间现象提供一个模型框架,在这个框架中,地理实体被赋予了行为、有效性规则、属性域以及默认值。

ArcGIS中提供了一系列的拓扑编辑和管理的工具,以保证地理数据的空间完整性。本章主要介绍拓扑的基础知识和拓扑操作过程,包括拓扑创建、拓扑规则定义、拓扑验证、拓扑错误修改等内容。

8.1 拓扑

8.1.1 拓扑概念

拓扑学是几何学的一个分支,但是这种几何学又和通常的平面几何、立体几何不同。通常的平面几何或立体几何研究的对象是点、线、面之间的位置关系以及它们的度量性质。拓扑学采用拓扑几何来描述,主要涉及目标与周围其他对象的 “相连”、“相邻”、“包含“等关系研究。

拓扑学主要通过拓扑关系研究实体间的关系。拓扑关系是明确空间结构的数学方法,表示要素件的邻接关系和包含关系,这些信息在地图上借助图形来识别和解释,而在计算机则利用拓扑关系对各种数据加以完善和严密的组织。拓扑数据模型通过将空间对象(点、线和面要素)表示为拓扑原始数据(结点、面和边)的基础图表来管理空间关系。这些原始数据(连同它们彼此之间及其所表示的要素边界之间的关系)通过在拓扑元素的平面图表中表示要素几何进行定义。

在GIS中数据是核心,数据质量决定GIS的优劣。在实际的工作过程中,由于数据源的复杂性、数据格式的多样性、数据生产、格式转换等原因都会造成数据质量无法满足实际需求。要进行数据质量的检查,拓扑检查无疑是最快捷、最有效、最简便的方式。利用拓扑检查可以保证数据质量,提高空空间查询与分析的正确性和效率,更好的为相关行业服务。

拓扑是点、线和多边形要素共享几何的方式的排列布置。拓扑用于以下操作:

(1)限制要素共享几何的方式。例如,相邻多边形(如宗地)具有共享边、街道中心线和人口普查区块共享几何以及相邻的土壤多边形共享边;

(2)定义并执行数据完整性规则:多边形之间不应存在任何间距、不应有任何叠置要素等;

(3)支持拓扑关系查询和导航,如确定要素邻接性和连通性;

(4)支持可强制执行数据模型拓扑约束的复杂编辑工具;

(5)根据非结构化的几何构造要素,如根据线创建多边形。

8.1.2 拓扑要素

拓扑要素可以是点、线和面(多边形)要素。拓扑关系作为关系存储于Geodatabase中,描述的是要素的空间关联方式。

 

 

(1)点要素参与拓扑中其它要素重合时,表现为结点。

(2)线要素由边组成,边最少包含两个结点,由结点定义边的形状和走向。

(3)面(多边形)要素有定义边界的边、边相交的结点和定义边形状的顶点构成。

拓扑关系通常从以下3个方面描述:

8.1.2.1 连通性

连通性通过弧-结点拓扑定义。这是许多网络追踪和路径查找操作的基础。例如连通性可以标识到机场的路径、将溪流连接到河流或者跟随从污水处理厂到住宅的路径。

在弧-结点数据结构中,弧段由两个端点定义:指示弧段起始位置的起始结点和指示弧段终止位置的终止结点。这被称为弧-结点拓扑。

弧-结点拓扑通过弧-结点列表获得支持。列表会标识出每条弧段的起始结点和终止结点。相连弧段通过在整个列表中搜索公共结点编号来确定。可以确定弧段 1、2 和 3 都相交,因为它们共享结点 11。计算机可确定沿着弧段 1 行进可以转到弧段 3,因为它们共享公共结点(11),但是从弧段 1 无法直接转到弧段 5,因为它们不具有共享的公共结点。

8.1.2.2 关联性和包含性

许多可表示的地理要素覆盖了地球表面上的可辨识区域。区域在矢量模型中由一条或多条定义面的边界表示。例如湖中央有个岛,此湖实际上具有两条边界:一条定义它的外边界,另一条定义它的内边界(岛)。在矢量模型的术语中,岛定义面的内边界(或孔洞)。

弧-结点结构以有序弧段列表(而不是 x,y 坐标的闭合环)的形式表示面。这被称为面-弧拓扑。面 F 由弧段 8、9、10 和 7(7 之前的 0 表示该弧段在面中创建了一个岛)组成。

每条弧段都出现在两个面中,下图中,列表中的弧段 6 出现在 B 和 C 中。由于面仅是定义其边界的弧段的列表,弧段坐标只被存储一次,因而可减少数据量并确保相邻面的边界不发生重叠。

8.1.2.3 邻接性

共享同一边界的两个地理要素被称为相邻要素。邻接是一种拓扑概念,它允许矢量数据模型判断相邻情况。面拓扑定义邻接。如果各个面共享公共弧段,则它们就是彼此邻接的。这是许多邻域和叠加操作的基础。

上文提到过起始结点和终止结点共同定义一条弧段。这样就可以指示出弧段的方向,以便确定其左右两侧的面。左-右拓扑是指弧段左右两侧的面。面 B 在弧段 6 的左侧,面 C 在右侧,面 B 和面 C 是相邻的。

面 A 的标注位于区域边界的外侧。该面被称为外部(或外)多边形,表示研究区域以外的世界。外多边形确保每条弧段始终具有定义的左侧和右侧。

 

8.1.3 拓扑参数

    ArcGIS存储的数据格式中,GeoDatabase和Coverage能够建立拓扑,Shape格式不能建立拓扑关系。Coverage数据现在使用较少,本文以GeoDatabase介绍拓扑相关知识。

ArcGIS拓扑描述的是在同一个要素集(FeatureDataset)下的要素类(Feature Class)之间的拓扑关系的集合。所以要参与一个拓扑的所有要素类,必须在同一个要素集内。一个要素集可以有多个拓扑,但每个要素类最多只能参与一个拓扑。

ArcGIS定义拓扑包括拓扑名称(Name),拓扑容差(Tolerance)、坐标的相对精度等级(Rank)、要素类(FeatureClass)、拓扑规则(Rule)等组成。

8.1.3.1 拓扑名称

拓扑名称不能重名,一个数据集只能有唯一的拓扑名称。

8.1.3.2 拓扑容差

    在 GIS 数据管理中,位置准确性以及对高精度数据管理框架的支持至关重要。能够足够精确地存储坐标信息成为关键要求。坐标精度用于描述记录位置时使用的位数,它定义采集和管理空间数据时所用的分辨率。

处理几何坐标和容差经常从以下几方面来考虑:

(1)x,y 分辨率:记录要素类中的坐标时使用的精度。x,y 分辨率定义用于存储要素坐标的小数位数或有效数字位数。在 ArcGIS 中,坐标值实际上是以整数形式进行存储和运算的。要素类的默认 X,Y 分辨率为 0.001 米,或以数据集的坐标系单位表示的等效值。

(2)x,y 容差:创建要素类时,系统将要求您设置 x,y 容差。在拓扑验证、缓冲区生成、面叠加等聚类操作以及一些编辑操作中,使用 x,y 容差来设置两个坐标之间的最小距离。x,y 容差还定义了坐标在聚类过程中可于 x 或 y(或两者)方向上移动的距离。

x,y 容差是一个极小的距离值(默认值为 0.001 米,以地面上单位为单位)。它用于在聚类操作过程中解决坐标交叉点位置不精确的问题。使用几何操作处理要素类时,如果两个坐标的 x 距离和 y 距离位于彼此的 x,y 容差范围内,这两个坐标会被视为重合(也就是说,共享同一个 x,y 位置)。因此,聚类坐标会被移动到某个公共位置。

 

 

8.1.3.3要素类

拓扑建立在公用要素数据集中保存的一组要素类的基础上。每个新拓扑都会添加到保存这些要素类和其他数据元素的要素数据集中。

创建拓扑时,可以按照以下约定指定要从要素数据集中参与拓扑的任意要素类子集:

(1)一个拓扑可以引用同一个要素数据集中的一个或多个要素类。

(2)一个要素数据集可具有多个拓扑。

(3)一个要素类只能属于一个拓扑。

(4)一个要素类不能同时属于一个拓扑和一个几何网络。

(5)一个要素类可以同时属于一个拓扑和一个网络数据集或地形数据集。

8.1.3.4 坐标等级

    在地理数据库拓扑中为要素类指定的坐标精度等级控制着要素折点在验证过程中的移动。等级有助于控制折点在处于彼此拓扑容差范围内时的移动方式。处于彼此拓扑容差范围内的折点被认为位置相同且定位于同一点(为处于拓扑容差范围内的坐标指定相同坐标值)。

如果不同的要素类具有不同的坐标精度,通过测量或差分全球定位系统 (GPS) 得到一个精度,而从精度较低的源通过数字化得到另一个精度时,坐标等级可确保可靠性较低的折点要向可靠性高的折点位置移动。

通常,将精度较低的坐标移动到精度较高的坐标位置,或按照聚类中各坐标间的加权平均距离计算一个新位置。在此情况下,加权平均距离基于聚类坐标的精度等级。

当同级折点处于彼此拓扑容差范围内时,对这些折点的位置从几何上进行平均。

为确保以正确的移动顺序需指定等级。精度最高的要素获得等级 1,精度次高的要素获得等级 2,依此类推。ArcGIS10.2中精度等级(Rank)范围为1-50。

 

 

 

8.1.3.5拓扑规则

8.1.3.5.1 面要素规则

拓扑规则

规则描述

示例

必须大于集群容差

要求要素在验证过程中不折叠。此规则是拓扑的强制规则,应用于所有的线和面要素类。在违反此规则的情况下,原始几何将保持不变。

 

不能重叠

要求面的内部不重叠。面可以共享边或折点。当某区域不能属于两个或多个面时,使用此规则。此规则适用于行政边界以及相互排斥的地域分类(如土地覆盖或地貌类型)。

不能有空隙

此规则要求单一面之中或两个相邻面之间没有空白。所有面必须组成一个连续表面。表面的周长始终存在错误。您可以忽略这个错误或将其标记为异常。此规则用于必须完全覆盖某个区域的数据。例如,土壤面不能包含空隙或具有空白,这些面必须覆盖整个区域。

不能与其他要素重叠

要求一个要素类(或子类型)面的内部不得与另一个要素类(或子类型)面的内部相重叠。两个要素类的面可以共享边或折点,或完全不相交。当某区域不能属于两个单独的要素类时,使用此规则。此规则适用于结合两个相互排斥的区域分类系统(如区域划分和水体类型,其中,在区域划分类中定义的区域无法在水体类中也进行定义,反之亦然)。

必须被其他

要素的要素类覆盖

要求一个要素类(或子类型)中的面必须向另一个要素类(或子类型)中的面共享自身所有的区域。第一个要素类中若存在未被其他要素类的面覆盖的区域则视作错误。当一种类型的区域(如一个州)应被另一种类型的区域(如所有的下辖县)完全覆盖时,使用此规则。

必须互相覆盖

要求一个要素类(或子类型)的面必须与另一个要素类(或子类型)的面共享双方的所有区域。面可以共享边或折点。任何一个要素类中存在未与另一个要素类共享的区域都视作错误。当两个分类系统用于相同的地理区域时使用此规则,在一个系统中定义的任意指定点也必须在另一个系统中定义。通常嵌套的等级数据集需要应用此规则,如人口普查区块和区块组或小分水岭和大的流域盆地。此规则还可应用于非等级相关的面要素类(如土壤类型和坡度分类)。

必须被其他要素覆盖

要求一个要素类(或子类型)的面必须包含于另一个要素类(或子类型)的面中。面可以共享边或折点。在被包含要素类中定义的所有区域必须被覆盖要素类中的区域所覆盖。当指定类型的区域要素必须位于另一类型的要素中时,使用此规则。当建模作为较大范围区域的子集区域(如森林中的管理单位或区块组中的区块)时,此规则非常有用。

边界必须被

其他要素覆盖

要求面要素的边界必须被另一要素类中的线覆盖。此规则在区域要素需要具有标记区域边界的线要素时使用。通常在区域具有一组属性且这些区域的边界具有其他属性时使用。例如,宗地可能与其边界一同存储在地理数据库中。每个宗地可能由一个或多个存储着与其长度或测量日期相关的信息的线要素定义,而且每个宗地都应与其边界完全匹配。

面边界必须被

其他要素的边界覆盖

要求一个要素类(或子类型)中的面要素的边界被另一个要素类(或子类型)中面要素的边界覆盖。当一个要素类中的面要素(如住宅小区)由另一个类(如宗地)中的多个面组成,且共享边界必须对齐时,此规则非常有用。

包含点

要求一个要素类中的面至少包含另一个要素类中的一个点。点必须位于面要素中,而不是边界上。当每个面至少应包含一个关联点时(如宗地必须具有地址点),此规则非常有用。

上方的面错误,不包含点。

包含一个点

要求每个面包含一个点要素且每个点要素落在单独的面要素中。如果在面要素类的要素和点要素类的要素之间必须存在一对一的对应关系(如行政边界与其首都),此规则非常有用。每个点必须完全位于一个面要素内部,而每个面要素必须完全包含一个点。点必须位于面要素中,而不是边界上。

位于上方的面要素错误,包含多个点。当这些点位于面的外部时是错误的。

8.1.3.5.2 线要素规则

拓扑规则

规则描述

示例

必须大于集群容差

要求要素在验证过程中不折叠。此规则是拓扑的强制规则,应用于所有的线和面要素类。在违反此规则的情况下,原始几何将保持不变。

 

不能重叠

要求线不能与同一要素类(或子类型)中的线重叠。例如,当河流要素类中线段不能重复时,使用此规则。线可以交叉或相交,但不能共享线段。

不能相交

要求相同要素类(或子类型)中的线要素不能彼此相交或重叠。线可以共享端点。此规则适用于绝不应彼此交叉的等值线,或只能在端点相交的线(如街段和交叉路口)。

不能与其它要素相交

要求一个要素类(或子类型)中的线要素不能与另一个要素类(或子类型)中的线要素相交或重叠。线可以共享端点。当两个图层中的线绝不应当交叉或只能在端点处发生相交时(如街道和铁路),使用此规则。

不能有悬挂点

要求线要素的两个端点必须都接触到相同要素类(或子类型)中的线。未连接到另一条线的端点称为悬挂点。当线要素必须形成闭合环时(例如由这些线要素定义面要素的边界),使用此规则。它还可在线通常会连接到其他线(如街道)时使用。在这种情况下,可以偶尔违反规则使用异常,例如死胡同 (cul-de-sac) 或没有出口的街段的情况。

不能有伪结点

要求线在每个端点处至少连接两条其他线。连接到一条其他线(或到其自身)的线被认为是包含了伪结点。在线要素必须形成闭合环时使用此规则,例如由这些线要素定义面的边界,或逻辑上要求线要素必须在每个端点连接两条其他线要素的情况。河流网络中的线段就是如此,但需要将一级河流的源头标记为异常。

不能相交或内部接触

要求一个要素类(或子类型)中的线必须仅在端点处接触相同要素类(或子类型)的其他线。任何其中有要素重叠的线段或任何不是在端点处发生的相交都是错误。此规则适用于线只能在端点处连接的情况,例如地块线必须连接(仅连接到端点)至其他地块线,并且不能相互重叠。

不能与其他

要素相交或内部接触

要求一个要素类(或子类型)中的线必须仅在端点处接触另一要素类(或子类型)的其他线。任何其中有要素重叠的线段或任何不是在端点处发生的相交都是错误。当两个图层中的线必须仅在端点处连接时,此规则非常有用。

不能与其他要素重叠

要求一个要素类(或子类型)中的线不能与另一个要素类(或子类型)中的线要素重叠。线要素无法共享同一空间时使用此规则。例如道路不能与铁路重叠,或洼地子类型的等值线不能与其他等值线重叠。

必须被其他

要素的要素类覆盖

要求一个要素类(或子类型)中的线必须被另一个要素类(或子类型)中的线所覆盖。此选项适于建模逻辑不同但空间重合的线(如路径和街道)。公交路线要素类不能离开在街道要素类中定义的街道。

必须被其他

要素的边界覆盖

要求线被面要素的边界覆盖。这适于建模必须与面要素(如地块)的边重合的线(如地块线)。

必须位于内部

要求线包含在面要素的边界内。当线可能与面边界部分重合或全部重合但不能延伸到面之外(如必须位于州边界内部的高速公路和必须位于分水岭内部的河流)时,此选项十分有用。

端点必须

被其他要素覆盖

要求线要素的端点必须被另一要素类中的点要素覆盖。在某些建模情况下,例如设备必须连接两条管线,或者交叉路口必须出现在两条街道的交汇处时,此工具十分有用。

不能自重叠

要求线要素不得与自身重叠。这些线要素可以交叉或接触自身但不得有重合的线段。此规则适用于街道等线段可能接触闭合线的要素,但同一街道不应出现两次相同的路线。

不能自相交

要求线要素不得自交叉或与自身重叠。此规则适用于不能与自身交叉的线(如等值线)。

必须为单一部分

要求线只有一个部分。当线要素(如高速公路)不能有多个部分时,此规则非常有用。

8.1.3.5.3 点要素规则

拓扑规则

规则描述

示例

必须与其他要素重合

要求一个要素类(或子类型)中的点必须与另一个要素类(或子类型)中的点重合。此规则适用于点必须被其他点覆盖的情况,如变压器必须与配电网络中的电线杆重合,观察点必须与工作站重合。

必须不相交

要求点与相同要素类(或子类型)中的其他点在空间上相互分离。重叠的任何点都是错误。此规则可确保相同要素类的点不重合或不重复,如城市图层中、宗地块 ID 点、井或路灯杆。

必须被其他

要素的边界覆盖

要求点位于面要素的边界上。这在点要素帮助支持边界系统(如必须设在某些区域边界上的边界标记)时非常有用。

必须完全位于内部

要求点必须位于面要素内部。这在点要素与面有关时非常有用,如井和井垫或地址点和宗地。

必须被其他

要素的端点覆盖

要求一个要素类中的点必须被另一要素类中线的端点覆盖。除了当违反此规则时,标记为错误的是点要素而不是线之外,此规则与线规则“端点必须被其他要素覆盖”极为相似。边界拐角标记可以被约束,以使其被边界线的端点覆盖。

点必须被线覆盖

要求一个要素类中的点被另一要素类中的线覆盖。它不能将线的覆盖部分约束为端点。此规则适用于沿一组线出现的点,如公路沿线的公路标志。

注:详细的ArcGIS地理数据库拓扑规则见附录《ArcGIS拓扑规则》。

8.1.3.6 拓扑验证与脏区

根据建立拓扑时设置的要素类,要素类级别,根据设置好的拓扑规则进行检验,如果目标数据存在不拓扑规则相悖的情况,即标记显示拓扑错误。需要注意的是没有版本的拓扑可以在随时验证,而有版本的拓扑必须在编辑状态中验证。

脏区(Dirty Area)是已通过添加或删除要素而被编辑、更新或影响的区域。脏区允许拓扑限制在拓扑验证期间必须检查拓扑错误的区域。脏区将追踪已添加新要素或修改现有要素的位置,只允许验证拓扑的选定部分,而不是全部。

 

    

 

在创建或删除参与拓扑的要素、修改要素的几何、更改要素的子类型、协调版本、修改拓扑属性或更改地理数据库拓扑规则时,ArcGIS 均会创建脏区。

版本协调的作用类似于对要素类进行的其他编辑和更新,将更改的区域标记为脏区。

8.1.3.7 拓扑错误与异常

拓扑中最初以错误的形式存储不符合拓扑规则的要素。错误要素会在验证期间记录拓扑错误的位置。某些错误是可以接受的,此情况下可将该错误要素标记为异常。错误与异常会以要素形式存储在拓扑图层中,可用于呈现和管理要素不需要符合拓扑规则的情况。

通过ArcMap中的【错误检查器】允许修改不同类型的错误要素,错误要素修改完成后,经过重新验证编辑之后,拓扑错误将会被删除。地理数据库在处理标记为异常的错误时,会将异常要素忽略。拓扑错误用红色点、线和方块表示,拓扑异常用绿色点、线和方块表示。

8.2 拓扑创建

ArcGIS中具有多种定义和创建新拓扑的方法,可以利用Catalog窗口(包括ArcCatalog窗口和ArcMap中的目录列表窗口)和ArcToolbox中的工具来创建拓扑。.

创建拓扑用到的数据在“\ch8\Data\Topology\topology.gdb\CreateTopology”,包含HighWay和LowWay两个要素图层。

8.2.1 Catalog窗口创建拓扑

使用ArcCatalog窗口或者ArcMap窗口中的目录列表窗口(Catalog窗口)都可以创建拓扑。本例选取在ArcMap中的目录列表窗口中创建拓扑。

(1)在【目录列表】中的“\ch8\Data\Topology\topology.gdb\CreateTopology”目录上右键单击,选择【新建】--【拓扑】,打开【新建拓扑】对话框,单击【下一步】。

 

 

 

(2)输入拓扑名称:“CreateTopology”,拓扑容差默认,单击【下一步】。

 

 

 

 

(3)在选择要参与到拓扑中的要素类中选择:HighWay和LowWay,单击【下一步】。

(4)在拓扑等级设置如下:HighWay等级为1,LowWay等级为2,单击【下一步】。

在此处还可以根据需要设置Z坐标的等级精度值,单击上方右侧的【Z属性】,打开【Z属性】对话框设置Z坐标等级精度。

 

 

 

(5)添加拓扑规则。点击右侧【添加规则】,打开【添加规则】对话框,在要素类 的要素中选择:“LowWay”,在规则中选择:“不能有伪结点” ,按照上述方法再次添加以下规则:LowWay,“不能有悬挂点”;HighWay,“不能有伪结点”和“不能有悬挂点”,单击【完成】结束。

(6)创建拓扑完成后,会自动验证拓扑。还可以通过【拓扑】快捷工具条上的【验证】按钮进行拓扑验证。

 

 

 

 

8.2.2 ArcToolbox工具创建拓扑

(1)在【目录列表】中定位到【工具箱】--【系统工具箱】--【Data Management Tools】--【拓扑】--【创建拓扑】,打开【创建拓扑对话框】。

(2)在输入要素数据集中输入:“\ch8\Data\Topology.gdb\Topology_ArcToolbox”,输出拓扑:“Topology_ArcToolbox”,拓扑容差默认,单击【确定】完成拓扑创建。

 

 

 

(3)上述步骤创建的拓扑是空的,里面不包含要素类和拓扑规则,需要分别添加。

(4)添加要素类。单击工具箱中【拓扑】下的【向拓扑中添加要素类】,打开【向拓扑中添加要素类】对话框,设置如下:

输入拓扑:Topology_ArcToolbox

输入要素类: “:\ch8\Data\Topology.gdb\Topology_ArcToolbox\LowWay1”(由于一次只能输入一个要素类,当有多个要素类时需要重复操作才能全部输入);

XY等级和Z等级:根据设定值输入等级值;

按照上述方法再次添加要素类:“HighWay1”

(5)添加拓扑规则。单击工具箱中【拓扑】下的【添加要素规则】,打开【添加拓扑规则】对话框,设置如下:

输入拓扑:Topology_ArcToolbox

规则类型:Must Not Have Dangles (Line),(规则每次只能添加一条,当有多种规则时需要反复多次输入)

输入要素类:“:\ch8\Topology.gdb\Topology_ArcToolbox\LowWay1”

按照上述步骤再次添加以下规则:

LowWay1,“Must Not Overlap (Line)”

HighWay1,“Must Not Overlap (Line)”和“Must Not Have Dangles (Line)”。

 

                                       

(6)验证拓扑。单击单击工具箱中【拓扑】下的【拓扑验证】,打开【拓扑验证】对话框,输入拓扑名称,验证拓扑。

8.3 拓扑修改

拓扑创建完成后,可以对其中需要修改的参数进行修改。拓扑修改可以通过两种方式修改:通过Catalog窗口或是通过【拓扑】工具箱修改。

8.3.1 Catalog窗口修改

在【目录列表】中拓扑名称上右键单击,选择【属性】,打开【拓扑属性】对话框。在选项卡【要素类】和【规则】中进行要素类的修改和规则的修改。

能够进行的操作包括:

(1)要素类修改

要素类的添加与删除;

要素类坐标等级调整

坐标等级精度范围数目的调整

(2)规则修改

规则添加与删除

规则保存为规则文件

规则文件加载

 

8.3.2 ArcToolbox中修改

在工具箱中,定位到【系统工具箱】--【Data Management Tools】--【拓扑】工具集,选择相应的工具进行修改。

8.4  拓扑编辑

  在数据集中图层之间包含着共享边或面的要素,这些要素之间存在着拓扑关系。要编辑共享要素可以有两种方法:

(1)使用编辑工具来编辑拓扑中的单个共享要素。对单个共享要素的修改可能会违反拓扑规则而导致产生拓扑错误,需要对拓扑脏区验证并修复。

(2)通过创建地图拓扑来同时编辑共享几何的多个要素。编辑多个要素的共享几何会修改每一个要素,并不会破坏拓扑规则。

8.4.1 拓扑工具条

【拓扑】工具条是编辑拓扑主要的工具,在【拓扑】工具条中包含:用于创建地图拓扑的工具和进行拓扑编辑的工具。【拓扑】工具条必须在编辑状态下才能使用。

【拓扑】工具条的添加方法:

(1)在【编辑器】工具的【编辑器】下拉菜单中选择【更多编辑工具】--【拓扑】,打开【拓扑】工具条。

(2)在ArcMap工具快捷键空白的位置,右键单击选择【拓扑】,打开【拓扑】工具条。

 

图标

名称

功能描述

选择拓扑

选择创建地图拓扑还是选择地理数据库拓扑

拓扑编辑工具

编辑共享要素节点和边

拓扑编辑追踪工具

追踪的方式编辑共享要素节点和边

修改边

编辑拓扑边上的折点和线段

整形边

在选定的边上构建草图修整边形状

对齐边

将一条边对齐到另一条边上

概化边缘

对所选要素边进行概化操作

共享要素

打开共享要素窗口

验证指定区域中的拓扑

对指定区域内的要素进行拓扑验证

验证当前范围内的拓扑

对当前视图窗口中的要素进行拓扑验证

修复拓扑错误工具

选择并修复拓扑错误工具

错误检查器

打开错误检查器窗口查看拓扑错误

8.4.2 地图拓扑

编辑共享几何时需要使用拓扑来处理。ArcGIS中包含两种拓扑:地图拓扑和地理数据库拓扑。

地图拓扑用于在要素的重合部分创建拓扑关系,能够同时编辑共享几何的要素。通过 shapefile 或地理数据库要素类创建点、线或面图层创建地图拓扑。要素可位于一个或多个图层中并具有不同的图层类型。

地理数据库拓扑是存储在地理数据库中的拓扑关系。地理数据库拓扑中定义了要素数据集中要素类之间的坐标精度、坐标容差、拓扑规则等内容。

地理数据库拓扑的创建8.2已经完整的讲解过,本节主要讲解地图拓扑的创建。   

地图拓扑创建时需要要素类必须位于同一文件夹或者同一地理数据库内,要素类数据集或者shapefile文件都可以创建地图拓扑。

创建地图拓扑的过程如下:

(1)在【目录列表】窗口中定位到:“ch8\Data\地图拓扑”文件夹,加载HighWay.shp和LowWay.shp图层。

(2)启动编辑环境。调出【编辑器】工具条和【拓扑】工具条,在【编辑器】下拉菜单中选择【 开始编辑】,启动编辑环境。同时【拓扑】工具条上的功能也被激活。

(3)在【拓扑】工具条上单击【 选择拓扑】,打开【选择拓扑】对话框。在【选择拓扑】对话框中选择“地图拓扑”选项,勾选两个图层前面的对勾,拓扑容差默认,点击【确定】。

 

 

 

 (4) 地图拓扑创建之后,选择【拓扑】工具条上的【 拓扑编辑工具】进行拓扑编辑,在图上选取要素后,拓扑选择要素以高亮红色显示(要素选择以蓝色高亮显示)。在选取的拓扑要素上右键单击就可以调出快捷菜单,选择相应的选项就可以操作了。

地图拓扑中由于没有拓扑规则约束,所以地图拓扑中对于共享要素的编辑需要手动编辑,拓扑编辑需要用到的操作步骤会用到前面讲过的要素数据编辑功能。常用的功能就是【修改边】、【整形边】和【对齐边】功能。

8.4.3 地理数据库拓扑编辑

通过地理数据库创建的拓扑结构由于包含拓扑规则,为了保持数据的完整性和准确性,需要对不符合拓扑规则的数据进行修正。

拓扑修改之前需要找到违反拓扑规则的位置,这就需要用到拓扑验证的功能。违反拓扑规则的将会被标记为拓扑错误,有时需要将其为异常。

需要用到的数据位于:“\ch8\Data\Topology\topology.gdb\CreateTopology”。

8.4.3.1 拓扑验证

利用Catalog窗口创建拓扑之后会自动进行拓扑验证,但是利用ArcToolbox创建的拓扑不会自动进行拓扑验证。如果没有进行拓扑验证,可以通过【拓扑】工具条上的【 验证指定区域中的拓扑】或者【 验证当前范围内的拓扑】工具进行验证。当拓扑错误被修改之后,拓扑验证不会自动检查,需要对修改的要素重新进行拓扑验证。

8.4.3.2 拓扑错误查看器

在【拓扑】工具条上选择【 错误查看器】,打开【错误检查器】对话框。

 

 

【拓扑错误查看器】中可以查看拓扑错误。

在【错误查看器】中【显示】下拉列表中选择相应的选项。

 

           

如果拓扑错误没有显示,可以单击【错误查看器】窗口中的【立即搜索】按钮查看拓扑错误。通过勾选【立即搜索】后面的“错误”、“异常”和“仅搜索可见范围”选项可以组合显示相应的拓扑错误。

键盘快捷键

功能

上下方向键

在错误列表中上下移动

Z或空格键

缩放至所选错误

P

平移至所选错误

Z

缩放至所选错误

F

选择导致该错误的父要素

D

查看拓扑规则描述

X

将错误标记为异常

E

将异常标记为错误

 

8.4.3.3 拓扑错误修复

在拓扑错误验证之后,就需要将拓扑错误修复。使用【拓扑】工具条上的【 修复拓扑错误工具】可以快速修复拓扑错误。使用该工具可以选择拓扑错误,并从针对该错误类型预定义的大量修复中进行选择,还可以使用该工具获取有关已被违反的规则的详细信息,或将错误标记为异常。

拓扑错误修复的步骤为:

(1)在【拓扑】工具条上选择【 修复拓扑错误工具】,在打开的【错误检查器】中某一项拓扑错误记录上,右键单击从快捷菜单里选择【缩放至(Z)】或者【平移至(P)】等选取拓扑错误。选取错误记录之后就可以修复拓扑错误。

(2)预定义修复。拓扑错误选取之后,可以利用预定义修复工具。预定义修复工具包括【捕捉】、【延伸】和【修剪】工具。以【延伸】工具为例,选取该工具之后,会弹出【最大距离】对话框中输入延伸的最大距离5。

 

  

 

(3)除了利用预定义工具修复拓扑错误,还可以利用要素编辑工具进行修复。在【错误检查器】中选择拓扑错误后右键快捷菜单选择【选择要素(F)】命令选取要素,选取要素之后可以按照要素编辑的方式进行拓扑编辑修复。

(4)有些情况例如单独一条线段的端点,ArcGIS拓扑不能有悬挂点规则中会把没有与其它线段连接的端点标记为错误,实际这不是错误,需要把这种错误标记为异常。在【错误检查器】中的拓扑错误记录上右键单击选择【标记为异常】,就可以去除该错误。

(5)拓扑图层符号修改。

在拓扑图层上右键单击选择【属性】,打开【图层属性】对话框,定位到【符号系统】选项卡,修改图层显示符号。

 在【符号系统】选项卡下可以修改的符号包括:面错误、线错误、点错误、面异常、线异常、点异常和脏区。

 

      

 

(6)拓扑脏区显示与应用。

在拓扑图层【图层属性】中【符号系统】下选中脏区。脏区的显示只在对拓扑错误要素产生编辑之后,例如移动、平移之后显示脏区。

脏区在要素编辑之后产生,重新进行拓扑验证之后,脏区会消失。

(7)拓扑错误汇总统计

有时需要统计产生的拓扑错误的数量。在拓扑图层上右键单击选择【属性】,打开【图层属性】对话框,定位到【错误】选项卡。单击【生成汇总信息】按钮就可以生成汇总信息,同时还可以利用【导出到文件】功能导出到单独的Text文件。

 

 

 

 

                                                 

发布了26 篇原创文章 · 获赞 1 · 访问量 3080

猜你喜欢

转载自blog.csdn.net/gandongusa/article/details/104225667