span8
span4
小多边形是那些面积小于规定的公差。这些可以通过组合被发现测量多边形的面积然后应用与过滤器变压器的测试条件。
测试的小多边形是一个很好的QA测试,因为有一定规模以下的多边形通常表示的问题,如重叠,裂片,和错位线条。
这也很简单算多少存在这些不良的功能。然而,如下面讨论的,固定多边形这样自动是比较困难的。
这个例子的第一个数据集源是代表在温哥华市的属性的边界的轮廓一组线(在AutoCAD DWG数据集)。
第二数据集(在地理数据库ESRI的格式)是一组表示地址的点特征。
该数据集是这样的FME数据检查:
这里的情况是,我们希望这些线路改造成真正的多边形要素。这是FME很简单,但我们会增加一些QA检查,以确保正在创建无矮小的多边形。特别是,它包含一个地址点一个矮小的多边形是非常不好的消息。
按照这些步骤,以了解如何识别细小多边形要素。
1。启动FME Workbench和一个空的画布开始。
选择读者>从菜单栏中添加读卡器。
将数据格式设置到Autodesk AutoCAD的DWG / DXF。选择附加的dwg文件作为源数据集。单击参数按钮,设置组3520到“属性模式”。
单击确定和确定再次添加的读者。
2。源数据集是由线的特征。要创建多边形需要一个单一的变压器FME:在AreaBuilder。
因此,添加AreaBuilder变压器。它连接到ParcelLines功能类型。
3。为了测试小多边形,我们首先需要衡量他们每个人的区域。这与AreaCalculator变压器完成。
因此,添加AreaCalculator变压器,并将其连接到AreaBuilder:区域输出端口。
4。在大多数情况下,我们现在添加过滤器变压器测试区域。但在这个例子中,我们打算在细节的额外级别抛出:地址点。
再次,选择读者>从菜单栏中添加读卡器。
这一次设定的数据格式到ESRI地理数据库(文件地理数据库开放API)。选择附加的地理数据库作为源。当出现提示时,只选择要添加到工作区的PostalAddress表。PostcodeBoundaries表不是必需的。
5.为了将地址点属性转移到多边形上,我们将使用一个点区域覆盖层转换器。
因此,放置一个点区域覆盖层变压器。
将PostalAddress功能类型连接到PointOnAreaOverlayer:Point输入端口和AreaCalculator:Output端口连接到PointOnAreaOverlayer:Area输入端口。
通过向PointOnAreaOverlayer:Area输出端口添加一个检查器转换器来测试运行工作区。结果应该是一组带有多边形区域(_area)属性的多边形特性,如果与地址点重叠,则使用定义地址的属性。
6.现在让我们过滤掉不好的特性。温哥华州的建筑条例:
微型住宅的建筑面积至少为29.7平方米
我们关注的是地块边界,而不是建筑占地面积,但30平方米似乎是一个不错的边界点,低于这个边界点,多边形就可能出错。
我们想测试三个场景:
测试多个条件的最佳方法是使用TestFilter变压器。
因此,添加一个TestFilter变压器连接到PointOnAreaOverlayer:Area输出端口。
7.打开TestFilter参数对话框。双击测试条件列下的第一行。这将为我们打开一个条件编辑器。
在这个编辑器中,为_area设置一个小于(或等于)30的测试子句。为_overlaps大于(或等于)1设置第二个测试子句:
如果两个子句都为真,则多边形都太小,并且包含一个地址点。但是要同时测试这两个子句—而不仅仅是一个或另一个—将Pass Criteria参数设置为“All Tests (AND)”
最后,在对话框的底部,将输出端口名设置为“Small with Address Point”,然后单击OK返回到前面的对话框。
现在单击第一个测试条件,然后单击对话框中的复制按钮。这将复制我们的第一组子句并打开它们进行编辑。
通过单击第二个子句(用于_overlaps),然后单击“-”按钮来删除它。我们不需要测试重叠部分,因为任何有重叠的部分都会被过滤掉。
将输出端口名称设置为“Small without Address Point”,然后单击OK。现在的定义应该是这样的:
如果是,单击OK返回主画布。
8.将检查器变压器连接到每个TestFilter输出端口(如果需要,可以重命名检查器):
运行工作空间。结果将是FME数据检查器中的三个层,代表三个不同的状态。检查标记为小的特性,以确保它们在某些方面是不正确的。大多数是两个边界线交叉的多边形,形成一个小的条形多边形。
计算坏的特性的数量是很容易的,因为我们已经过滤掉了它们。例如,甚至工作台特性计数也显示了所涉及的数字:
使用StatisticsCalculator转换器创建存储在属性中的计数非常简单。
按照以下步骤学习如何计算小多边形特征。
9.在第一个TestFilter输出端口和它的检查器转换器之间添加一个统计计数器。打开参数对话框。
首先选择_area作为要分析的属性。实际上,我们选择哪个属性并不重要,因为我们只想要特性的数量。
从Calculate Attributes字段中删除所有值,然后在Total Count字段下添加“BadFeatures”。这将提供一个坏特性的计数。单击OK关闭对话框。
10.复制现有的StatisticsCalculator(选择它并按Ctrl+D)。连接第二个TestFilter输出端口和它的检查器变压器。
因为这是一个副本,所以不需要打开它的参数对话框并进行任何更改。
11.重新运行工作区。这一次,输出应该包含一个属性,该属性表示每种类型有多少不好的特性。
注:如果将StatisticsCalculator:Summary输出端口连接到检查器,则只有一个输出功能。要获取所有输出功能,请确保连接了完整的端口。
修复小多边形并不是一项简单的任务。简单地擦除这些特性可能会导致拓扑覆盖中的空白,并不是所有这些特性都有一个通用的ID号,通过它可以将它们合并(溶解)在一起。
然而,有一些解决方案可以应用:
a)删除小多边形使用除滑变压器以剩余的数据填补任何空白。
b)选择一个与小多边形相邻的特征,并将两者融合在一起。
按照以下步骤学习如何使用NeighborFinder/Dissolver修复小多边形特性。
12.删除两个统计计算器(如果您在步骤11中添加了它们)和任何剩余的检查器转换器。
13.添加一个连接到TestFilter的计数器变压器:
14.添加一个NeighborFinder transformer。将小多边形要素(testfilter的其他两个端口)连接到neighborfinder:base,并将counter:output端口连接到neighborfinder:candidate
在FME2018或更新版本中,合并属性参数默认不设置,必须手动设置。
15岁。添加溶解变压器。将neighborfinder:matched端口连接到它,并从counter:output端口创建到溶解器的第二个连接。您的工作区现在将如下所示:
16岁。打开“溶解器参数”对话框。将GROUP BY参数设置为“计数”。这将导致小多边形溶解到它们的邻居中。
17岁。附加检查器转换器并运行工作区。大多数小多边形通过溶解到它们的邻居中而固定:
如果您不想直观地检查数据,可以添加一个最终的面积计算器转换器来帮助证明确实如此。
与使用面积计算器不同,您可以在测试仪这样的过滤器转换器中直接使用@area()函数。我们在这里使用AreaCalculator使最终的工作空间更加清晰。
用于固定数据的解决方案依赖于具有共享边界的小多边形的最近邻居。两个小多边形不会得到固定,因为它们最近的邻居只共享一个顶点,所以不能被分解。
这里使用的数据来源于不列颠哥伦比亚省温哥华市提供的公开数据(data.vancover.ca.温哥华)中。它包含根据开放的政府许可证-温哥华许可的信息。
©2019安全亚搏在线软件公司|法律