特征合并
将一组特征的属性和/或几何图形合并到另一组特征上,基于匹配的键属性值和表达式。
典型用途
- 结合来自两种不同特征流的属性和/或几何体,基于公共键属性值或表达式。
它是如何工作的?
FeatureMerge通过其输入端口接收两个功能流。
Requestor: 请求者是将接收新属性和/或几何图形的功能。
Supplier: 供应商提供要合并到请求者上的属性和/或几何图形。
之间的匹配请求者和供应商根据加入参数对话框中的配置。连接条件可以是简单的或复杂的,使用属性值,常数,功能,或者这些表达形式的组合。可以定义多个连接条件(功能必须满足所有要匹配的条件)。
当A请求者查找匹配项供应商,属性和/或几何体供应商合并到请求者.
- 如果请求者已经具有供应商也具有的属性,可以保留或重写该属性的请求者原始值。
- 一个供应商可以被许多请求者使用。
- 许多供应商可以合并为一个请求者。
- 当属性名冲突时,您可以通过使用冲突解决参数,以及是否使用忽略空值参数。
请求者特征匹配供应商当在加入表的两个值相同请求者和供应商特征。
在这个例子中,我们有两个数据集-一个记录犯罪历史报告的csv文本文件,以及一排排公共街道。两个数据集都有一条共同的信息,那是一个地址,以“百”字块的形式。
这个特征接合器做一个简单的属性值连接可能更有效,然而,每个数据集中的地址格式略有不同。csv数据使用字符串“xx”代替地址中的零:
街道数据的形式更为传统,零点:
我们的目标是将街道几何图形合并到犯罪数据中,为每个犯罪记录生成一个输出特征。所以,csv数据被路由到请求者输入端口,街道被引到供应商端口。
在参数对话框中,我们需要创造一个加入对请求者和供应商价值观。由于地址的格式不相同,我们会调整一个,构造一个键。在文本编辑器的帮助下,我们创建一个表达式,将地址的“xx”替换为“00”,因此,匹配街道(供应商)数据的格式。
另一半是属性值方块从街道数据。
功能合并类型设置为属性和几何.的默认值属性积累(合并供应商)将提供正确的结果。
这个合并输出包含犯罪记录,现在具有街道的几何图形和关联的街道属性。注意,地址格式实际上并没有被构造的表达式改变——它只是用于匹配评估。在这个地方,发现了137条犯罪记录。现在每个都有(相同的)几何体。
要看到这个例子被颠倒了——将所有犯罪记录附在一条街道上——请看下一个例子。
在这个例子中,我们在上面的例子中反转场景。我们要把所有历史犯罪记录合并到街道数据中,每条街道线段(街区)生成一条记录,用一个列表属性包含犯罪数据。
在这种情况下,街道是请求者特征,犯罪数据是供应商.
在参数对话框中,我们再次创造了加入一对,使用表达式匹配两种(稍有不同的)百块格式。这个功能合并类型是仅属性,因为请求者(街道)已经具有所需的几何图形。
处理重复供应商启用。没有这个,第一个匹配将被处理,其余的将被丢弃。将保留多少匹配的供应商(犯罪)供应商数量属性,命名偶然计数.
生成列表启用,并给出了列表名称属于犯罪记录.我们只增加选定的属性名单上,并选择类型和年.
这个合并输出功能现在有一个列表属性,包含csv中的所有匹配记录。注意事件计数属性。
使用说明
- 对于简单连接,这个特征接合器可能提供比功能合并更好的性能。然而,FeatureJoiner只接受属性值作为键,而不接受构造表达式,不支持列表属性。此外,功能合并能够(可选)在多个匹配供应商的情况下将输出限制为一个功能,而FeatureJoiner将为所有匹配项创建多个功能。
- 对于使用SQL语法的复杂联接,或两个以上的输入特征流,考虑使用内联均衡器.
- 如果需要多功能合并,考虑使用内联均衡器相反。
- 如果要查询的所有数据都已存在于支持SQL的数据源中,使用Sql创建者或SQL执行器,它允许数据库在进入FME环境之前直接执行数据的查询和过滤。
- 要在工作区中已有的功能与外部数据库中的数据之间执行联接,考虑一下数据库连接器.
- 在请求者密钥是列表属性,考虑使用基于列表的功能合并.
- 加入功能匹配几何图形,考虑一下匹配器.FeatureMerge不接受几何图形作为键。
选择特征连接方法
许多变压器可以根据匹配的属性进行数据连接,表达式和/或几何。为特定的加入任务选择一个时,考虑到连接的复杂性,数据格式,索引,冲突处理,以及期望的结果。有些转换器使用SQL语法,一些直接访问外部数据库。他们可能支持也可能不支持列表属性阅读和创作。
一般来说,选择一个最具体的任务,你需要完成将提供最佳的性能结果。如果有不止一种方法可以做到这一点(这种情况经常发生)。花在性能测试替代方法上的时间可能是值得的。在读取外部表时,性能可能会有很大的变化,这取决于关键索引的存在(而不是工作区中已经存在的特性)。
变压器 |
比赛通过 |
使用SQL语句 |
可以创建列表 |
输入类型 |
值得注意的 |
描述 |
---|---|---|---|---|---|---|
特征接合器 | 属性 | 不 | 不 | 特征 |
|
通过基于公共键属性值组合特征的属性和/或几何图形来连接特征。相当于内部,左,和完整的SQL联接。 |
特征合并 | 属性 | 不 | 是的 | 特征 |
|
将一组特征的属性和/或几何图形合并到另一组特征上,基于匹配的键属性值和表达式。 |
基于列表的功能合并 | 列表属性到单个属性 | 不 | 是的 | 特征 |
|
将一组特征的属性和/或几何图形合并到另一组特征上,基于匹配列表属性具有键属性值和表达式的值。 |
内联均衡器 | SQL查询 | 是的 | 不 | 特征 |
|
从传入功能创建一组sqlite数据库表,对它们执行SQL查询,并将结果作为特征输出。 |
Sql创建者 | SQL查询 | 是的 | 不 | 外部数据库 |
|
通过对数据库执行一次SQL查询的结果生成FME特性。为SQL查询结果的每一行创建一个FME特性。 |
SQL执行器 | SQL查询 | 是的 | 不 | 外部数据库 |
|
对数据库执行SQL查询。对于进入变压器的每个启动特性,向数据库发出一个查询。初始特性和查询结果都可以作为特性输出。 |
数据库连接器 | 属性 | 不 | 是的 | 外部数据库和功能 |
|
将外部表中的属性联接到工作区中已有的功能,基于一个或多个公共键。不需要SQL知识。无阻塞变压器。 |
匹配器 | 几何图形和/或属性 | 不 | 是的 | 特征 |
|
检测彼此匹配的功能。当特征具有匹配的几何图形时,它们将被声明为匹配。匹配属性值,或者两者兼而有之。还可以指定功能之间必须不同的属性列表。 如果仅匹配属性(而不是几何体),使用FeatureMerge或其他方法将获得更好的性能。 |
配置
输入端口
将从连接到的功能接收新属性和/或几何图形的功能供应商端口。
通过请求者端口。
请注意,通过设置处理重复供应商到是的,可以将多个供应商合并到每个请求者。这些供应商可能来自不同的来源(例如不同的数据库表)。
输出端口
与供应商(或可能的多个供应商)匹配的请求者,如果处理重复供应商设置为是的)
这样做的请求者不匹配任何供应商。如果A加入请求程序功能上的键为空或丢失,这个特性被输出到这个端口。
由至少一个请求者找到的供应商。
注:即使没有合并供应商的任何属性,也可以通过该端口输出供应商。这可能是因为所有的属性都已经存在于请求者中,或者是由早期的供应商提供的。
供应商不匹配任何请求者。如果A加入供应商功能上的键为空或缺失,这个特性被输出到这个端口。
参数
小组通过 | 输入功能可以通过小组通过参数。如果你选择任何小组通过属性,然后,只有当功能之间共享选定属性的公共值时,才会解析它们之间的引用。 如果你不选择任何小组通过属性,所有功能一起处理。 如果你有多个读者,典型的用法是按读卡器ID分组,以确保在正确的功能集内解析引用。 |
分组方式 | 结束进程(阻塞):这是默认行为。只有当所有输入都存在时,处理才会在此变压器中进行。 组更改时处理(高级):此变压器将按顺序处理输入组。输入流上Group By参数值的更改将触发对当前累积组的处理。这可能会提高整体速度(尤其是使用多个同样大小的群体)但是,如果输入组没有真正排序,则可能会导致不需要的行为。
使用注意事项小组通过
有两个典型的使用原因组更改时处理(高级).第一个是要分组处理的传入数据(并且已经按顺序排列)。在这种情况下,该结构根据使用情况而不是性能考虑来指定组。 第二个可能的原因是潜在的性能提升。 当数据已经排序(或使用按SQL顺序排序声明)因为FME需要较少的工作。如果数据需要排序,它可以在工作区中排序(尽管增加的处理开销可能会抵消任何收益)。 根据数据流的数量,排序变得更加困难。多个数据流几乎不可能按正确的顺序排序,因为所有功能都匹配小组通过值需要在属于下一个组的任何功能(任何功能类型或数据集)之前到达。在这种情况下,使用小组通过具有结束进程(阻塞)可能是等效和简单的方法。 注:多个特征类型和来自多个数据集的特征通常不会以正确的顺序自然发生。 和许多场景一样,使用数据测试工作区中的不同方法是识别性能提升的唯一确定方法。 |
供应商第一 | 启用此选项时,变压器将假定所有供应商将在任何请求者之前进入变压器。一旦第一个请求者到达,它将在请求者进来时处理和输出它们。供应商将在所有请求者处理完毕后输出。 注:用户有责任确保所有供应商在请求者之前到达。启用此选项后,变压器将在收到其第一个请求者后停止接受供应商。 |
请求者 | 从中指定表达式请求者要与匹配的功能供应商功能表达式。 表达式可以是常量,属性值,功能或混合物。前导和尾随空格字符从计算表达式中修剪。当所有请求表达式的修剪值等于其相应供应商表达式的修剪值时,将进行匹配。 |
供应商 | 从中指定表达式供应商要与匹配的功能请求者功能表达式。 表达式可以是常量,属性值,功能或混合物。前导和尾随空格字符从计算表达式中修剪。当所有请求表达式的修剪值等于其相应供应商表达式的修剪值时,将进行匹配。 一般来说,供应商将定义与请求者唯一匹配的表达式,变压器忽略了任何重复的供应商。然而,如果处理重复供应商参数设置为是的,然后,其表达式与相应请求者表达式匹配的所有供应商将组合到该请求者上。 |
比较模式 | 比较模式列指定如何执行请求者和供应商属性值。如果指定了自动或数字,在比较属性值之前,将尝试将其转换为数字。 |
功能合并类型 | 此参数指定要合并到已完成功能上的内容。选择包括:
|
拒绝空键和缺少的键 | 对:任何包含空或缺少联接键的请求者或供应商功能都将通过
不:空键和丢失键被视为空字符串。 |
如果为给定请求者找到多个供应商,和处理重复供应商未启用,然后,第一个供应商通过
如果处理重复供应商启用,重复的供应商都与相应的请求者匹配。根据属性累积模式合并属性,和可选输出为列表属性请求者的,使用指定的列表名称.使用指定的几何合并类型.
几何合并类型 | 指定如何将重复的供应商合并到请求者上。只有在以下情况下才适用功能合并类型指定合并几何图形。选择包括:
|
||||||||||||||||||
公差 | 在几何图形被视为相等之前,二维几何图形之间的最小距离,地面单位。如果公差为没有,几何图形必须完全相同才能视为相等。如果公差为自动的,公差将根据输入几何图形的位置自动计算。此外,可使用自定义公差。 |
||||||||||||||||||
连接Z模式 | 如果适用的话,选择处理Z值的方法。
连接Z模式
在二维(忽略Z)中查看时,路径(可以定义多边形的边界)可能看起来是闭合的,如下图所示。同样的路径,在三维视图中查看时,可能显示为打开状态,如下图所示。
要指定在3D中如何(和如果)关闭路径,选择列出的模式之一。
|
||||||||||||||||||
供应商数量属性 | 将存储与请求者匹配的供应商数量计数的属性的名称。 |
如果供应商和请求者功能上的属性具有相同的名称,但不是以几何属性开始的FMEI然后他们被认为是冲突。
积累方式 | 合并供应商:请求者功能将保留其所有不冲突的属性,此外,还将获取供应商功能具有的任何不冲突属性。此模式将基于冲突解决参数。 前缀供应商:请求者功能将保留其所有属性。此外,请求者将获得反映供应商特征属性的属性,名称前缀为前缀参数。 仅使用供应商:请求者功能将删除其所有属性,除了以FMEI.然后,来自一个(任意)供应商特性的所有属性将被放置到请求者上。 |
冲突解决 | 使用请求者:如果发生冲突,将维护请求者值。 使用供应商:如果发生冲突,供应商的价值将转移到请求者。 |
忽略空值 | 不:将空属性值视为其他属性值。 是的:将空属性值视为比其他属性值不重要。每当空值与非空值合并时,以非空值为准。不管什么冲突解决设置为。 注:空值和其他属性值总是比缺少的属性值更占主导地位。也就是说,每当属性值与缺少的属性值合并时,以属性值为准。不管忽略空值和冲突解决设置。 |
前缀 | 为了防止由于请求者属性已经存在而忽略供应商属性,您可以选择指定一个前缀,该前缀将在添加到请求者时应用于每个供应商属性。 当请求者功能有多个供应商功能时,多个供应商属性值合并到同一个带前缀的属性中。当多个供应商特征具有相同的属性时,通常,生成的属性值取自这些特性中的最后一个。然而,此过程受忽略空值参数。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来指定变压器参数。更高级的功能,例如高级编辑器和算术编辑器,在一些变压器中也有。要访问这些选项的菜单,点击在适用参数旁边。更多信息,看见变压器参数菜单选项.
定义价值
定义用于变压器的值有几种方法。最简单的方法是简单地键入一个值或字符串,它可以包含各种类型的函数,例如属性引用,数学和字符串函数,和工作区参数。有许多工具和快捷方式可以帮助构造值,通常可从值字段旁边的下拉上下文菜单中获得。
使用文本编辑器
文本编辑器提供了从各种数据源构造文本字符串(包括正则表达式)的方便方法,比如属性,参数,常数,其中结果直接在参数内部使用。
使用算术编辑器
算术编辑器提供了一种从各种数据源构造数学表达式的方便方法。比如属性,参数,以及功能,其中结果直接在参数内部使用。
条件值
根据通过或失败的一个或多个测试条件设置值。
内容
表达式和字符串可以包含多个函数,字符,参数,以及更多——无论是直接输入参数还是使用其中一个编辑器构造。
参考文献
处理行为 |
|
特征保持 |
是的 |
依赖关系 | 没有 |
FME许可级别 | FME基础版及以上 |
别名 | |
历史 | |
类别 |
FME社亚搏国际在线官网区
FME社区是演示亚搏国际在线官网的地方,如何,文章,常见问题解答,还有更多。回答你的问题,向其他用户学习,并建议,投票表决,以及对新功能的评论。
寻找功能合并的所有结果关于FME社区。亚搏国际在线官网
示例可能包含根据开放式政府许可证(温哥华)获得许可的信息。