拓扑基础
计算输入点,行和/或区域特征上的拓扑,并通过描述拓扑关系的属性输出有效节点,边缘和面。
典型的用途
- Computing topological relationships on vector features
- Finding intersections
How does it work?
TopologyBuilder计算输入点,行和/或区域特征上的拓扑。
Topologically significant nodes and lines are computed using all input features and output with additional attributes which describe the topological relationships. The TopologyBuilder will intersect the inputs before building topology, provided theGenerate Fromadvanced parameter is set to结束节点和交叉点。在计算输入数据中存在的任何交叉点之后,它需要任何数据并构建结果拓扑。
It outputs the significant Nodes (points) and Edges (lines) with attributes describing their topological relationships. Faces (areas) are output with information about the Edges which form them.
该变压器通常用于确定拓扑关系,以帮助以后的变压器中的决策。
* Red line indicates direction of flow.
In this example, we start with a set of whole street centerlines, which are not split into individual features at intersections.
该功能被路由到拓扑库中。
默认参数设置将产生正确且有用的结果。值得注意的是,默认设置Generate Fromis left as结束节点和交叉点, and so will create intersections where lines cross.
在交点中,线条是拆分和创建节点。节点接收有关连接边缘(行)功能的属性,包括标识符和角度。
边缘(线段)还接收关于它们与相邻特征的关系的属性。
In this example, we compute topology on a set of neighborhood polygons.
多边形被路由到拓扑基础。
边缘和拓扑重要的节点中d, and list attributes created containing topological relationship information, as shown for this selected Face (polygon).
Usage Notes
- 拓扑博合金器不会更正数据 - 它只找到存在的关系和交叉点。
- Z值(高度)将保留在特征上,但在计算交叉点时不考虑它们。
Choosing a Spatial Transformer
许多变形金刚可以评估空间关系并执行空间连接 - 分析拓扑,合并属性,有时修改几何。通常,选择最专用于您需要完成的任务的那个将提供最佳性能结果。如果有多种方式来做(通常是这种情况),则在性能测试备用方法上花费的时间可能是值得的。
要正确地分析空间关系,所有功能应在相同的坐标系中。这Reprojector可能对工作区中的恢复功能有用。
变压器 |
Can Merge Attributes |
改变几何 |
计算相关的功能 |
Creates List |
Supported Types* |
Recommended For |
---|---|---|---|---|---|---|
时空Filter. | 是的 | No | No | No |
|
|
斯卡利尔 | 是的 | No | 是的 | 是的 |
|
|
区域OnAreaOverlayer | 是的 | 是的 | 是的 | 是的 |
|
|
LineOnareaoverlayer. | 是的 | 是的 | 是的 | 是的 |
|
|
LineOnLineOverlayer | 是的 | 是的 | 是的 | 是的 |
|
|
观点OnAreaOverlayer | 是的 | No | 是的 | 是的 |
|
|
观点OnLineOverlayer | 是的 | 是的 | 是的 | 是的 |
|
|
观点OnPointOverlayer | 是的 | No | 是的 | 是的 |
|
|
Intersector | 是的 | 是的 | 是的 | 是的 |
|
|
Clipper | 是的 | 是的 | No | No |
|
|
邻居 | 是的 | 在某些情况下 | No | 是的 |
|
|
拓扑基础 | 是的 | 是的 | No | 是的 |
|
|
* NOTE:Curveincludes Lines, Arcs, and Paths.区域包括多边形,甜甜圈和椭圆形。
Spatial analysis can be processing-intensive, particularly when a large number of features are involved. If you would like to tune the performance of your workspace, this is a good place to start.
当有多种方式配置工作空间达到相同目标时,最好最好选择最专门适合您的任务的变压器。例如,当将地址点与构建多边形进行比较时,有几种方法可以接近它。
这first example, using a SpatialFilter to test whether or not points fall inside polygons, produces the correct result. But the SpatialFilter is a fairly complex transformer, able to test for multiple conditions and accept a wide range of geometry types. It isn’t optimized for the specific spatial relationship we are analyzing here.
With a SpatialFilter:
这second example uses a PointOnAreaOverlayer, followed by a Tester. The features output are the same as in the first method, but the transformer is optimized for this specific task. The difference in processing time is substantial - from 54.3 seconds in the first configuration, down to 13.7 seconds in the second one.
With a PointOnAreaOverlayer and a Tester:
如果性能是工作区中的问题,请查找以几何形状为引导的替代方法。
配置
Input Ports
Output Ports
每个拓扑原语都以描述其拓扑关系的属性输出。与大多数变换器不同,您无法命名这些属性。
拓扑上有效的节点(点几何)通过该端口输出。
属性 | Description |
---|---|
_node_number |
每个节点的唯一标识符。 |
_node_angle{} |
列表属性describing the topological relationship of each edge connected to the node. The edges in this list are ordered counterclockwise. |
_node_angle {}。fme_arc_id |
连接到此节点的边缘的ID。id的幅度对应于连接边缘的_dege_id。如果ID为正,则边缘的开始连接到节点。如果ID为否定,则边缘的末尾连接到节点。 |
_node_angle{}.fme_arc_angle |
节点处边缘的切线线的角度。 |
Topologically significant edges (curve geometries) are output via this port.
属性 | Description |
---|---|
_dege_id. |
每个边缘的唯一标识符。 |
_right_face. |
此边缘右侧的框架_face_id。 |
_left_face |
这_face_id of the face to the left of this edge. |
_right_edge |
这_dege_id.of the edge that is found when traveling along this edge and turning right at the _to_node. If the ID is positive, the right edge is going away from the _to_node. If the ID is negative, the right edge is coming towards the _to_node. |
_left_edge. | 这_dege_id.of the edge that is found when traveling backwards along this edge and turning right at the _from_node. If the ID is positive, the left edge is going away from the _from_node. If the ID is negative, the left edge is coming towards the _from_node. |
_from_node. | 该边缘开始时节点的_node_number。 |
_to_node | 该边缘结束时节点的_node_number。 |
_faces | 逗号分隔的面部ID的列表此边缘边框。id的幅度对应于边界面的_face_id。如果ID为正,则面边界包含此边缘。如果ID为否定,则面边界包含此边缘的反向。 |
Topologically significant faces (area geometries) are output through this port.
属性 | Description |
---|---|
_face_id |
A unique identifier for each face. |
_faces |
逗号分隔的_face_ids列表对于每个脸部的_face_ids此脸部共享边缘。 |
_周长 |
2D中面部轮廓的长度。 |
_区域 |
这area of the face in 2D. |
_对策 | 逗号分隔的编写该面的边的ID列表。一个0条目分隔不同边界的边缘。id的幅度对应于包含边缘的_dege_id。如果ID为正,则面边界包含此边缘。如果ID为否定,则面边界包含此边缘的反向。边缘ID与边缘使用的顺序相同,用于制作面部的边界。 笔记:这在输出多边形上提供边界弧参数更改_edges属性的行为。有关更多信息,请参阅下面描述此参数的部分。 |
通过减法的输出区域代表面孔未覆盖的一切。
属性 | Description |
---|---|
_face_id |
这unique face identifier of the universe is always 0. |
_周长 |
2D中宇宙轮廓的长度。 |
_区域 |
这area of the universe in 2D. |
_对策 | Comma-separated list of the IDs of the edges that compose the universe. A 0 entry separates edges of different boundaries. The magnitude of the ID corresponds to the _edge_id of the contained edge. If the ID is positive, the universe contains this edge. If the ID is negative, the universe contains the reverse of this edge. The edge IDs are in the same order that the edges are used to make the boundary of the universe. 笔记:这在输出多边形上提供边界弧参数更改_edges属性的行为。有关更多信息,请参阅下面描述此参数的部分。 |
没有点,文本,曲线或区域几何形状的特征是通过此端口输出的,以及附加属性fme_reimpe_code,以指示拒绝原因。
拒绝功能处理:can be set to either terminate the translation or continue running when it encounters a rejected feature. This setting is available both as a defaultFME选项and as aworkspace parameter。
参数
Group By | 默认行为是使用整个功能集作为组。此选项允许您选择定义要形成的组的属性。 |
Group By Mode | 结束过程(阻塞):这是默认行为。只有在存在所有输入时,处理将在此变换器中发生。 组更改时的过程(高级):此变压器将按顺序处理输入组。通过输入流上参数的Group的值的更改将触发当前累积组的处理。这可以提高整体速度(特别是具有多个等大小的组),但如果输入组未真正有序,则可能导致不期望的行为。
Considerations for UsingGroup By
这re are two typical reasons for using组更改时的过程(高级)。这first is incoming data that is intended to be processed in groups (and is already so ordered). In this case, the structure dictates Group By usage - not performance considerations. 这second possible reason is potential performance gains. Performance gains are most likely when the data is already sorted (or read using aSQL ORDER BYstatement) since less work is required of FME. If the data needs ordering, it can be sorted in the workspace (though the added processing overhead may negate any gains). 根据数据流的数量,排序变得更加困难。由于所有匹配的功能,多个数据流可能几乎不可能排序到正确的顺序中Group By需要在属于下一个组的任何功能(任何特征类型或数据集)之前到达。在这种情况下,使用Group Bywith结束过程(阻塞)may be the equivalent and simpler approach. 笔记:多ple feature types and features from multiple datasets will not generally naturally occur in the correct order. 与许多情况一样,使用您的数据测试工作区中的不同方法是识别性能增益的唯一明确方式。 |
Maximum Coords Per Edge | 该数字表示输出任何边缘的最大长度。如果任何行包含多于此数量的坐标,则将其分为分别输出的部分,每个都具有自己的边缘ID,并正确编号。值0表示每个边缘的无限数量的坐标。 |
Unify Attributes From Overlapping Input | If是的, the transformer enters a mode where no collinear edges or overlapping nodes are output at all, whether they came from source linear features or from the borders of source area features or input points, or calculated as intersection points. In this mode, all output edges or nodes which were overlapping with at least one direct input will contain a list attribute (_overlapping_Input_data.)有关其重叠的每个输入的信息。此关键字将列表属性的字段名设置为包含所有属性(以后的几何属性除外fme_)来自与最终输出边缘或节点重叠的所有输入线或点。 A side effect of this option is that only edges that form part of a face boundary will be considered in the calculation of_left_edge.and_right_edge。(仅源自线路输入的所有边缘都有自己的ID作为其左边缘ID提供,并将其否定为右边缘ID。) |
在输出面上提供边界弧 | IfAll:
If首先是每个边界:
If首先是每个外部边界:
|
总计的Handling | deaggregate:All input aggregates will be deaggregated, and each split part will be processed independently. With this setting, the transformer might output more features than were given as inputs. 拒绝:所有输入聚合都将被拒绝。 |
Generate List From Input Nodes | 提供选项来在与输入节点相关的面部和边缘输出端口上创建列表。 |
Generate List From Input Edges | Gives the option to create a list on the Node and Face output ports that relate to information from the input curves. |
从输入面生成列表 | 提供选项来在节点和边缘输出端口上创建与输入面的信息相关的列表。 |
保留内部边缘 | If是的, coordinate "cycles" within a face are allowable and will be preserved. A "cycle" is an edge that occurs twice in the same face's boundary (once in each direction); the edge's ID will appear twice in that face's edge list, positive in one instance and negative in the other. |
Generate From | 结束节点和共线片:然后将拓扑节点放置在终端节点处,并且在两个输入几何形状中存在结束节点的共线段的末端。 结束节点和交叉点(default):New points will be added to the geometries where intersections occur, if necessary, prior to constructing the topology from all shared nodes and end nodes. 仅限终端节点:拓扑将仅从现有的结束节点生成。 |
Tolerance | This parameter is only used whenGenerate Fromis set to结束节点和交叉点。 在接地单元中,在2D之前的几何形状之间的最小距离。如果容忍是None, the geometries must be exactly identical to be considered equal. If the tolerance isAutomatic, a tolerance will be automatically computed based on the location of the input geometries. Additionally, a custom tolerance may be used. |
编辑变换器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来分配变压器参数。一些变压器也可提供更高级的功能,例如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击beside the applicable parameter. For more information, see变压器Parameter Menu Options。
Defining Values
有几种方法可以在变压器中定义使用的值。最简单的是简单地输入值或字符串,其可以包括各种类型的函数,例如属性引用,数学和字符串函数和工作区参数。有许多工具和快捷方式可以帮助构造值的值,通常可以从与值字段相邻的下拉上下文菜单中提供。
使用文本编辑器
文本编辑器提供了一种方便的方法来构建来自各种数据源的文本字符串(包括正则表达式),例如属性,参数和常量,其中结果直接在参数内使用。
使用算术编辑器
这Arithmetic Editor provides a convenient way to construct math expressions from various data sources, such as attributes, parameters, and feature functions, where the result is used directly inside a parameter.
条件值
根据通过或失败的一个或多个测试条件设置值。
Content
Expressions and strings can include a number of functions, characters, parameters, and more.
When setting values - whether entered directly in a parameter or constructed using one of the editors - strings and expressions containing String, Math, Date/Time or FME Feature Functions will have those functions evaluated. Therefore, the names of these functions (in the form @<function_name>)不应用作文字字符串值。
这些功能操纵和格式化字符串。 | |
特殊的角色 |
A set of control characters is available in the Text Editor. |
Math functions are available in both editors. | |
日期/时间函数 | Date and time functions are available in the Text Editor. |
这se operators are available in the Arithmetic Editor. | |
这些主要是特定于特征的值。 | |
可以使用FME和工作区的参数。 | |
Creating and Modifying User Parameters | Create your own editable parameters. |
Reference
处理行为 |
|
功能持有 |
是的 |
依赖性 | |
FME许可级别 | FME Base Edition and above |
别名 | 拓扑化器 |
历史 | |
类别 |
FME社亚搏国际在线官网区
这FME社亚搏国际在线官网区is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.
搜索all results about the TopologyBuilder关于FME社区。亚搏国际在线官网
Examples may contain information licensed under the Open Government Licence – Vancouver