斯潘8
斯潘4
使用FME将数据连接在一起有多种方法。本例将使用特征合并变压器。FeatureMerge通过使用键值执行非空间连接,从一个特征复制并合并属性/几何图形与另一个特征。请阅读特征合并文档更详细地描述这个变压器的功能以及每个参数的详细信息。
如果您习惯使用SQL,尝试使用特征接合器换成变压器。功能合并处理不同的连接数据,在默认情况下,它只为每个源功能创建一个匹配项。FeatureJoiner支持多个匹配项。
选举数据.zip (包含electionresults.xlsx和electionvoting.gml)
选择结果featuremergerdemo.fmwt (已完成演示工作区模板)
FeatureMerge通过其输入端口接收两个功能流:
要记住的关键事项:
人员表是请求者,作业表是供应商。由于每个人都是唯一的值,因此作业表将成功合并到人员表中的每个记录中。他们与关键工作合并了。
然而,现在我们换了桌子。作业表现在是请求者,人员表是供应商。只有Joe与IT Job合并,因为它是第一次出现IT Job,剩余的IT工作人员被发送到被拒绝的端口。这是因为有重复的供应商。要处理重复的供应商,我们需要创建一个列表:
现在要处理来自人员表的重复供应商,我们需要创建一个列表。这是通过在FeatureMerge中启用Generate List参数来实现的。对于这个例子,我们创建了一个名为samejob的列表,只创建了具有属性名的列表。所以现在当我们运行翻译并检查特性时,在功能信息窗口中,我们可以看到每个具有相同工作的人的列表。或者,在特性合并之后,可以使用ListExploder分解列表,以查看表中的每个列表项。
.
既然我们已经讨论了一些理论和假设的特征合并场景,让我们来看一个使用FeatureMerge的例子。
情景:我们希望将投票部门和地点数据与市长的投票结果合并,但我们要保留几何图形。为此,我们将使用一个功能合并变压器。
1)打开FME工作台
在空白工作区中,添加一个GML(地理标记语言)阅读器并浏览到electionVoting.gml数据集,添加VotingDivisions和VotingPlaces功能类型。
在画布上添加第二个阅读器。这次,选择Microsoft Excel作为格式,并浏览到electionResults.xlsx数据集。只添加市长表。
2)合并功能
将FeatureMerge Transformer添加到画布中。将VotingDivisions连接到请求程序输入端口。然后将Mayor功能类型连接到FeatureMerge上的供应商输入端口。
连接到请求程序端口的投票分区,连接到供应商港口的市长
在FeatureMerge参数中,将请求者和供应商的联接设置为Division。
将参数请求者和供应商的FeatureMergement联接设置为Division
然后在“合并参数”下,将拒绝空键和缺少键设置为“是”,因为我们不希望没有与之关联的除法的任何值。这将向
我们希望不选中流程重复供应商,因为每个部门应该只有一个记录。当我们运行翻译时,我们应该仔细检查未使用的供应商的输出。这是一种质量保证测试的形式,以查看是否有重复的或不同的值需要我们调查。其余参数可以保留为默认值。
拒绝在FeatureMerge中设置为Yes的空键和缺少的键
3)运行翻译
启用运行功能缓存(2018.0+)或运行完全检查(2017.1或更高版本),然后运行翻译。您应该得到55个合并的功能。
55功能通过功能合并上的合并端口输出。
4)检查输出
检查合并的功能输出,我们现在应该知道这些分区的几何结构以及市长的属性。
FeatureMerge合并了在数据检查器中检查的输出端口。
5)合并投票点
下一步,我们将把VotingPlaces与FeatureMerger的合并输出合并,以将所有VotingPlaces属性添加到每个分区。
要做到这一点,在画布中添加第二个功能合并。将第一个功能合并上的合并输出端口连接到第二个功能合并上的请求者输入端口。然后在第二个功能合并中将投票地点连接到供应商输入端口。为了防止连接交叉,右键单击第二个功能合并上的请求程序端口,然后选择向下移动。这将向下移动端口并清理连接。
与投票点相连的第二个特征合并和第一个特征合并的合并输出端口
在特征合并参数中,为请求者和供应商将join设置为division,并将比较模式设置为string。将其余参数保留为默认值。
使用功能缓存运行转换,或使用完全检查运行转换。看起来我们有五个功能
如果你添加一个基础地图,这五个功能肯定在我们感兴趣的领域内,但是FME拒绝代码是额外的参考功能。这意味着我们在一个投票区内有多个投票点。我们想要所有的投票点,为此,我们将创建一个列表。
在特征合并的参数中,在合并参数下启用生成列表。然后,对于列表名称,将其称为votinglocations,然后将添加到列表更改为所有属性。
在FeatureMerge_2中生成列表参数
6)运行翻译
再次运行翻译。现在就没有了
点击半岛上半部底部的除数,第17分部。这个有两个投票点。在功能信息窗口中,您可以看到已经为这两个功能创建了一个列表。
已检查FeatureMerge_2上的合并输出端口,功能作为列表
7)爆炸名单
我们希望能够以表格格式读取列表,而不是只在功能信息窗口中。
回到FME工作台,在画布中添加一个ListExplorer转换器,并将其连接到FeatureMergement_2上的合并输出端口。在ListExploder参数中,将List属性设置为VotingLocations,将Element Index属性设置为List。
ListExploder属性设置为VotingLocations
8)删除属性
我们有很多不需要的GML属性。向ListExploder上的元素输出端口添加attributereMover转换器。删除以gml_u开头的所有属性,然后单击“确定”。
ListExploder和attributereMover参数
9)检查最终输出
重新运行翻译以查看更改。55项功能将从attributeremover输出。另外五个特性是发送到被拒绝特性的特性,然后我们通过创建一个列表来添加。然后我们对列表进行分解,为每个列表创建一个特性。
当你检查输出时,每个分区中有一个以上的投票点,将是一个较深的颜色。同时查看第17部分的表视图,现在,每个投票点的市长选举结果也与之合并。
以表格形式显示划分几何图形和分解列表的最终输出
数据属性
此处使用的数据源于温哥华市,不列颠哥伦比亚省。它包含根据开放政府许可证(温哥华)获得许可的信息。
?2019安全亚搏在线软件公司|合法的