第8页
第4排
让我们通过一个简单的工作区来创建一个新的列表属性,然后使用它来查询和分析温哥华市的一些开放数据。一般而言,我们将:
我们开始吧!
为包含所有读卡器的FME工作区模板下载这些文件,作家们,变压器,以及您在本教程中需要使用的数据。如果您想跳过某些步骤,可以同时提供开始和结束工作区!
工作台中的许多查询转换器可以返回多个结果。在这种情况下,可以生成一个列表来存储这些结果。这个PointOnAreaOverlayer变压器就是一个很好的例子。
这个PointOnAreaOverlayer在空间上定位区域特征内的点特征,并将属性从一个复制到另一个。当属性边界需要从其中的质心获取信息时,通常使用此变换器。在我们的示例工作区中,公园多边形需要从其边界内的点获取树种信息。然而,当多边形包含多个点时,此任务变得更复杂。例如,如果两个不同树种的两点落在同一公园多边形内,我们如何存储来自两个点和两个树种的信息?答案是,当然,是一个列表!而且,我们将在接下来的步骤中探讨,这个PointOnAreaOverlayerTransformer具有内置的功能,可以创建一个列表来存储覆盖多边形的多个点的值。
打开开始工作区模板文件位于上方。
步骤1 -运行工作区并检查数据。请注意,有些公园包含两点功能。
让我们看看位于温哥华北部大道上的这个公园:
这一点包含关于我们公园内一棵开花的白蜡树的信息:
这一点包含了有关宽扎开花樱桃树的信息,也属于我们的公园。注意:这一点与我们以前的树位于完全相同的位置-但它们不是相同的功能!
步骤2-右键单击标题为的粉色书签初步检查并禁用书签中的所有对象-对于下一步,我们将不再需要检查原始输入数据!右键单击标题为的绿色书签用公园多边形覆盖空间树数据并启用书签中的所有对象。打开PointOnAreaOverlayer看看参数。他们都设置为默认值,这就是我们需要的,但请注意输出时生成列表
选中复选框。这意味着没有创建列表属性!使用这些设置,如果多个点落在一个多边形内,不会存储所有值。
再次运行翻译并检查我们在中看到的同一个公园步骤1,请其中包含两点。注意它有两个重叠,但是只有一种树木被记录在案,这意味着只有一个点的数据进入了我们的输出。
花木灰是这个公园里唯一记录下来的树:
步骤3-让我们重温一下PointOnAreaOverlayer参数并设置新的列表属性。因为我们在输出区域,检查在输出“区域”上生成列表
盒子。FME希望我们命名我们的列表并选择将添加到其中的属性。我们给名单打电话吧_树木
并将所有属性添加到列表中,以便保留所有原始公园属性并获取所有传入的树属性。
下一步,右键单击检查员在绿色书签中禁用它。然后右击标题为的蓝色书签过滤和检查输出并启用书签中的所有对象。这个测试仪在蓝色书签中可以做两件事:1)它会过滤掉不包含树数据点的公园,2)它只会输出包含两种独特树种的公园。现在可以运行翻译并检查输出!
如果您检查与上一步骤相同的停车场,注意,它现在包括两个树种,“开花灰”和“宽扎开花樱桃”。两个点的信息都存储在一个列表属性中_树.commonname
,请现在可以输出或用于其他FME变压器进行分析,比如列表柱状图,请可以用来告诉我们哪个公园的树木最多,或者一个公园里有多少种.
我们开始使用的公园现在有一个列表属性,该属性记录有关它包含的两个不同树的信息:
在这个例子中,这个PointOnAreaOverlayerTransformer创建了一个名为_树木
存储位于单个公园多边形内的多个树数据点的结果。
鉴于两种树的特征值分别为“开花灰”和“宽扎开花樱桃”,公园的列表属性如下:
属性值
_乔木。普通名---------------0。普通名开花灰树1。普通名宽扎开花樱桃。
*请注意,列表中元素的编号总是从零(0)开始。
此处使用的数据源于温哥华市,请不列颠哥伦比亚省。它包含根据开放政府许可证(温哥华)获得许可的信息。
?2019安全亚搏在线软件公司|法律