SpatialRelator
确定点、线、区域和文本特征集之间存在何种类型的空间(拓扑)关系。标记——但当选择的关系存在时,不改变特性的几何形状,并执行空间连接以可选地复制特性之间的属性。
典型的使用
- 识别要素之间是什么样的空间关系(一个或多个)存在
- 进行空间加盟转移属性,从一个功能到另一个基于它们的空间关系
它是如何工作的?
该SpatialRelator需要在功能两个流 - 请求者和供应商。请求者是功能,你想,以确定有关的信息,确定哪些空间关系(S)他们与供应商的特点。只有请求者的特点是从变压器输出。供应商来执行分析,然后被丢弃。
可以将transformer配置为查找一种或多种特定类型的空间关系,并将供应商的属性添加到请求者。这些属性以及空间关系的细节(默认情况下)被添加到请求者特性中列表中的属性。
根据测试参数的空间谓词中选择的测试,将每个输入供应商特性与请求者特性进行比较。当其中一个比较为真时,一个条目被添加到请求者的list属性中。list属性仅为具有匹配的特性创建。每个条目包含:
- 该DE9IM表示空间关系的字符串
- 空间关系的类型的名称
- 执行空间连接的供应商属性(全部、部分或无,取决于您的选择)
每个请求者特性,无论是否与供应商匹配,都会接收一个新属性,该属性包含它们匹配的特性的数量。
与特征匹配两家供应商可能是这样的,使用默认的属性名称和选择要纳入一个单一的供应商属性的输出:
空间相关器不改变几何形状。
在本例中,我们将一组线条特征(自行车道)与表示城市公园的多边形进行比较。自行车道是我们想要了解的功能的需求者,而公园则是我们将与之进行比较的供应商。只有添加了属性的自行车道才会被输出——在使用公园进行空间分析后,公园将被丢弃。
在SpatialRelator parameters对话框中,我们进行如下选择:
- 要测试的空间谓词:对于这种情况,我们将选择我们感兴趣的空间关系:
生成列表:生成列表是默认选择,并且支持为多个匹配添加属性。下添加到列表,我们选择所选的属性,然后选择DogPark和ParkName:
望着导致数据查验,以供参考所示的公园层,我们可以看到,所有的路径段现在有一个_related_candidates属性显示有多少园区功能,他们匹配。功能10,蓝色高亮显示,从一个园区跨越到另一个,因此显示了其_relationships列表属性相交的两个项目。
该特征的几何形状没有改变。
使用注意事项
- 看到空间关系定义有关空间谓词和空间关系说明的更多信息。
空间关系是基于OGC规范并没有定义为不是OGC有效或聚合几何形状的几何形状。
聚合可被谓词的子集接受,但应谨慎使用。
选择空间变换器
许多变压器可以评估空间关系,并执行空间连接 - 分析拓扑结构,合并属性,有时修改几何。一般情况下,选择一个最具体到你需要完成将提供最佳的性能结果的任务。如果有不止一种方法来做到这一点(这是经常的情况),花费在性能测试替代方法可能是值得的。
为了正确地分析空间关系,所有的特征都应该在同一个坐标系中。该Reprojector对于在工作区中重新投影特性可能很有用。
变压器 |
可以合并属性 |
改变几何 |
重要的相关功能 |
创建列表 |
支持类型* |
推荐给 |
---|---|---|---|---|---|---|
SpatialFilter | 是 | 没有 | 没有 | 没有 |
|
|
SpatialRelator | 是 | 没有 | 是 | 是 |
|
|
AreaOnAreaOverlayer | 是 | 是 | 是 | 是 |
|
|
LineOnAreaOverlayer | 是 | 是 | 是 | 是 |
|
|
LineOnLineOverlayer | 是 | 是 | 是 | 是 |
|
|
PointOnAreaOverlayer | 是 | 没有 | 是 | 是 |
|
|
PointOnLineOverlayer | 是 | 是 | 是 | 是 |
|
|
PointOnPointOverlayer | 是 | 没有 | 是 | 是 |
|
|
Intersector | 是 | 是 | 是 | 是 |
|
|
限幅器 | 是 | 是 | 没有 | 没有 |
|
|
NeighborFinder | 是 | 在某些情况下 | 没有 | 是 |
|
|
TopologyBuilder | 是 | 是 | 没有 | 是 |
|
|
*注意:曲线包括直线,圆弧和路径。区域包括多边形,甜甜圈,和椭圆。
空间分析可以是处理密集型,特别是当有大量的特征是参与。如果你想调工作区的性能,这是一个良好的开端。
当有多个方法来配置一个工作空间,达到同一个目标,这往往是最好的选择最特别适合于你的任务变压器。作为一个例子,比较地址指向建立多边形的时候,有一些方法来处理它。
第一个示例使用SpatialFilter测试点是否落在多边形内,生成正确的结果。但是SpatialFilter是一个相当复杂的转换器,能够测试多种条件并接受各种几何类型。它没有针对我们在这里分析的特定空间关系进行优化。
SpatialFilter:
第二个例子使用一个PointOnAreaOverlayer,接着是测试仪。功能输出是相同如在第一方法中,但变压器被用于该特定任务优化。在处理时间上的差异是显着 - 从在第一配置54.3秒,下降至13.7秒的第二个。
用一个点区域覆盖层和一个测试器:
如果性能是在工作区中的一个问题,寻找替代方法,通过几何指导。
配置
输入端口
将被比较的点、线、区域和文本特性,然后用描述关系的标记列表输出。
点、线、区域和文本特性,将用于与请求者特性进行比较,但不用于输出。
输出端口
这些是添加了新属性的请求者特性。对于具有至少一个匹配谓词的每个供应商,都有一个列表条目。
无效的几何请求者和供应商的功能将被拒绝,并通过此端口输出。如果通过属性提供谓词,供应商没有或无效的谓词功能也将通过此端口输出。
被拒绝的功能将有fme_rejection_code属性,该属性具有下列值之一:
INVALID_BASE_GEOMETRY_NOT_OGC_VALID
INVALID_BASE_GEOMETRY_TYPE
INVALID_BASE_GEOMETRY_VERTICES
INVALID_CANDIDATE_GEOMETRY_NOT_OGC_VALID
INVALID_CANDIDATE_GEOMETRY_TYPE
INVALID_CANDIDATE_GEOMETRY_VERTICES
INVALID_CANDIDATE_PARAMETER_PREDICATE
INVALID_GEOMETRY_TYPE
MISSING_CANDIDATE_PARAMETER_PREDICATE
参数
集团 | 此参数用于指示只有对于某些属性具有相同值的请求者和供应商才应该进行比较。请求者和提供者都必须具有匹配的属性名称和值。 | ||||||||||||
并行处理 | 选择要应用的并行处理级别。默认情况下没有并行性。
并行处理
注意:如何并行处理与FME作品:看对并行处理的详细信息。 该参数确定变压器是否应该执行跨并行进程的工作。如果启用,这个过程将启动由指定的每个组集团参数。 并行处理水平
例如,在四核计算机上,最小的并行度将导致两个FME进程同时进行。8核机器上的极端并行将导致16个并发进程。 您可以试验这个特性,并在Windows任务管理器和工作台日志窗口中查看信息。 |
||||||||||||
输入有序 | 没有:这是默认行为。只有当所有输入都存在时,处理才会在这个转换器中发生。 由集团:此转换器将按顺序处理输入组。的值的变化集团输入流上的参数将触发当前累积组上的批处理。如果组比较大/复杂,这将提高总体速度,但如果输入组不是真正有序的,则可能导致不希望出现的行为。具体来说,对于两个输入端口的转换器,“in order”表示整个组必须在下一个组到达任何一个端口之前到达两个端口,以便转换器按预期工作。这可能需要在工作空间中仔细考虑,并且不应该与两个端口的输入流单独排序而不是同步排序混淆。 |
支持模式 | 支持总量:(默认)多和聚合几何图形都将得到支持。但是,惟一可用的谓词是Contains、Equals、Intersects、touchts和Within。不支持重叠谓词和交叉谓词。9-character面具代表二维延伸的9点交集矩阵也不受支持。 支持所有谓词:属性中描述的所有谓词空间关系定义页面将被支持,除非不相交。但是,聚合和多几何图形将不受支持。 |
要测试的空间谓词 | 此参数列出将用于比较请求者和供应商特性的空间谓词。可以直接从列表中选择,也可以从属性值中选择。测试包括:
不是所有的测试都可用于聚合或多几何。 如果支持模式是支持所有谓词,也可以使用任意9个字符掩码测试关系。这样的掩码由a的行组成维扩展9相交矩阵。注意,为了在SpatialRelator中使用这些掩码,您必须将它们分配给供应商特性上的一个属性,并在test to Perform子句中包含该属性的值(您不能直接指定它们)。可以在一个属性中指定多个谓词,方法是用空格分隔它们。 注意,这个转换器不允许使用表示不相交关系的矩阵。这包括所有四个左上角元素中有F或*的矩阵。如果您希望查找与另一个特性不相交的特性,则SpatialFilter可以使用。有关谓词的更多信息,请参见空间关系定义。 |
属性必须迥异 | 此属性控制在声明匹配之前哪些属性必须具有不同的值。 |
曲线边界规则 | 此参数指定如何确定曲线和多urve几何图形的边界。默认的规则是,在整个几何图形中出现奇数次的任何曲线端点都将被认为是它的边界——也就是说,一个线性循环(起点等于终点的直线)将没有任何边界。另一个规则指定曲线或多urve的边界是其所有端点的集合。 |
相关供应商数量属性 | 此属性指定将添加到每个请求者的属性的名称,该属性存储请求者与至少有一个真关系的供应商的数量。 |
计算交集的基数 | 如果是,则对于每个匹配请求者的供应商,将在相应的列表条目中添加三个属性:card_point,card_line,card_area。它们计算组成请求者和提供者交集的点、线和区域的数量。例如,如果两个多边形在一个顶点上相接,则计算一个点;如果它们在一条边上相接,则计算一条线;如果它们重叠,则计算一个面积。 |
合并属性
选中后,能够用于合并特征类型的属性选项。
积累模式 | 合并供应商:从所有的功能属性进行合并。冲突是根据参数冲突解决处理。 前缀供应商:所有供应商属性都以前缀参数指定的值作为前缀。 只使用供应商:从供应商的功能只有属性被使用。 |
解决冲突 | 指定当累计模式为合并供应商时如何处理属性冲突。 使用请求者:给予请求者优先权。 使用供应商:优先供应商。 |
字首 | 当累加模式为前缀供应商时,指定的值将前缀供应商属性。 |
当属性从供应商合并到请求者的特点,现有的属性不会被替换。因此,如果供应商和请求具有相同名称的属性,该值将不能向下转移。
这可以通过重命名、删除或添加前缀属性来避免名称冲突。(见AttributeManager和BulkAttributeRenamer。)
生成列表
选中此选项后,将启用列表生成选项。默认值为On。
属性的列表将包含关系和空间连接属性值。空间关系信息,以这种形式补充说:
...
< LIST_NAME >{我}。pass{n} =[真谓词n+1]
列表名称 | 此参数指定将被添加到请求程序的功能列表属性的名称。 注意:属性列表不能从工作台中的输出模式进行访问,除非首先使用对其进行操作的转换器(例如ListExploder或ListConcatenator。所有列表属性转换器都显示在“转换器帮助”下的“内容”窗格中列表。或者,AttributeExposer可以使用。 |
添加到列表中 | 所有属性:所有供应商的属性将被添加到请求者。 选择属性:启用所选属性参数,其中可以选择要从供应商添加到请求者的特定属性。 |
所选属性 | 将“添加到列表”设置为所选属性时启用。 指定希望从供应商添加到请求者的属性。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来分配transformer参数。更高级的功能,例如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
定义值
有几种方法可以定义在转换器中使用的值。最简单的方法是简单地键入一个值或字符串,其中可以包括各种类型的函数,如属性引用、数学和字符串函数以及工作区参数。有许多工具和快捷方式可以帮助构造值,通常可以从value字段附近的下拉上下文菜单中获得。
使用文本编辑器
文本编辑器提供了一种方便的方法来构造来自各种数据源(如属性、参数和常量)的文本字符串(包括正则表达式),其中直接在参数中使用结果。
使用算术编辑器
算术编辑器提供了一个方便的方法来构造从各种数据源,如属性,参数和特征函数,其中结果被直接使用的参数内的数学表达式。
条件值
根据通过或失败的一个或多个测试条件设置值。
内容
表达式和字符串可以包括许多函数、字符、参数等——无论是直接输入参数还是使用某个编辑器构造。
参考
加工行为 |
|
特点控股 |
是 |
依赖关系 | |
FME授权级别 | FME专业版及以上 |
别名 | |
历史 | |
类别 |
FME知识中心
FME知识中心是演示、操作指南、文章、常见问题和更多内容的地方。获取问题的答案,向其他用户学习,建议、投票和评论新功能。
搜索所有关于空间相关器的结果在FME知识中心。