西班牙
斯潘4
重叠和间隙是无效多边形覆盖时出现的问题。多边形覆盖应为单个连续曲面。然而,情况并非总是如此。
重叠发生在两个或多个多边形相交处,从而创建由多个多边形覆盖的区域。例如,此处红色功能扩展到橙色功能:
当两个或多个多边形无法在边界处相交时,会出现间隙,从而在覆盖范围中创建一个孔。例如,这里的红色和绿色功能无法满足要求,在覆盖范围内造成了一个空白:
一般来说,这些重叠和间隙非常小和窄,否则不需要特殊的数据验证技术就可以很容易地检测到它们,而这种常见的形状和大小就是它们有时被称为裂片是的。
可以使用小多边形方法,但这不会同时识别间隙,也无法使用相同的方法修复。所以,为了同时处理切片和间隙,FME有一个特殊的变压器,叫做SliverRemover是的。
在FME2018或更新版本中,滑环拆卸器被称为AreaGa和OverlapsCleaner的变压器所取代。请务必检查fill gaps参数,其默认值在2018.0和2018.1之间更改
注意:所述SliverRemover同时处理间隙,同时重叠。它不允许只是一个或另一个被修复。即你不能没有也修复重叠,反之亦然修复的空白。
此示例的数据集是一组表示温哥华市规划区的多边形要素(在Mapinfo选项卡数据集中)。
在fme数据检查器中,数据集如下所示:
从逻辑上讲,一块土地不能分为两个区域(即这些区域不应重叠),但同样地,一块土地也不能取消分区(即。分区覆盖范围不应存在任何差距)。
这里的场景是简单地定位、计算和修复覆盖范围中的任何重叠或缺口。
SliverRemover变压器虽然设计用于处理间隙和重叠,但只能修复它们。它不会突出显示或定位到其他地方进行修复。为了简单地定位这些特征,我们将使用reaoverlayer transformer上的area,以及dissolver和donutholeextractor。
按照以下步骤学习如何识别重叠和间隙。
一。启动fme workbench并从一个空画布开始。
从菜单栏中选择读卡器>添加读卡器。
将数据格式设置为mapinfo tab(mitab)。选择附加的选项卡文件作为源数据集,然后单击“确定”添加读取器。
2.定位间隙和重叠的想法是创建一个覆盖感兴趣区域的单一曲面,然后将数据与AreaOnAreaOverlayer进行比较。
因此,放置一个与区域数据连接的溶解变压器。这将创建单个曲面特征。但是,它可以创建为一个甜甜圈功能,这不是我们需要的。因此,跟随溶解器变压器和DonutholeExtractor变压器,连接到溶解器:区域输出端口:
默认参数对于当前练习是正确的。
三。现在将一个区域放置在覆盖层变压器上。将donutholeExtractor:outershell端口和区域数据连接到其输入端口:
同样,在本练习中,任何参数都可以保持默认状态。
注意,在FME2018或更新版本中,覆盖层变压器上的区域有一个额外的剩余输出端口。
四。将检查器变压器连接到AreaOnAreaOverlayer:区域输出端口。检查检查器的参数,并通过选择“重叠”属性进行设置来设置组。
现在运行工作区。输出中的显示控制窗口如下所示:
当重叠数等于1时,我们知道这些是间隙(因为溶解器创建的曲面不被分区数据重叠)。
当重叠数大于2时,我们知道这些是重叠(因为溶解器创建的曲面与分区数据中的至少两个其他多边形重叠)。
只有当重叠数等于2时,数据才正确。
要确认问题,请将原始源分区数据添加为背景,并放大问题特征之一:
这里的灰色线是两个多边形之间的间隙。它只有0.0022米(2毫米或1/12英寸),所以你必须放大非常近才能看到它。
所以现在我们已经分离出非常小和非常窄的多边形,它们表示多边形覆盖范围中的间隙和重叠。
计算坏特性的数量非常容易,因为我们已经过滤掉了它们。我们只需要使用统计计算器转换器创建一个计数。
按照以下步骤学习如何计算重叠和间隙特征。
5个。在AreaOnAreaOverlayer变压器和检查器之间添加统计计算器。检查统计计算器变压器的参数。
为“按组”参数和“要分析的属性”参数选择“重叠”属性。
将total count属性参数设置为numfeatures并接受更改。
6.在Inspector Transformer中关闭Group By并重新运行转换。现在,输出将对每个重叠数的特征进行计数。这将告诉我们每个类别中有多少功能:
在这个例子中,我们有6个间隙,6个重叠,430个正确的特性。
注意:如果连接StatisticsCalculator:摘要输出端口督察,只会有每组一个单一的输出功能。要获得所有输出功能使用完整的端口。
固定重叠和间隙是使用SLVER去除变压器的简单任务,并且确认它已经工作了,我们可以简单地重复上面的定位过程。
因此,按照以下步骤学习如何使用SliverRemover变压器修复重叠和间隙。
第七章。SliverRemover的帮助信息指出,它需要干净、有效的数据,并且不会修复自相交或退化的多边形。
因此,为了确保我们首先清理这些问题的数据,请放置geometryvalidator变压器。将其连接到分区功能类型的新输出:
检查geometryValidator参数,并对“退化或损坏的几何图形”和“二维自相交”的测试打上复选标记。确保设置尝试修复设置为是。
8个。放置一个除条变压器。将其连接到GeometryValidator变压器上已通过和已修复的端口:
检查SliverRemover参数。唯一重要的是修理方法。有多种方法,transformer文档对此进行了更详细的解释。现在,将修复方法保留为“最长边界”。
9号。将Inspector Transformer连接到SliverRemover:Repaired端口并运行转换。
输出将是修复所有间隙和重叠以创建单个连续曲面的多边形。然而,如果不对数据进行非常仔细的检查,就很难证明这一点。所以,让我们重新创建先前的数据检查,以确保没有遗留问题。
要做到这一点,选择现有的变压器、变压器和变压器。按ctrl+d创建这些副本。
现在将这些连接到与上面相同配置的SliverRemover(即有一个从除银器输出到除银器,另一个输出到除银器上的区域):
10个。将检查器变压器连接到reaoverlayer的新区域并运行转换。这个时候你就可以看到,有没有功能重叠,且没有间隙。
您还可以看到有相同数量的输出功能,如前。的重叠和间隙已被分发到根据在SliverRemover选择的方法的其它特征。
另外,不要注意到AreaOnAreaOverlayer导致属性为无效。所有的输出从一个功能需要的属性。出于这个原因,只需要用于进一步使用的SliverRemover修复后输出;从来不使用AreaOnAreaOverlayer输出除了多边形覆盖的验证。
这里使用的数据由温哥华市,不列颠哥伦比亚省(提供开放的数据起源data.vancouver.ca)。它包含了开放政府许可协议进行许可信息 - 温哥华。
?2019安全亚搏在线软件公司|法律