空间数据的拓扑处理
个人学习笔记,仅供学习交流。
参考书籍:《ArcGIS从0到1》
![](https://i.loli.net/2021/03/12/erz5lMv7Ps6aFNq.png)
拓扑概念和拓扑规则介绍
拓扑含义
拓扑是指空间数据的位置关系,空间关系简称为拓扑。
拓扑的主要作用
拓扑主要用于确保空间关系并帮助其进行数据处理,在很多情况下拓扑也用于分析空间关系,概括下来就两点,一是分析有无错误,二是利用拓扑进行编辑。
ArcGIS中拓扑的几个基本概念
- 拓扑容差:拓扑容差是要素折点之间的最小距离,落在拓扑容差范围内的所有折点被定义为重合点,并被捕捉在一起,大于拓扑容差检查出来的是错误,小于拓扑容差是,数据会被修改更正,XY容差也就是XY坐标之间所允许的最小距离,如果两坐标之间的举例在此范围内,他们会被视为同一坐标,所以一般的拓扑检查就是XY容差,不做任何修改,一旦修改拓扑容差,数据实际的XY容差也会被修改。
- 脏区:在初识拓扑校验后,如果数据或者拓扑规则被修改,会发生新的变化,叫脏区。所以拓扑规则或者数据被修改了,一定要验证拓扑。在修改所有拓扑错误后,建议删除拓扑,因为拓扑会锁定数据,影响其他正常操作。
- 拓扑规则:定义地理数据库中一个要素内或者两个不同要素类之间所许可的要素关系指令,一个拓扑最少一个拓扑规则。
- 要素等级:等级越高,移动要素越少,最高等级为1,最低等级为50,有多个要素图层时,等级低像等级高靠拢,此时修改等级低的数据,当有多个数据时,由等级要素确定哪个数据修改。
建拓扑的要求
.shp文件不能直接进行检查拓扑,在地理数据库下检查拓扑,只能在同一个数据集下检查拓扑,检查拓扑时会锁定数据。
常见拓扑规则介绍
拓扑规则分为两大类:
(1)一个图层自己的拓扑检查:可能是点、线或面的一种,数据内部检查。
(2)两个图层之间的拓扑检查:数据类型可能不同,有点点、点线、点面、线面、线线、面面六种,两个面层分为检查前面或者是检查后面,共12种,拓扑检查的前提是必须在同一个要素数据集下,坐标系统和坐标范围一致。
拓扑规则在ArcGIS帮助中有详细介绍。
建拓扑和拓扑错误修改
拓扑检查数据必须在数据库的要素数据集下,一个拓扑可以检查多个数据,一个数据只能参加一个拓扑,一个数据可以添加多个拓扑规则。如果需要检查两个图层之间,先检查一个图层拓扑。
建拓扑
在数据集下右键【新建】——【拓扑】
点击下一步可以在这里更改拓扑图层的名称。
选中需要检查拓扑的要素类。
更改要素等级,可以使用默认值。
添加拓扑规则。
根据需要,添加相应的拓扑规则。
拓扑创建中,创建完成后,在要素集下会生成拓扑图层。
进行拓扑检查。
在目录下右键拓扑图层点击【属性】——【错误】,查看是否存在拓扑错误。
SHP文件拓扑检查
SHP文件不能直接进行拓扑检查,必须先导入到已有数据库的要素数据集下,已有数据集的坐标系、XY容差为0.001,和SHP的坐标系要保持一致,SHP文件的容差是0.001m(投影坐标系下);若没有要素数据集,可以自己创建,坐标系导入SHP的坐标系。
面层拓扑检查注意事项
面层拓扑检查之前,最好先使用工具箱中的【修复几何】工具修复集合,但是修复工具之前一定要备份数据,因为有些数据无法修复几何。
要素转点——要素转线——要素转面
修复几何把面的外多边形自动修改成顺时针,内多边形自动修改成逆时针,多变性方向不对是一个严重的拓扑错误。在ArcGIS中无论怎样画,ArcGIS本身自动纠正成正确的方向,但其他软件不一定,所以为了确保正确性,一般先进行修复几何。
拓扑错误修改
在ArcGIS中没有一键修复所有拓扑错误的功能,不同的拓扑错误,修复方法不同。
常见的一些拓扑错误处理
点、线和面完全重合
点、线和面完全重合,那么修正的思路肯定是删除重合的部分,留下一个就可以了。使用【删除相同项】(【删除相同的】)工具删除完全相同的点,完全相同的线,完全相同的面。
线层部分重叠
线层部分重叠,就是两条线有公共部分,思路很简单,将两条线相交的部分删除。使用【打断相交线】功能,在高级编辑工具条中,删除完全或部分重叠的线。
面层部分重叠
两个面有重叠,修正思路肯定是删去重叠的面。使用【联合】工具,将两个面重叠的部分删去。
点不是线的端点
一个点本该是线的端点的,可是因为种种原因出现了该错误,我们需要将这个线和这个点吻合在一起,这时候需要用到【捕捉】工具。
面线不重合
面线不重合,需要的是修改面。思路是提取出所有的面上的折点,然后重新生成面。用到的工具是【要素转点】和【要素转面】
面必须被其他面要素覆盖
解决办法:两个图层相交,跨行政区自动分解,拓扑错误就自动解决了。