1、目录 Arcgis中topolopy说明----------------------------2 有关geodatabase的topology规则------------2 Geodatabase组织结构-----------------------3 拓扑简要介绍-------------------------------5 ArcGIS拓扑规则详细说明---------------------7 建拓扑规则--------------------------------------------------------14 查找拓扑错误-------------------
2、17 常见拓扑错误修改----------------------------------------------18 拓扑修改后重新进行拓扑检验-----------------------------24 拓扑编辑-------------------------------------------25 ArcGIS中的拓扑 :Coverage 拓扑 、Geodatabase的拓扑 1、Coverage 拓扑: 固定的数据模型: 基
3、本的: Polygon + Arc + Node 核心的: Regions,Routes 一组固定的完整性规则: Label 点必须在多边形内 多边形边界必须被ARCs覆盖 多边形必须封闭 多边形不能重叠(只有regions可以) 著名的 Clean,Build 命令 2、Geodatabase的拓扑 本文主要讲Geodatabase的拓扑 Arcgis中topolopy说明: 在arcgis中有关topolopy操作,,有两个地方,一个是在arccatalog中,一个是在arcmap中。通常我们将在arccatalog中建立拓扑称为建立
4、拓扑规则,而在arcmap中建立拓扑称为拓扑处理。 arccatalog中所提供的创建拓扑规则,主要是用于进行拓扑错误的检查,其中部分规则可以在容限内对数据进行一些修改调整。建立好拓扑规则后,就可以在arcmap中打开些拓扑规则,根据错误提示进行修改。 arcmap中的topolopy工具条主要功能有对线拓扑(删除重复线、相交线断点等,topolopy中的planarize lines)、根据线拓扑生成面(topolopy中的construct features)、拓扑编辑(如共享边编辑等)、拓扑错误显示(用于显示在arccatalog中创建的拓扑规则错误,topolopy中的er
5、ror inspector),拓扑错误重新验证(也即刷新错误记录)。 有关geodatabase的topology规则 多边形topology 1.must not overlay:单要素类,多边形要素相互不能重叠 2.must not have gaps:单要素类,连续连接的多边形区域中间不能有空白区(非数据区) 3.contains point:多边形+点,多边形要素类的每个要素的边界以内必须包含点层中至少一个点 4.boundary must be covered by:多边形+线,多边形层的边界与线层重叠(线层可以有非重叠的更多要素) 5.must be c
6、overed by feature class of:多边形+多边形,第一个多边形层必须被第二个完全覆盖(省与全国的关系) 6.must be covered by:多边形+多边形,第一个多边形层必须把第二个完全覆盖(全国与省的关系) 7.must not overlay with:多边形+多边形,两个多边形层的多边形不能存在一对相互覆盖的要素 8.must cover each other:多边形+多边形,两个多边形的要素必须完全重叠 9.area boundary must be covered by boundary of:多边形+多边形,第一个多边形的各要素必须为第二个的一个或
7、几个多边形完全覆盖 10.must be properly inside polygons:点+多边形,点层的要素必须全部在多边形内 11.must be covered by boundary of:点+多边形,点必须在多边形的边界上 线topology 1.must not have dangle:线,不能有悬挂节点 2.must not have pseudo-node:线,不能有伪节点 3.must not overlay:线,不能有线重合(不同要素间) 4.must not self overlay:线,一个要素不能自覆盖 5.must not intersect
8、线,不能有线交叉(不同要素间) 6.must not self intersect:线,不能有线自交叉 7.must not intersect or touch interrior:线,不能有相交和重叠 8.must be single part:线,一个线要素只能由一个path组成 9.must not covered with:线+线,两层线不能重叠 10.must be covered by feature class of:线+线,两层线完全重叠 11.endpoint must be covered by:线+点,线层中的终点必须和点层的部分(或全部)点重合 12.
9、must be covered by boundary of:线+多边形,线被多边形边界重叠 13.must be covered by endpoint of:点+线,点被线终点完全重合 14.point must be covered by line:点+线,点都在线上 Geodatabase组织结构。 Geodatabases中,将地理数据组织成为数据对象(data objects)。这些数据对象存储于要素类(feature class)、对象类(object class)或要素集(feature datasets)中。 对象类(object class)用于存
10、储非空间信息。 要素类(feature class)则存储了空间信息及其相应的属性信息,在同一个要素类中,空间要素的几何形状必须一致,比如必须都是点、线或者面。简言之,要素类是同类要素的集合。 要素集(feature dataset)用于存放具有同一空间参考(spatial reference)的要素类。存放了简单要素的要素类可以存放于要素集中,也可以作为单个要素类直接存放在Geodatabase的目录下。直接存放在Geodatabase目录下的要素类也称为独立要素类(standalone feature)。存储拓扑关系的要素类必须存放到要素集中,使用要素集的目的是确保这些要素类具
11、有统一的空间参考,以利于维护拓扑。Geodatabase支持要素类之间的逻辑完整性,体现为对复杂网络(complex networks)、拓扑规则和关联类等的支持。下面描述Geodatabase中的数据对象(data objects)。 要素类(Feature class) 要素类,可称为点、线或面类型要素的集合,同时,地图的文本信息也可用注记(annotation)要素类存储。非独立要素类,也就是相关联的要素类(如参与拓扑规则或者几何网络的要素类),以要素集的形式管理到一起。 栅格数据集(Raster data set) 以栅格表的形式管理的单或多波段栅格数据。 表(T
12、ables) 描述非空间信息的表。 关联类(Relationships) 关联类是一种机制:从一个表(要素类)中选择记录以后,可以在相关联的表(要素类)中可以获取到相应记录。 域(Domains) 列有效值的一个列表(或范围)。 子类(Subtypes) 将要素类中的要素进行了逻辑分组,每一个分组便是一个子类。每一个这样的都有其完整性规则和GIS行为(如高速公路,是道路要素的一个子集)。 空间关系(Spatial relationships) 在拓扑工具(topologies)或几何网络(Geometric network)中定义。拓扑规则可以指定要素类中的要
13、素之间有何种空间关系,如地块之间不能重叠(overlap),或者多个不同要素类中的要素之间的空间关系,比如国家首都(点要素)必须位于该国家疆土(面要素)上。 元数据(Metadata) 数据库中的每个元素的描述文档。 拓扑简要介绍 1.拓扑规则简介 在实际应用时,有时需要在要素之间保持某种特定的关系,比如,行政管理的范围不能相互重叠,线状道路之间不能有重叠线段,某些汽车站必须在公共交通线路上等,这些特定的空间关系可用拓扑学来描述、定义。借助Geodatabase,可规定一系列拓扑规则,在要素之间建立起空间关系,还可以对这些规则(即关系)进行调整。 拓扑规则有
14、若干专用术语。 相交(Intersect):线和线交叉,并且只有一点重合,该点不是结点(端点),称之相交。 接触(Touch):某线段的端点和自身或其他线段有重合,称为接触。 悬结点(Dangle Node,Dangle):线段的端点悬空,没有和其他结点连接,这个结点(端点)称为悬结点。 伪结点(Pseudo Node):两个结点相互接触,连接成一个结点,称为伪结点。 拓扑规则的种类可以按点、线、面(多边形)来分。以下介绍Geodatabase的拓扑规则,共25条,每条规则有一幅图对应,图的左半部分是符合规则的例子,右半部分例子中有不符合规则的地方。 2.点拓扑规则举例 点拓扑规
15、则一:Must be covered by boundary of,点必须在多边形边界上。例如,有一个点要素类代表公共汽车站,另有一个多边形要素类代表地块,按本规则,公共汽车站必须位于地块的边界上。另一个例子是行政界碑必须落在行政区多边形的边界上。不满足该规则的点要素被标记为错误(附图1)。 点拓扑规则二:Must be covered by endpoint of,点要素必须位于线要素的端点上。例如,阀门为点要素,必须位于线要素类输水管的尽端。不满足该规则的点要素被标记为错误(附图2)。 点拓扑规则三:Point must be covered by line,点要素必须在线要素之上。例
16、如,点要素代表河流上的航标灯,线要素代表河流,航标灯必须位于河流上。另一个例子是:汽车站(点要素类)必须在道路(线要素类)上。不满足该规则的点要素被标记为错误(附图3)。 点拓扑规则四:Must be properly inside polygons,点要素必须在多边形要素内(在边界上不酸)。比如,省行政区为多边形,省会城市为点,省会一定要在该省内。另一个例子是代表住宅地址的点必须在住宅用地多边形内。不满足该规则的点要素被标记为错误(附图4)。 可以看出,点要素本身不能建立拓扑规则,必须和线要素或多边形要素一起才能建立拓扑规则。修正错误的常用方法是删除或移动错误点(移动也可以理解为删除后立
17、即添加)。 3.多边形拓扑规则举例 规则一:Must not overlap,同一多边形要素类中多边形之间不能重叠(几个多边形边界共享一个点或共享一条边不算重叠)(附图5)。例如,宗地之间不能有重叠,行政区不能有重叠。重叠的部分将产生多边形错误,修正错误的方法有三种:一是删除重叠部分,留出空白;二是将重叠的部分并到某个多边形;三是在重叠部分新增多边形,并删除原来的重叠部分。 规则二:Must not have gaps,多边形之间不能有空隙。比如,规定表示土壤类型的多边形之间不能有空隙(附图6)。不满足规则的地方将产生线错误,表示空隙多边形,修正的方法是调整原来的边界,或添加新的多边形。
18、 规则三:Contain point,多边形内必须包含点要素(边界上的点不算)(附图7)。例如,规定宗地内至少有一个地址点。不包含点的多边形被视为错误,修正的方法是在错误多边形内补一个点,或者将多余的多边形删除。 规则四:Boundary must be covered by,多边形的边界必须和线要素的线段重合(附图8)。例如,交通调查小区的边界必须和道路线要素类重合。违反规则的地方产生线错误,修正的方法可以是调整线段,也可调整多边形。 规则五:Must be covered by feature class of,多边形要素中的每一个多边形都被另一个要素类中的多边形覆盖(附图9)。例如
19、城市规划区必须在若干行政区划内,工业建筑多边形必须在工业用地内。违反规则的地方产生多边形错误,修正的方法是在重叠的部分增加新的多边形或调整错误多边形。 规则六:Must be covered by,每个多边形要素都要被另一个要素类中的单个多边形覆盖。例如,建筑物多边形必须在宗地多边形内,不能出现跨越(规则五可以跨越)(附图10)。不满足规则的地方产生多边形错误,修正的方法是调整第一类多边形,使它们不要和第二类有交叉,或者扩大第二个要素类中的某些多边形,使它们能覆盖第一类中的错误多边形。 规则七:Must not overlap with,一个要素类中的多边形不能与另一个要素类中的多边形重
20、叠。虽然和规则一相似,都是说不能重叠,但这里是指两个多边形要素类(Feature Class)之间的关系。比如,一个要素类表示湖泊,另一个要素类表示陆地,它们是相互独立的类,显然它们应该满足该规则(附图11)。重叠的部分产生多边形错误,修正方法同规则一。 规则八:Must cover each other,两个要素类中的多边形要相互覆盖,外边界要一致(附图12)。例如,土壤层范围和地质层范围应一致。违反规则的地方将产生多边形错误,修正错误的方法是在重叠不到的地方增加多边形,或者调整、删除不重叠的部分。 规则九:Area boundary must be covered by boundar
21、y of,某个多边形要素类的边界线在另一个多边形要素类的边界上(附图13)。例如,县、市边界上必须有乡、镇边界,而且前者的边界必须被后者所重合。违反规则的地方将产生线错误,修正的方法是手工编辑边界。 多边形不仅可以定义自身的规则,而且可以和点要素、线要素、其他多边形要素之间建立起拓扑关系。 4.线拓扑规则举例 规则一:Must not have dangles,不允许线要素有悬结点,即每一条线段的端点都不能孤立,必须和本要素中其他要素或和自身相接触(附图14)。例如,宗地边界线段不能有悬结点。违反规则的地方将产生点错误,修正的方法是将有悬点的线段延伸到其他要素上,或者将长出的部分截断后删
22、除。 规则二:Must not have pseudo node,不能有伪结点,即线段的端点不能仅仅是两个端点的接触点(自身首位接触是例外),例如河流(附图15)。违反规则的地方将产生点错误,修正的方法是将伪结点两边的线段合并为一个条线,伪结点自然消除。 规则三:Must not overlap,在同一要素类中,线与线不能相互重叠,例如,街道、河流(附图16)。违反规则的地方产生线错误,修正的办法是将不需要的线段截断,再删除。 规则四:Must not self overlap,线要素不能和自己重叠,例如,街道(附图17)。违反规则的地方产生线错误,修正的方法是截断、删除重叠部分。 规
23、则五:Must not intersect,同一要素中,线与线不能相交,例如,河流、宗地边界(这里不是多边形边界,是线要素)(附图18)。违反规则的地方产生线错误,修正的方法是重合处合并,相交处打断。 规则六:Must not self intersect,同一要素类中,线要素不能自相交(附图19)。违反规则的地方将产生线错误和点错误,修正的方法是在自相交处适当缩短或外移。 规则七:Must not intersect or touch interior,线和线不能交叉,端点不能和非端点接触(非接触点部分相互重叠是允许的)(附图20)。例如,铁路和铁路可以重合,但不能交叉。某铁路端点不能和
24、其他铁路的非端点部分接触。违反规则的地方产生线错误和点错误,根据实际需要编辑、修正。 规则八:Must be single part,线要素必须单独,不能相互接触、重叠(附图21)。违反规则的地方产生线错误,修正的方法是将接触的地方合并,成为一个要素,或移动后分离。 规则九:Must not overlap with,两个线要素类中的线段不能重叠(附图22)。例如,道路和铁路不能相互重叠。违反规则的地方产生线错误,根据实际需要编辑、修正。 规则十:Must be covered by feature class of,某个要素类中的线段必须被另一要素类中的线段覆盖(附图23)。例如,公交
25、线路必须在道路上行驶。违反规则的地方将产生线错误,修正的方法是将错误线段删除,再重新输入正确的。 规则十一:End point must be covered by,线要素的端点被点要素覆盖。例如,每一条公交线路的尽端都有终点站(附图24)。违反规则的地方将产生错误,修正的方法是增补新的点要素或调整不应该出现的线段。 规则十二:Must be covered by boundary of,线要素必须被多边形要素的边界覆盖(附图25)。例如,城市的内部道路至少一侧有地块多边形边界。违反规则的地方产生线错误,修正的方法是删除错误的线,或编辑多边形。 一个要素类允许设置多个拓扑规则,但是这些规
26、则必须定义在一个拓扑类中。 ArcGIS拓扑规则详细说明 我们在实际的图形处理中,一些图形要求满足一定的要素之间的关系,如二次调查中的地类图斑不能在行政区以外,图斑不能相互重叠,这些特定的图形之间的关系我们可以定义一些拓扑规则来加以限制。 一、点之间的拓扑关系 拓扑一(Point-Area):Must be covered by boundary of,(原始解释:点必须在多边形边界上。)例如:在地籍建库中,界址点必须在宗地的边界上,要是不在,那就是错误。 拓扑二:Must be covered by endpoint of,(原始解释:点要素必须位于线要素的端点上。)例
27、如:水龙头必需在水管的末端(废话!要在中间怎么用?)。 规则三:Point must be covered by line,(原始解释:点要素必须在线要素之上。)例如:地籍测量中,界址点必需在界址线上。(和规则三是有差别的!) 规则四:Must be properly inside polygons,(原始解释:点要素必须在多边形要素内,在边界上也不行。) 二、线拓扑规则 规则一:Must not overlap,在同一层要素类中(同一层之间的关系),线与线不能相互重叠,修正的办法是将不需要的线段截断,再删除。 规则二:Must not intersect,同一层要素
28、中,线与线不能重叠和相交(同一层之间的关系)。修正方法:重合处合并,相交处打断。 规则三:Must be covered by feature class of,同一层中某个要素类中的线段必须被另一要素类中的线段覆盖(同一层之间的关系)。修正方法:将错误线段删除,再重新输入正确的。 规则四:Must not overlap with,两个线要素类中的线段不能重叠。(不同图层中线对线的关系) 规则五:Must be covered by boundary of,线要素必须被多边形要素的边界覆盖(线与多边形之间的拓扑关系)。修正方法:删除错误的线,或编辑多边形。 规则六:M
29、ust not have dangles,不允许线要素有悬结点,即每一条线段的端点都不能孤立,必须和本要素中其他要素或和自身相接触(同一线层之间的拓扑关系)。修正方法:将有悬点的线段延伸到其他要素上,或者将长出的部分截断后删除。 规则七:Must not have Pseudos,不能有伪结点,就是一条线段中间不能有断点。修正方法:将伪结点两边的线段合并为一个条线,伪结点自然消除。 规则八:Must not self-overlap,线要素不能和自己重叠,修正方法:截断、删除重叠部分。 规则九:Must not self intersect,线要素不能自相交,就是不能和自己搅
30、在一起。修正方法:在自相交处适当缩短或外移。 规则十:Must be single part,线要素必须单独,不能联合。但若是两条线首尾相连接,这时候Merge操作后产生的是一条线了,这时候是不会报错的。但是分开的两条线进行Merge操作,这时候就会出现不符合规则的错误。这个拓扑限制在数据处理的时候很有用处。修正方法:将连合的部分打散就可以了。 规则十一:Must not intersect or touch interior,线和线不能交叉,端点不能和非端点接触(非接触点部分相互重叠是允许的),两条线相交时(两条线)必然有断点。修改方法:剪断没有断点的线,(不是节点,而是端点)。
31、 规则十二:End point must be covered by,线要素的端点被点要素覆盖。修正方法:增补新的点要素或调整不应该出现的线段。 三、面拓扑规则 规则一:Must not overlap,同一多边形要素类中多边形之间不能重叠(同一层之间的拓扑关系,不涉及到其他图层)。例如,宗地之间不能有重叠。修正方法很灵活。 规则二:Must not have gaps,多边形之间不能有空隙(同层之间的拓扑关系)。例如:一个土地利用图斑层里面必需是被图版填满的,中间不能有一丝缝隙。修正方法根据实际来定,很灵活。 规则三:Must not overlap with,一个
32、要素类中的多边形不能与另一个要素类中的多边形重叠。(两个不同面层之间的关系。) 规则四:Must be covered by feature class of,多边形要素中的每一个多边形都被另一个要素类中的多边形覆盖(两个不同面层之间的拓扑关系)。 规则五:Must cover each other,两个要素类中的多边形要相互覆盖,外边界要一致(层与层之间的拓扑关系)。 规则六:Must be covered by,每个多边形要素都要被另一个要素类中的单个多边形覆盖。例如,建筑物多边形必须在宗地多边形内,不能出现跨越(层与层之间的拓扑关系)。 规则七:Boundary
33、must be covered by,多边形的边界必须和线要素的线段重合(面与线之间的关系)。 规则八:Area boundary must be covered by boundary of,某个多边形要素类的边界线在另一个多边形要素类的边界上。例如,县、市边界上必须有乡、镇边界,而且前者的边界必须被后者所重合。违反规则的地方将产生线错误,修正的方法是手工编辑边界。 规则九:Contain point,多边形内必须包含点要素(边界上的点不再多边形内)。 1、 建拓扑规则
34、拓扑的建立是在Arccatalog 中实现的,要在arccatalog中创建拓扑规则,必须保证数据为geodatabase格式。 因此,首先创建一个新的geodatabase。右键单击鼠标,如图: 2、然后在其下创建一个要素集,设置数据集的坐标系统,如果不能确定就选择你要进行分析的数据的坐标系统; 如图: 3、创建要素类或将其它数据作为要素类导入到该要素集里,如图: 4. 构建拓扑关系 右键单击topology要素数据集,单击New选择Topology (询问是否进行拓扑检验) 这样一个拓扑关系就建立起来,然后我们
35、可以在ArcMap中打开检查,并利用 topolopy工具条中错误记录信息进行修改(需要在编辑状态下才可以修改)。 2查找拓扑错误 (1)将图层(非拓扑图层)设为可编辑状态,加载Topology工具条,在Topology下拉框中选择要编辑的拓扑图层。 (2)单击Topology工具栏中的,打开Error Inspector,单击,下拉表格中显示错误信息。 3修改拓扑错误 ARCGIS常见拓扑错误的修改 一、面不能相互重叠(must not overlap) 修改方法有以下几种: 1、可以直接修改要素节点去除重叠部分。 2、在错误上右键选择merge,将重叠部
36、分合并到其中一个面里。(好用) 3、在错误上右键选择create feature,将重叠部分生成一个新的要素,然后利用editor下的merge把生成的面合并到相邻的一个面里。 4、用editor下clip直接裁剪掉重叠部分。 二、面不能有缝隙(must not have gaps) 1、可以直接修改要素节点去除重叠部分。 2、在错误上右键选择create feature,将缝隙部分生成一个新的要素,然后利用editor下的merge把生成的面合并到相邻的一个面里。 3、task里选择auto-complete polygon,用草图工具自动完成
37、多边形,会在缝隙区域自动生成两个多边形,然后用merge合并到相邻面里。 注:查面的缝隙时最面最外围一圈会认为是缝隙,这种可以标注例外。 三、线不能相交(检查线要素不能重叠规则包含在线不能相交里) 1、完全重叠的话可以选中其中一条删除,或者利用spatial etl tool中相关函数进行删除重复线处理。 2、部分重叠可以在错误上右键选择subtract去除重复部分 3、直接用平面交叉线对线重叠进行去除,相交线打断,具体用法为选中线,点击拓扑工具条上平面交叉线工具。 四、线不能有悬挂 1、根据实际情况对线进行修改消除悬挂线。 2、可以
38、在拓扑错误列表中选中所有悬挂错误右键进行自动延伸和裁剪。延伸或裁剪时需输错一个距离,小于这个距离的悬挂线会被自动延伸或裁剪。 五其他错误 1、多部分要素 A、可以用高级编辑工具条上打散要素进行打散 B、直接用toolbox里的multipart to singlepart。 2、面状要素、线状要素错误修复 Problems repaired with this tool: Null geometry—The feature will be deleted from the feature class. Short segment—The geom
39、etry's short segment will be deleted. Incorrect ring ordering—The geometry will be updated to have correct ring ordering. Incorrect segment orientation—The geometry will be updated to have correct segment orientation. Self intersections—The geometry's segments that intersect will be split
40、 at their intersection. Unclosed rings—The unclosed rings will be closed. Empty parts—The parts that are null or empty will be deleted. 六、具体案例 以土地利用现状数据库为例 需要检查的规则如下 在mdb里画圆弧后转成shp再转成MDB后可能出现圆弧处线和面变形出现重叠和缝隙等情况(不了解) 常规的修改办法会很麻烦,就要利用其它方法来做处理了 4 拓扑修改后重新进行拓扑检验 可以通过单击Topology工具条中 (在图面上的指定区域进行拓扑检验) 单击 (可以在整个区域进行拓扑检验) 单击(在当前可见图面进行拓扑检验) 5拓扑编辑 如 一个地块的边界需要修改: (1)将图层设置为可编辑状态,单击Topology工具栏中的,选择要进行拓扑编辑的要素,进行移动、修改等操作。 (2)在Task下拉口中选择Topology Tasks中哦的Reshape Edges任务,在Target中选泽目标图层。单击,在视图中选中一条边要素,再单击,画一条草图线与所选边两次相交,共享边就会发生变形。 25






