FeatureJoiner
通过基于公共密钥属性值组合特征的属性和/或几何来连接功能。执行左,内部和全加入。
典型的使用
- 使用属性值(s)作为键在功能之间执行简单的连接
它是如何工作的?
FeatureJoiner执行简单的联接操作,非常类似于SQL联接,而不需要了解SQL查询构造。
它有两个输入端口 -左和对- 其中要加入的两个功能流被路由到变压器中。选择一个或多个属性以连接。
left功能匹配右侧的功能匹配,当绑定中指定的每对键具有相同的值时。当发生匹配时,组合左侧和右侧功能的属性/几何图形,并且将组合的功能输出到加入港口。
连接模式
连接模式参数定义要执行的连接类型,确定通过该功能将输出哪些功能加入输出端口。
连接模式 |
联合输出 |
|
---|---|---|
内心的 |
|
|
左 |
|
|
完整的 |
|
加入行为
每次左功能匹配到右键时,每次通过其键匹配连接功能。所产生的输出功能的数量取决于无论是多个左和右功能匹配。
联接类型由所用数据的性质决定(它不是参数)。这些类型的联接中的任何一种都可以由连接模式(内,左或满)。
基数 |
描述 |
输出(假设1个键值) |
---|---|---|
1:1 | 一对一:如果每个左特征在右特征之间有一个单独的匹配(例如,一个单点特征通过一个唯一的地址ID键映射到一个地址表),这是一个1:1匹配,并产生一个单独的join特征。 | 1左撇子1正确的: 1加入输出特性 |
1:M. | 一对一:如果每个左特征在正确的特征中具有多个匹配项(例如,单个地址记录映射到该地址的规划应用程序列表),则这是1:m(一对多)匹配并产生连接的功能对于发生的每一个匹配。 | 1左撇子10正确的: 10加入功能输出 |
M: 1 | 许多人一个:如果多个左侧要素与单个右侧要素记录匹配(例如,多个地址通过邮政编码字段与同一普查数据匹配),则这是一个M:1(多对一)匹配,并为发生的每个匹配生成一个关联要素 | 10左右1正确的: 10加入功能输出 |
M: N | 许多许多:如果多个左侧要素与多个右侧要素匹配(例如,多个地址与多个停电记录匹配),则这是一个M:N(多对多)匹配,并为发生的每个匹配生成一个关联要素。 | 10左右10正确的: 100加入特性输出* *当所有功能有相同的键值-所有左匹配所有右。 |
无与伦比的特性
没有找到匹配项的功能(左右)根据连接模式(内,左或满)。左和全模式都将导致通过连接端口输出的一些或所有无与伦比的功能,具体取决于模式:
连接模式 |
无与伦比的左特征输出 |
无与伦比的正确功能输出 |
---|---|---|
内心的 | unjoinedleft. | UnjoinedRight |
左 | 加入 | UnjoinedRight |
完整的 | 加入 | 加入 |
在本例中,我们有一个Fire Halls的小数据集,其中有一个街道地址,但没有完整的邮政地址。FeatureJoiner将执行一个地址数据集的连接,并将这些属性合并到Fire Halls上。
消防大厅与左输入端口,并将PostLadAddress数据集发送到对.
在参数对话框中,连接模式设置为内心的.这将导致只输出已经找到匹配的特性。未使用的地址将不包括在加入功能的输出中,也不包括任何没有找到邮政地址匹配的消防大厅。
在“连接”表中,我们为左右和右功能选择适当的街道地址属性,这些值将被用作加入的键。
查看结果从加入输出端口,您可以看到来自邮政地址特性的属性已经添加到FIre Halls。
使用说明
- FeatureJoiner与特色合并:
- 如果加入要求很简单,FeatureJoiner应该提供更好的性能。
- 如果加入要求更复杂,例如构造键,使用表达式命名冲突解决,请考虑使用FeatureMerger。
- 如果您希望只获取一个连接的功能,无论连接数量(1:m加入生成1个包含连接列表的1个功能,而不是每个加入的1个功能,因为featurejoiner dode),请使用featuremerger。
- FeatureJoiner不执行一些高级列表构建或几何体处理操作,但这些可能是通过使用FeatureJoiner和其他变压器。
- 对于使用SQL语法的复杂连接,或者超过两个输入特征流,请考虑使用inlinequerier.
选择特征连接方法
许多变形金刚基于匹配属性,表达式和/或几何来执行数据加入。选择一个特定的加入任务时,考虑因素包括连接,数据格式,索引,冲突处理和期望结果的复杂性。一些变形金刚使用SQL语法,并直接访问外部数据库。他们可能会或可能不支持属性列表阅读和创作。
通常,选择最专用于您需要完成的任务的那个将提供最佳性能结果。如果有多种方式来做(通常是这种情况),则在性能测试备用方法上花费的时间可能是值得的。性能可能会因读取外部表而存在的密钥索引(而不是在工作区中的功能)时变化。
变压器 |
搭配 |
使用SQL语句 |
可以创建列表 |
输入类型 |
值得注意的 |
描述 |
---|---|---|---|---|---|---|
FeatureJoiner | 属性 | 不 | 不 | 特征 |
|
通过基于公共密钥属性值组合特征的属性和/或几何来连接功能。执行相当于内部,左和完整的SQL连接。 |
特色合并 | 属性 | 不 | 是的 | 特征 |
|
将一组功能的属性和/或几何合并到另一组特征上,基于匹配的密钥属性值和表达式。 |
ListBasedFeatureMerger | 列表属性到单个属性 | 不 | 是的 | 特征 |
|
将一组特征的属性和/或几何合并到另一组特征上,基于匹配属性列表具有key属性值和表达式的值。 |
inlinequerier | SQL查询 | 是的 | 不 | 特征 |
|
从传入功能创建一组SQLite数据库表,对它们执行SQL查询,并将结果作为特征输出。 |
SQLCreator | SQL查询 | 是的 | 不 | 外部数据库 |
|
生成FME功能,从对数据库执行一次SQL查询的结果。为SQL查询结果的每行创建一个FME功能。 |
SQLExecutor | SQL查询 | 是的 | 不 | 外部数据库 |
|
对数据库执行SQL查询。对于进入变压器的每个启动特征,向数据库发出一个查询。初始特征和查询结果都可以作为特征输出。 |
databasejoiner. | 属性 | 不 | 是的 | 外部数据库和功能 |
|
基于公共密钥或键,将外部表中的属性从外部表加入到工作区中的功能。不需要SQL知识。非阻塞变压器。 |
匹配器 | 几何和/或属性 | 不 | 是的 | 特征 |
|
检测彼此匹配的特征。当特性具有匹配的几何形状、匹配的属性值或两者都具有时,它们就被声明为匹配。还可以指定特性之间必须不同的属性列表。 如果只匹配属性(而不是几何形状),使用featuremerge或其他方法将提供更好的性能。 |
配置
输入端口
组成连接的左表的特性。
组成连接的正确表的特性。
输出端口
加入模式不同,加入输出也不同。在所有情况下,它将包括找到匹配并加入的功能。
为内心的连接,不包括其他特性。
为左还包括没有找到匹配的左特性。
为完整的没有找到匹配的加入,左和正确的功能也包括在内,即,所有功能都在此处输出无论是否加入。
如果连接模式是,则在此处输出未在此处找到匹配的左功能内心的.
为左和完整的加入,此端口未使用。
如果连接模式为,则未找到匹配项的右功能将在此处输出内心的或左.
为完整的加入,此端口未使用。
参数
分组 | 输入特征可以通过参数由组划分。如果您按属性选择任何组,则只有在共享所选属性的公共值时才会解决特征之间的引用。如果您不按属性选择任何组,则将所有功能一起处理。 如果您有多个阅读器,则典型用途是通过Reader_ID进行组,以确保在正确的功能集中解析引用。 注意:这类似于一个额外的连接键,其细微的区别是允许Group-By值为空/缺失,而不会导致 |
连接模式 | 指定要执行的连接类型。
注意:要执行右连接,请反转左右输入连接并使用左连接模式。 |
|||||||||||||||
属性冲突解决 | 当连接功能从左和右特征中接收具有相同名称(或公共属性)的属性时,这指定了加入输出应该优选哪个值。 | |||||||||||||||
几何处理 | 指定将用于join功能的几何形状。 使用左:来自左边输入的几何图形将被使用,而来自右边输入的几何图形将被丢弃。 使用权:将使用右输入的几何形状,并且将丢弃左侧输入的几何图形。 聚合左右(强制唯一名称):来自左输入和右输入的几何图形都将被保留,并且每个几何部件将被赋予一个唯一的名称。
几何聚合示例
|
“连接”表指定要从左侧和右输入进行比较以确定匹配功能的属性。左侧特征在每对键指定的键时匹配正确的功能加入表匹配。
左 | 从左特性流中选择要用作键的属性。 |
对 | 从正确的要素流中选择属性以用作键。 |
比较模式 | 指定如何执行左属性值和右属性值之间的比较。如果自动的或数字指定了,将尝试在比较之前将属性值转换为数字。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来指定transformer参数。更高级的功能,例如高级编辑器和算术编辑器,在某些转换器中也可用。要访问这些选项的菜单,请单击除了适用的参数之外。有关详细信息,请参阅变压器参数菜单选项.
定义值
有几种方法可以在变压器中定义使用的值。最简单的是简单地输入值或字符串,其可以包括各种类型的函数,例如属性引用,数学和字符串函数和工作区参数。有许多工具和快捷方式可以帮助构造值的值,通常可以从与值字段相邻的下拉上下文菜单中提供。
使用文本编辑器
Text Editor提供了一种方便的方法来从各种数据源(如属性、参数和常量)构造文本字符串(包括正则表达式),其中结果直接在参数中使用。
使用算术编辑器
算术编辑器提供了一种方便的方法来构建来自各种数据源的数学表达式,例如属性,参数和特征函数,其中结果直接在参数内使用。
有条件的值
根据一个或多个通过或失败的测试条件设置值。
内容
表达式和字符串可以包括许多函数,字符,参数等 - 是否直接在参数中输入或使用其中一个编辑器构造。
参考
处理行为 |
|
功能持有 |
是的 |
依赖关系 | 没有任何 |
FME授权级别 | FME基础版及以上 |
别名 | |
历史 | |
类别 |
FME社亚搏国际在线官网区
FME社区是演示亚搏国际在线官网,TOS,文章,常见问题和更多的地方。获取您的问题的答案,从其他用户学习,并建议,投票和评论新功能。
搜索关于FeatureJoiner的所有结果在FME社区。亚搏国际在线官网
例子可能包含根据开放政府许可证的信息 - 温哥华