斯潘8
斯潘4
小多边形是指面积小于指定公差的多边形。这些可以通过以下组合找到:测量多边形的面积然后用滤波变压器施加一个试验条件。
对小多边形的测试是一个很好的质量保证测试,因为低于一定尺寸的多边形通常表示存在重叠等问题。条子,以及线条不齐。
计算这些坏特性中有多少也很简单。然而,如下文所述,像这样的多边形自动修复更困难。
本例的第一个源数据集是一组线条(在AutoCAD DWG数据集中),表示温哥华市的地产边界轮廓。
第二个数据集(ESRI地理数据库格式)是一组表示地址的点功能。
数据集在FME数据检查器中如下所示:
这里的场景是我们希望将这些线转换为真正的多边形特征。这在FME中很简单,但我们将添加一些质量保证检查,以确保没有创建过小的多边形。特别地,包含地址点的小多边形是个坏消息。
按照以下步骤学习如何识别小多边形特征。
1。启动FME工作台,从一个空画布开始。
从菜单栏中选择“读卡器>添加读卡器”。
将数据格式设置为autodesk autocad dwg/dxf。选择附加的dwg文件作为源数据集。单击参数按钮,并将分组实体设置为“属性模式”。
单击“确定”,然后再次单击“确定”以添加读卡器。
2。源数据集由行功能组成。要创建多边形,需要一个单一的FME转换器:区域生成器。
所以,添加区域生成器转换器。将其连接到parcellines功能类型。
三。为了测试小多边形,我们首先需要测量每个多边形的面积。这是通过区域计算器变压器完成的。
所以,添加一个区域计算器转换器并将其连接到区域生成器:区域输出端口。
4。在大多数情况下,我们现在会添加一个滤波变压器来测试这个区域。但在这个例子中,我们将引入一个额外的细节级别:地址点。
再一次,从菜单栏中选择“读卡器>添加读卡器”。
这次将数据格式设置为esri geodatabase(文件geodb open api)。选择附加的地理数据库作为源。提示时,仅选择要添加到工作区的PostalAddress表。邮政编码边界表不是必需的。
5。要将地址点属性传输到多边形上,我们将使用PointOnAreaOverlayer转换器。
所以在reaoverlayer变压器上放置一个点。
将PostalAddress功能类型连接到PointOnAreaOverlayer:点输入端口和区域计算器:输出端口连接到PointOnAreaOverlayer:区域输入端口。
通过将Inspector Transformer添加到PointOnAreaOverlayer:Area输出端口来测试运行工作区。结果应该是一组具有多边形区域属性(_区域)的多边形特征,如果与地址点重叠,则为定义地址的属性。
6。现在,让我们过滤坏特性。温哥华州建筑条例:
微型住宅的建筑面积必须至少为29.7平方米。
我们在看地块边界,没有建立足迹,但是,30平方米似乎是一个很好的截止点,低于该点的多边形可能是错误的。
我们要测试三种情况:
像这样测试多个条件的最好方法是使用一个testfilter变压器。
所以,添加一个连接到PointOnAreaOverlayer:区域输出端口的testfilter变压器。
7。打开TestFilter参数对话框。双击“测试条件”列下的第一行。这将打开一个条件编辑器。
在本编辑器中,为小于(或等于)30的区域设置测试子句。为重叠大于(或等于)1设置第二个测试子句:
如果这两条都是真的,多边形太小,包含地址点。但要测试这两个子句(而不仅仅是一个子句或另一个子句),请将pass criteria参数设置为“all tests(and)”。
最后,在对话框的底部,将输出端口名称设置为“带地址点的小型”,然后单击“确定”返回上一个对话框。
现在单击第一个测试条件,然后单击对话框上的“复制”按钮。这将复制第一组子句并打开它们进行编辑。
单击第二个子句,然后单击“-”按钮,删除第二个子句(用于重叠部分)。我们不需要测试重叠,因为任何有重叠的东西都将被过滤掉。
将输出端口名称设置为“不带地址点的小型”,然后单击“确定”。现在定义应该如下所示:
如果是这样,单击“确定”返回主画布。
8。将inspector transformers连接到每个testfilter输出端口(如果需要,请重命名inspector):
运行工作区。结果将是FME数据检查器中代表三种不同状态的三层。检查标记为小的功能,以确保它们在某些方面不正确。大多数是两条边界线相交的多边形,创建一个小的银色多边形。
计算坏特性的数量非常容易,因为我们已经将它们过滤掉了。例如,甚至工作台的特性计数也会告诉我们所涉及的数字:
要创建存储在属性中的计数,使用statisticscaleculator转换器很简单。
按照以下步骤学习如何计算小多边形特征。
9。在第一个testfilter输出端口与其inspector transformer之间添加一个statisticscalculator。打开参数对话框。
首先选择区域作为要分析的属性。事实上,我们选择哪个属性并不重要,因为我们只需要一些功能。
删除“计算属性”字段中的所有值,然后在“总计数”字段下添加“BadFeatures”。这将提供一些坏特性。单击“确定”关闭对话框。
10。复制现有的统计计算器(选择它并按ctrl+d)。将其连接在第二个testfilter输出端口与其检测变压器之间。
因为这是复制品,不需要打开它的参数对话框并进行任何更改。
11。重新运行工作区。这次,输出应该包含一个属性,该属性指示每种类型有多少坏特性。
NB:如果您将StatisticsCalculator:Summary输出端口连接到检查器,只有一个输出特性。要获得所有输出功能,请确保连接了完整的端口。
修复小多边形不是一项简单的任务。简单地删除这些特性可能会导致拓扑覆盖上的空白,并不是所有的人都有一个共同的身份证号码,通过这个号码将他们合并(解散)在一起。
然而,有一些解决方案可以应用:
a)删除小多边形,然后使用除渣变压器以填补剩余数据中的任何空白。
b)选择一个与小多边形相邻的特征,并将两者融合在一起。
按照以下步骤学习如何修复小多边形特征,使用邻居查找器/溶解器。
12。删除两个统计量计算器,如果您在步骤11中添加了它们,以及任何剩余的检查变压器。
13。添加一个连接到testfilter的计数器变压器:
14。添加邻居查找变压器。将小多边形功能(来自testfilter的其他两个端口)连接到neighfinder:base,并将counter:output端口连接到neighborfinder:candidate
在FM2018或更新版本中,默认情况下,合并属性参数未设置,必须手动设置。
15。添加溶解变压器。连接邻居查找器:匹配的端口,还可以在计数器之外创建第二个连接:到溶解器的输出端口。您的工作区现在将如下所示:
16。打开“溶解器参数”对话框。将group by参数设置为“_count”。这将导致小多边形溶解到它们的邻居中。
17。连接Inspector Transformer并运行工作区。大多数小多边形都是通过分解到相邻的多边形中来固定的:
您可以添加一个最终的区域计算器转换器来帮助证明这是事实,如果您不想从视觉上检查数据。
不用面积计算器,您可以直接在像测试仪这样的过滤器变压器中使用@area()函数。我们在这里使用面积计算器使最后的工作区更加清晰。
修复数据的解决方案依赖于具有共享边界的小多边形的最近邻居。两个小多边形不能固定,因为它们的最近邻只共享一个顶点,因此无法溶解。
这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。
?2019安全亚搏在线软件公司|合法的