斯潘8
斯潘4
重叠和间隙是使用无效多边形覆盖发生的问题。多边形覆盖应该是单个的,连续表面。然而,情况并非总是如此。
两个或多个多边形相交时会出现重叠,创建由多个多边形覆盖的区域。例如,红色特征延伸到橙色特征上:
如果两个或多个多边形未能在边界处相交,则会出现间隙,在覆盖范围中创建一个孔。例如,在这里,红色和绿色的特征无法满足,在覆盖范围中创建空白:
一般来说,这些重叠和间隙非常小和狭窄-否则它们很容易被检测到,而不需要特殊的数据验证技术-而且这种常见的形状和大小有时被称为条子.
可以使用最小多边形方法,但这并不能同时找出差距,两者都不能用同样的方法来解决。所以,为了处理裂片和间隙,FME有一个称为除屑器.
在FM2018或更新版本中,sliverremover由一个称为areagapandoverlapsclear的变压器取代。一定要检查填充间隙参数,其违约在2018.0至2018.1期间发生变化。
NB:sliverremover同时处理间隙和重叠。它不允许只修理一个或另一个。即如果不同时修复重叠,则无法修复间隙,反之亦然。
本例的数据集是一组多边形特征(在mapinfo选项卡数据集中),表示温哥华市的规划区。
数据集在FME数据检查器中如下所示:
从逻辑上讲,一块土地不能分为两个区域(即这些区域不应重叠),但同样,一块土地也不能被分割(即分区覆盖率不应存在任何差距)。
这里的场景是简单地定位,伯爵修复覆盖范围内的任何重叠或缺口。
除渣变压器,尽管设计用于处理间隙和重叠,但只能修复它们。它不会突出显示或定位它们以便在其他地方进行修复。为了简单地定位这些功能,我们将使用区域重叠变压器,与溶解器和DonutholeExtractor结合使用。
按照以下步骤学习如何识别重叠和间隙。
1。启动FME工作台,从一个空画布开始。
从菜单栏中选择“读卡器>添加读卡器”。
将数据格式设置为“地图信息”选项卡(MITAB)。选择附加的选项卡文件作为源数据集,然后单击“确定”添加读卡器。
2。为了定位间隙和重叠,我们的想法是创建一个覆盖感兴趣区域的单一曲面,然后将数据与AreaOnAreaOverlayer进行比较。
所以,将溶解器变压器连接到区域数据。这将创建单个曲面特征。然而,它可以被创建为一个甜甜圈功能,这不是我们需要的。因此,跟随溶解变压器和DonutholeExtractor变压器,连接到溶解器:区域输出端口:
默认参数对于当前练习是正确的。
三。现在将一个区域放置在reaoverlayer变压器上。连接两个donutholeextractor:outershell端口,区域数据到其输入端口:
再一次,对于这个练习,任何参数都可以保持其默认状态。
注意,在FM2018或更新版本中,区域重叠器变压器有一个额外的剩余输出端口。
4。将检测变压器连接到区域重叠器:区域输出端口。检查检查器的参数,并通过选择重叠属性来设置组。
现在运行工作区。输出中的显示控制窗口如下所示:
如果重叠数等于1,我们知道这些是间隙(因为溶解器创建的表面不会被区域数据重叠)。
如果重叠数大于2,我们知道这些是重叠的(因为溶解器创建的曲面在区域数据中至少重叠了两个其他多边形)。
只有重叠数等于2时,数据才正确。
为了确认问题,添加原始源区域数据作为背景,并放大问题功能之一:
这里的灰色线是两个多边形之间的间隙。它只有0.0022米(2毫米或1/12英寸),所以你必须放大近距离才能看到它。
所以现在我们已经分离了非常小和非常窄的多边形,它们表示多边形覆盖范围中的间隙和重叠。
计算坏特性的数量非常容易,因为我们已经将它们过滤掉了。我们只需要使用统计计算器转换器创建它们的计数。
按照以下步骤学习如何计算重叠和间隙功能。
5。在AreaOnAreaOverlayer变压器和Inspector之间添加一个统计计算器。检查统计计算器变压器的参数。
为group by参数和要分析的属性选择重叠属性。
将total count属性参数设置为numfeatures并接受更改。
6。在inspector transformer中关闭group by并重新运行翻译。现在,输出将为每个重叠编号提供特性计数。这将告诉我们每个类别中有多少功能:
在这个例子中,我们有6个差距,6个重叠,以及430个正确的功能。
NB:如果您将StatisticsCalculator:Summary输出端口连接到检查器,每组只有一个输出特性。要获取所有输出功能,请使用完整的端口。
使用除渣变压器修复重叠和间隙是一项简单的任务,为了确认它是否有效,我们可以简单地重复上面的定位过程。
所以,按照以下步骤学习如何使用sliverremover变压器修复重叠和间隙。
7。sliverremover的帮助信息指出它需要清洁,有效数据和自相交或退化多边形将不会被修复。
所以,为了确保我们首先清理这些问题的数据,放置几何验证器变压器。将其连接到区域功能类型的新输出:
检查几何验证器参数,并在“退化或损坏几何”和“二维自相交”的测试中打勾。确保设置尝试修复设置为是。
8。放置一个除屑变压器。将其连接到几何验证器变压器上通过和修复的端口:
检查sliverremover参数。唯一重要的是维修方法。有各种方法,变压器文档对此进行了更详细的解释。现在,将修复方法保留为“最长边界”。
9。将检测变压器连接到sliverremover:repaired端口并运行翻译。
输出将是所有间隙和重叠修复的多边形,以创建单个,连续表面。然而,如果不仔细检查数据,很难证明这一点。所以,让我们重新创建之前的数据检查,以确保没有遗留问题。
要做到这一点,选择现有的溶解器,Donuthole提取器,以及一个再叠加变压器。按ctrl+d创建这些文件的副本。
现在将这些连接到与上述配置相同的sliverremover(即从除银器到溶解器有一个输出,另一个输出到reaoverlayer区域):
10。将Inspector Transformer连接到新区域的RealOverlayer并运行转换。这一次,您将能够看到没有重叠的功能,没有空隙。
您还可以看到输出特性的数量与以前相同。根据在sliverremover中选择的方法,重叠和间隙已分布到其他特征。
也,请注意,AreaOnAreaOverlayer导致属性无效。所有输出都从一个特性中获取属性。因此,仅取除渣机修复后的输出供进一步使用;除验证多边形覆盖范围外,切勿使用AreaOnAreaOverlayer输出。
这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。
?2019安全亚搏在线软件公司|合法的