土地数据中空间重复、覆盖和缝隙的快速检查算法

方利 , 钟耳顺 , 姚敏

(中国科学院 地理科学与资源研究所 ,北京 100101)

论文来源:测绘通报

摘要:在土地空间数据处理及应用中 ,需要对空间关系进行检查以保证数据质量 , GIS 中常用的空间关系检查算法无法一次性检查出数据集内的空间重复、覆盖和缝隙错误。提出一种针对土地数据空间关系检查的快速算法 ,该算法只需对面数据内的空间对象循环一遍 ,即可检查出空间覆盖、重复…

关键词: 土地数据 ;数据检查 ;空间关系 ;快速算法

一、引  言

在土地空间数据处理及应用中 ,需要对空间关系进行检查以保证数据质量 ,如对于图斑数据或全划宗的地籍数据 ,图斑对象或宗地对象间应该形成无覆盖、无重复和无缝隙的满覆盖的面 ,需要通过GIS 中的空间关系查询算法检查出数据集内所有发生覆盖、重复和缝隙的对象 ,提交后续编辑处理。

目前 GIS 中对空间关系查询算法的研究较为深入 ,各大 GIS 软件平台中都提供了较成熟的空间关系查询算法。空间关系包括重复、包含、内含、相交、相离、覆盖、切触等 , GIS 中通用的空间关系查询算法是根据数据集的空间索引搜索出当前空间对象所在的索引区 ,然后判断其与相邻的空间对象的空间关系类型。大多数 GIS 软件都采用这种方式实现空间查询 ,它依赖于不同的索引方式和具体算法。应用这种方式对土地数据进行检查 ,无法一次检查出数据集内存在的覆盖、重复和缝隙错误 ,而且当检查对象及对象间关系的复杂性增加 ,查询时间会大幅度地增长。如图斑对象形状复杂 ,通常有很多个节点 ,且一个图斑与很多个图斑相邻 ,对图斑进行空间关系的查询要比宗地耗费的时间多。

为了解决此类问题 ,本文提出了一种空间关系检查的快速算法 ,该算法主要针对单个面数据集 ,检查出该数据集内出现空间覆盖、重复和缝隙的对象 ,算法只需要对面数据集内的空间对象循环一遍 ,即可检查出空间覆盖、重复和缝隙这几类空间关系错误。

经过实践验证 ,采用该算法能极大地提高对面数据集进行以上类型空间关系错误检查的效率。

二、空间关系快速检查方法的思想

这种空间关系快速检查方法主要是检查面数据集内出现空间覆盖、重复和缝隙等空间关系的对象。在对面数据集进行检查时 ,需要一个与该面数据集空间范围一致或者能完全覆盖该面数据集的背景图形 (下文将称之为背景图形) ,如检查图斑数据集 ,可以获取该图斑数据集的最大空间范围生成一个面图形作为背景图形 ,然后通过该对象与图斑数据集内的每一个图斑对象进行运算 ,得到出现空间覆盖和缝隙的图斑对象。

该算法的总体思想是循环取得待检查数据集中的空间对象 ,依次从背景图形中通过空间擦除操作擦除待检查数据集中的对象 ,每一次擦除后得到一个剩余的背景图形 ,计算该剩余图形的面积值 M1 ;同时计算执行该次擦除操作前的剩余背景图形的面积与被擦除的对象的面积的差值 M2 ,将 M1 和 M2 两个面积值进行比较 ,以判断该被擦除的对象是否与其他图形重叠 ;当从背景图形中擦除完所有的对象后 ,剩余的图形即为待检查数据集内空间对象间的缝隙 ,如果剩余图形为空(面积为零) ,说明无缝隙。

下面举例说明这个算法的思想。设有一个待检查的面数据集和一个空间范围完全覆盖该数据集的背景图形 ,背景图形为 A , 待检查数据集包含图形P , Q ,如图 1 (a) 为背景区域和待检查数据集的叠加图。令背景图形 A 面积为 MA ,待检查的面图形 P , Q 面积分别为 M p , M q , 图形 P , Q 发生了覆盖 , 令覆盖部分的面积为 M O 。

第一步 ,首先从背景图形 A 中擦除第一个空间对象 P 得到一个剩余的背景图形 ,图 1 ( b) 为背景图形 A 与待检查对象 P 图形作空间擦除操作后剩余的图形 A′,该图形的面积为 M A′= M A - M P ; 计算进行空间擦除操作的两个图形的属性面积差值 , 即背景图形 A 与图形 P 的属性面积差值 , 为 M′′= MA - M P ,可以看出 M A′= M′′,即从背景图形中空间擦除第一个图形后 , 剩余背景图形的空间图形面积与通过属性面积计算得到的两个面积值相等。

第二步 ,从剩余的背景图形中擦除第二个空间对象 ,图 1(c) 为剩余的背景图形 A′与待检查对象 Q 作空间擦除后剩余的图形 A″,该图形的面积为 MA″= MA- MP - MQ + MO ,其中 MO 为对象 P, Q 发生覆盖部分的面积 ,由于从背景图形中减去对象 P 和 Q 的面积 ,将覆盖部分面积减去了 2 次 ,故计算剩余背景图形面积时应该加上 MO ;然后计算进行本次空间擦除操作的两个图形的属性面积差值 ,即剩余背景图形 A′与图形 Q 的面积差值 ,因为 M′″= ( MA - MP) - MQ ,可以看出 MA″> M′A″,说明刚被擦除的图形 Q 与其他图形发生了覆盖。这是因为通过空间擦除方式得到的图形面积 MA″是从背景图形中减去发生重叠的 P, Q 图形的并集 ,而通过从背景图形中依次减去 P, Q 图形面积所得到的面积差值 M′″则多减去了发生覆盖部分的面积 MO ,因此前者得到的面积值大于后者。而如果 MA″= M′A″,则说明刚刚被擦除的空间图形没有与其他图形发生覆盖。

更多内容请查看pdf