数据检查和拓扑处理 2014年1月4日 讲解内容 1.拓扑描述及作用 2.拓扑规则介绍 3.拓扑建立和拓扑检查 4.拓扑错误处理 5.拓扑编辑 Page ?2 开始 ArcGIS制图流程 投影和坐标系定制 手工矢量化 地图矢量化 自动矢量化 地图拓扑 拓扑规则 矢量化错误 修改 拓扑检查无 错误 土地利用层 面层生成 行政区层 地类代码 行政区等级 属性录入 图斑编号 图例绘制 根据属性分类填充 相应图例 线层提取 道路层 地图填充 图幅拼接 地图整饰 结束 为什么需要拓扑 ? 拓扑是地理要素间的空间关系,它是确保数据质量的 基础。拓扑能提高空间分析能力,并且在确保GIS数据 库质量方面扮演了一个重要角色。 ? 拓扑将GIS行为应用到空间数据上。拓扑使得GIS软件 能够回答这样的问题,比如邻接、连通、邻近和重叠 。在ArcGIS中拓扑为用户提供了一个有力的、灵活的 方式,来确立和维护空间数据的质量和完整性。 ? 拓扑关系可以看成是空间约束,可把它们应用到空间 数据上。ArcGIS应用了这些关系,并且在任何一个约 束被打破时会通知你。为了做到这一点,GIS软件中包 含的工具必须要能够识别空间约束,并且提供用来查 找和修复违规要素的工具。 拓扑检查作用 面与面之间互相重叠关系 面层中不合理空白区域 面与面之间完全覆盖关系 点层要素与面层要素之间包含关系 线层中悬挂节点、伪节点 线要素之间重合关系 线要素之间交叉、相交及自相交关系 点线重合关系 …… 功能说明 1、ArcGIS中有关Topolopy操作有两地方,一个在Arccatalog中, 一个是在Arcmap中。通常我们将在Arccatalog中建立拓扑称为建 立拓扑规则,而在Arcmap中建立拓扑称为拓扑处理。 2、Arccatalog中所提供的创建拓扑规则,主要是用于进行拓扑错 误的检查,其中部分规则可以在容限内对数据进行一些修改调整。 建立好拓扑规则后,就可以在Arcmap中打开创建拓扑规则,根据 错误提示进行修改。 3、Arcmap 中的Topolopy工具条主要功能有对线拓扑(删除重复 线、相交线断点等)、根据线拓扑生成面、拓扑编辑(如共享边 编辑等)、拓扑错误显示(用于显示在Arccatalog中创建的拓扑 规则错误,Topolopy中的Error inspector),拓扑错误重新验证 (也即刷新错误记录)等。 拓扑检查步骤 1、在ArcCatalog中将需要检查的数据导入到 Geodatabase中; 2、创建Topolopy层并填加拓扑规则,完成拓 扑关系检查; 3、在Arcmap中打开由拓扑规则产生的文件, 利用Topolopy工具条中错误记录信息进行 修改; 4、重新拓扑关系检查; 1、导入数据到Geodatabase 1)ArcGIS中Shape格式数据不支持拓扑规则检 查,所以数据必须保证是Geodatabase格式; 2)要进行拓扑规则检查的要素类必须在同一要 素集下; 2、填加拓扑规则 ? 进入要素集下,在窗口右边空白处单击右键, 在弹出的右键菜单中有New->Topolopy,然后 按提示操作,添加一些规则,就完成拓扑规则 的检查; 讲解内容 1.拓扑描述及作用 2.拓扑规则介绍 3.拓扑建立和拓扑检查 4.拓扑错误处理 5.拓扑编辑 Page ?10 2、拓扑规则介绍 ArcGIS的拓扑都是基于geodatabase(mdb,gdb,sde), shp文件是不能进行拓扑检查的。 首先要建立Feature Dataset(要素集),把需要检查的数据 放在同一要素集下,要素集和检查数据的数据基础(坐标系统、 坐标范围)要一致,直接拖进入就可以,拖出来也可以,有 拓扑时要先删除拓扑 拓扑分为两种: 1. 一个图层自身拓扑:数据类型肯定一致,要么是点,要么线、 要么面 2. 两个图层之间的拓扑:数据类型可能不同,有线点、点面、 线面、线线、面面五种,检查前提必须在同一Feature Dataset(要素集)下,数据基础(坐标系统、坐标范围)要 一致 Page ?11 3. 拓扑容差 面拓扑规则说明 1、must not overlay 单要素类,多边形要素相互不能重叠 2、must not have gaps 单要素类,连续连接的多边形区域中间不能有空 白区(非数据区) 3、must not overlay with 多边形+多边形,两个多边形层的多边形不能存 在一对相互覆盖的要素 4、must be covered by feature class of 多边形+多边形,第一个多边形层必须被第二个 完全覆盖(省与全国的关系) 面拓扑规则说明 5、must cover each other 多边形+多边形,两个多边形的要素必须完全重 叠 6、must be covered by 多边形+多边形,第一个多边形层必须把第二个 完全覆盖(全国与省的关系) 7、boundary must be covered by 多边形+线,多边形层的边界与线层重叠(线层 可以有非重叠的更多要素) 8、area boundary must be covered by boundary of 多边形+多边形,第一个多边形的各要素必须为 第二个的一个或几个多边形完全覆盖 面拓扑规则说明 9、contains point 多边形+点,多边形要素类的每个要素的边界以 内必须包含点层中至少一个点 线拓扑规则说明 1、must not overlay 线,不能有线重合(不同要素间) 2、must not intersect 线,不能有线交叉(不同要素间) 3、must be covered by feature class of 线+线,两层线完全重叠 4、must not overlay with 线+线,不能有线重合 2-5、线拓扑规则说明 5、must be covered by boundary of 线+多边形,线被多边形边界重叠 6、must not have dangle 线,不能有悬挂节点 7、must not have pseudo 线,不能有伪节点 8、must not self overlay 线,一个要素不能自覆盖 线拓扑规则说明 9、must not self intersect 线,不能有线自交叉 10、must be single part 线,一个线要素只能由一个path组成 11、must not intersect or touch interrior 线,不能有相交和重叠 12、endpoint must be covered by 线+点,线层中的终点必须和点层的部分(或全 部)点重合 2-7、点拓扑规则说明 1、must be covered by boundary of 点+多边形,点必须在多边形的边界上 2、must be covered by endpoint of 点+线,点被线终点完全重合 3、point must be covered by line 点+线,点都在线上 4、must be properly inside polygons 点+多边形,点层的要素必须全部在多边形内 2.1一个图层自身拓扑 点层:一个图层ArcGIS中没有拓扑检查,在 我们实际中可能用到是点重复检查,做法是:没 有点的坐标,可以使用ArcToolBox中Add XY Coordinates增加点XY坐标,再新建一个字段 XYStr,值更新为str([POINT_X]*1000) + str([POINT_Y]*1000),这里的1000,就是容差为 0.001,按XYStr, Summarize导出,个数不一致, 就有重复,通过XYStr连接可以查找重复。 Page ?19 2.1一个图层自身拓扑 线层: a) must not overlap:不能有线重合 ① b) must not intersect: 不能有线相交①, ②, ③ ⑥ c) must not have dangle:不能有悬挂节点 (一个点需要连两个以上的线)④ d) must not have pseudo-node:线不能有伪 节点 出现在连续弧段上的节点。把该弧段 不必要地分为数段。如⑤ e) must not self intersect 如③ ⑥ 不能 线自相交 ,是must not intersect特例 Page ?20 2.1一个图层自身拓扑 线层: f) must be single part:线,一个线要 素只能由一个path组成 g)must not intersect or touch interrior:线不能有相交和内节点接 触⑦,还有不能有线交 Page ?21 2.1一个图层自身拓扑 面层 1.must not overlap:要素相互不能重叠(含部分) 2.must not have gaps:单要素类,连续连接的面中 间不能有空白区(非数据区)或则缝隙 Page ?22 2.2.1两个图层之间拓扑 点线之间 点线拓扑 must be covered by endpoint of:点被线终点 完全重合如①红点错误 point must be covered by line:点都在线上 如②红点错误 可以看出①包含② 线点拓扑 endpoint must be covered by:线+点, 线层中的终点必须和点层的部分(或全部)点 重合 Page ?23 2.2.2两个图层之间拓扑 点面之间 点面拓扑-检查点 Must Be Covered By Boundary Of 点必须在多边形(面)的 边界上 Must Be Properly Inside点层的要素必须全部在多边形(面) 内,点在多边形边上也是错误 面点拓扑-检查面 contains point:多边形+点,多边形要素类的每个要素的边 界以内必须包含点层中至少一个点,在边缘也是错误 Page ?24 2.2.3两个图层之间拓扑 线面之间 线面拓扑:检查线 Must Be 线+ Covered By Boundary Of多边形,线被多边 形边界重叠,如:行政界线是行政区的边界 面线拓扑:检查面 Boundary Must Be Covered By多边形+线:多边形层的边界 与线层重叠(线层可以有非重叠的更多要素) 所有的by都是多图层之间 Page ?25 2.2.4两个图层之间拓扑 线线之间 线线之间拓扑,可以用于一个线图层自己和自己运 算 Must Not Overlap With:要素层相互不能重叠,拓 扑错误,是将两个图层重叠的列出来,图层顺序 不影响最后的结果,只能用于两个不同图层之间。 Page ?26 2.2.5两个图层之间拓扑 面面之间 ① Must Not Overlap With:要素层相互不能重叠,拓扑错误, 是将两个图层重叠的列出来,图层顺序不影响最后的结果, 只能用于两个不同图层之间。 ② Must Be Covered By Feature Class Of:第一个多边形 层必须被第二个完全覆盖(如所有图必须在行政区划范围 内,省与全国的关系),图层的先后,效果是不一样的, ③ must be covered by:第一个多边形层必须把第二个完全 覆盖(全国与省的关系)与前一个相反,就是上一个图层 顺序调整 Page ?27 2.2.5两个图层之间拓扑 面面之间 ④ Must Cover Each Other 两个多边形的要素必须完全重 叠 ,是指所有对象,而不是每个对象,如图斑的范围和 行政区范围应该一致,图层先后不影响最后的结果 ⑤ Area Boundary Must Be Covered By Boundary Of:第一 个多边形的各要素必须为第二个的一个或几个多边形完全 覆盖,如一个行政区划是一个多个图斑组成,图斑不能跨 行政区,如全图地图是各个省组成。 Page ?28 2.3拓扑容差 拓扑容差是拓扑错误,关键因素,不同容差,错误个 数也不一样,甚至在指定容差下有拓扑错误,如0.001, 而容差为0.005,就没有了。 拓扑容差大小与数据的要有关,一般0.001m,就可以了 Page ?29 3.拓扑建立和拓扑检查 在Arccatalog中,如果数据是shp格式,先转 Geodatabase,如果是Geodatabase,看是否有 FeatureDataset,要检查的数据是否在同一个 FeatureDataset下,坐标系可以采用导入 (import)已有数据的坐标系统 要素集和检查数据的数据基础(坐标系统、坐标 范围)要一致 Page ?30 MDB一个小技巧 如果数据坐标系统一致,数据能叠加在一起,就是坐标范围 定义不一致,一般的方法,重新见一个表后数据转,对于 mdb有个小技巧,在access打开mdb 修改 GDB_ObjectClasses 中的都DatasetID=1为对应的 GDB_FeatureDataset主键(newdljx放在gp) Page ?31 3.拓扑建立和拓扑检查-内容 1、建拓扑 是arccatalog中, 2、拓扑检查:可以在arccatalog,或arcmap中,拓 扑错误处理是在arcmap。 3、拓扑检查实际会改变数据,不仅仅是拓扑检查。 Page ?32 3.1建拓扑 在FeatureDataset右键new topology,一个FeatureDataset 中可以有多个topology,但一个图层只能在一个topology 1. 首先给拓扑设臵名称和容差 2. 选择参与的图层,最少一个图层 3. 添加拓扑 Page ?33 3.1建拓扑 4、拓扑验证,点击拓扑,右键 validate 5、修改容差,右键,properies,在 error中看错误 Page ?34 3.2拓扑检查 拓扑有效后就可以查看拓扑错误,设臵不同拓扑, 就实现不同拓扑检查 可以arccatalog,也可是在acrmap将一个图层叠加在一 起看,有错误就可以进行拓扑编辑 Page ?35 4.拓扑错误处理 1、拓扑工具条的介绍: 拓扑Topology工具条在 ArcMap中,通过右键增加,要 想使用数据处于编辑状态 2、拓扑错误处理 Page ?36 4.1、拓扑工具条的介绍 ① Map Topology 设臵拓扑图层 ② Constuct Feature 构建拓扑要素、线转面,面转线,操 作是选中要素,后点击该按钮。 ③ planarize lines :对线拓扑处理,交叉线自动按交点打 断,删除重复线,操作同上 ④ Topology Edit Tool:拓扑编辑工具,选择共享要素(如 共享边),后面重点将 ⑤ Show Share Feature:显示共享要素,当④中共享边,看 那几个共用 Page ?37 4.1、拓扑工具条的介绍 ⑥ Validate Topology In Specified Area:有效拓扑特定 的区域,操作是点击按钮,在地图画矩形,就有效矩形范 围中的拓扑 ⑦ Validate Topology In Current Extent :有效当前窗口 的拓扑。 ⑧ Validate Entire Topology :有效当前整个拓扑 ⑨ Fix Topology Error Tool :选择和提供修复错误工具 ⑩ Error Inspector :显示或隐藏拓扑错误列表 6-10,是拓扑图层后才可以使用, Page ?38 4.2拓扑错误处理 ①重叠(线、面) must not overlap ②缝隙(面) must not have gaps ③悬挂(线) must not have dangle ④伪节点 must not have pseudo-node ⑤跨行政区Area Boundary Must Be Covered By Boundary Of ⑥ 碎片处理一个例子 Page ?39 重叠(线) must not overlap ① 完全重叠的话,1)选中其中一条删除 2) 选中重叠几条, 使用planarize lines处理,重叠只保留一个 ② 部分重叠,1)在错误上右键,选择subtract去除重复部 分2)选中较短一条删除, 3) 选中重叠几条,使用 planarize lines处理后,自动分段,后再合并 planarize lines还可以处理交叉线,在交叉点自动打断, 八字图交叉也可以,面的交叉使用