GeometryValidator.
Detects selected issues in input features, and optionally repairs detected issues.每个输入功能都是单独处理的。
GeometryValidator是一个非常强大的变压器,适用于高级用户。帮助主题包括许多参考部分:
Input Ports
所有输入几何形状都被接受,但并非所有输入几何都会受到问题检测。一些几何形状仅支持表面(例如,点和线路将始终通过表面和固体问题的检测)。
目前不支持一些几何形状。如果功能仅包括当前不支持的几何形状,则将输出到Passed港口。如果a feature contains a geometry that is not currently supported, a once-per-session warning message will be printed in the log.
笔记:如果you discover aPassedfeature that is clearly invalid, check the log first to see whether that feature might contain a geometry that is not currently supported.
输出端口
When a feature is output through thePassed端口,它已通过问题检测。
如果通过输出功能Failedport, it has failed issue detection. Features are output from this port for three reasons:
- When尝试修复is set to不,此端口包含检测到选定问题的功能。
- When尝试修复is set toYes那this port contains features that could not be fully repaired. Whether a feature is fully repaired can be determined by observing the repair state attribute associated with reported issues. If any detected issue is reported as没有完全修复,然后将该功能整体被认为没有完全修复,并通过Failed港口。
- When尝试修复is set toYes,此端口可以包含残余功能。例如,修复自相交的甜甜圈可以产生从延伸超过外壳的孔的修复区域和多个残余区域。
要区分上述情况,请确保您指定aDetected Issue List Name。
This port is used only when尝试修复is set toYes。如果a feature is output onto the修好了port, at least one issue has been detected, and all detected issues have been repaired.
此端口输出点位置对应于所发现的问题Failed和修好了ports. Each location will have attributes explaining what issue it corresponds to, as well as the attributes of the original feature.
This port outputs the smallest part(s) of the geometry that show the issues found by theFailed和修好了ports. Each part will have attributes explaining what issue it corresponds to, as well as the attributes of the original feature.
Parameters
笔记:To fully understand the choices and information in these parameters, please refer to other sections of this help topic.
使用此参数快速选择多个相关问题。选择设置的问题时,在问题表中选择了相关问题。或者,要在表中选择自己的问题,请指定Custom。有关检测和修复问题的更多信息,请参阅问题下面和GeometryValidator问题表。
表列名称 | Description |
---|---|
Issue | 选择要检测或修复的问题。有关更多信息,请参阅问题下面和GeometryValidator问题表。 |
Parameters | Specify parameters specific to each selected issue. |
Repairable | 描述是否可以修复选定的问题。 |
Selected issues are detected in the order shown in theIssue柱子。可以通过突出显示问题,然后单击“问题表之外的小向上/向下箭头”来更改问题检测排序。
有关检测到和/或修复的问题的更多信息,请参阅GeometryValidator问题表。
Issue detection only occurs within geometries, including geometric properties such as text rotation and arc sweep angle. That means attributes,traits未处理几何名称和其他非几何属性。
具有几何形状的功能,无舒适的测试(如区域方向测试中的线特征)计数为PASS,没有尝试修复。
In general, input geometry types are preserved unless they cannot be.
例如,退化为点的弧不能仍然是弧形,同时是非退化的。所以,当问题Degenerate and Corrupt Geometriesis selected, and尝试修复is set toYes那the arc should be repaired into a point.
另外一个例子,一个甜甜圈,其中包含non-degenerate outer shell, a degenerate hole, and a non-degenerate hole can remain a donut after degeneracy repair. The donut simply drops the degenerate hole, and remains a donut.
如果输入几何包含多个问题,但仅检测到它们的子集并修复,期望未定义的行为。例如,如果仅用于退化和腐败的含有NaN(不是多数)的弧,则该弧中的NAN的数量可能会增加。作为另一个例子,如果您尝试修复退化几何形状中的自交叉,它可能会出现不同的几何类型并失去其坐标。
以下问题的检测和修复取决于没有其他问题:
Degenerate or Corrupt Geometries | no NaNs or infinities in input |
提示:为避免未定义的行为,选择退化或损坏的几何形状,并在选择2D中选择自交叉之前,包含NaN(不是数字)或无限位。 |
没有NAN,INFINICE,DEGERARACIE或输入中的损坏 |
不n-Planar Surfaces | no NaNs or infinities in input |
无效的扎实边界或者Invalid Solid Voids | no NaNs or infinities, duplicate consecutive coordinates, degeneracies or corruptions, or self-intersections within individual faces in input |
Invalid Solid Voids | no invalid solid boundaries |
修复以下问题可以产生其他问题:
包含NaN(不是数字)或无穷大 | 可以产生退化的产出 |
Degenerate or Corrupt Geometries | 可以产生自相交的输出 |
包含null几何部件 | 可以产生退化的产出 |
Duplicate Consecutive Points | 可以产生退化的产出 |
2D中的自交叉点 | 可以产生退化的产出 |
无效的扎实边界 | can produce degenerate faces in the boundary |
问题的推荐顺序检测部ilt into theIssue柱子。如果a different ordering is desired, highlight an issue, then click the up and down arrows on the right side of the issues table.
Tip:检测和修复的不同问题可能会导致输出几何形状更改。
如果尝试修复is set to不那NaNs and infinities will be detected.
如果尝试修复is set toYes那one of two operations will take place:
- 如果there is redundant information, such as in the case of arcs with end points, the redundant information will be used to compute replacement values for NaNs.
- 如果there is no redundant information, NaNs will be removed, which could trigger the removal of a coordinate or the conversion of the geometry to IFMENull.
For example, when尝试修复is set toYes那an arc containing a NaN rotation will be replaced with an IFMENull because there is no redundant information to recalculate the rotation. As another example, an arc that has NaNs in the end points can have its end points recalculated based on the center point and the arc properties.
如果尝试修复is set to不那IFMENull parts will be detected. Note that an IFMENull by itself is not considered a “part”. Only IFMENulls that are the children of some aggregate will be considered “parts”.
如果尝试修复is set toYes,IFENULL部件将被删除。
如果尝试修复is set to不,检测到连续重复点。
如果尝试修复is set toYes,连续重复点被删除。
如果检查z值is set to不,重复检测在2D中执行。
如果检查z值is set toYes,在3D中执行重复检测。
Parameters
When viewed in 2D (ignoring Z), a path (which may define the border of a polygon) may appear to be closed as shown in the left figure below. This same path, when viewed in 3D, may appear to be open as shown in the right figure below.
To specify how (and if) paths should be closed in 3D, select one of the listed modes.
模式 | Description | 例子 |
---|---|---|
Extend | 这Curve is extended so that all vertices are left at their original location. | |
平均数 | 未连接的后续顶点,但共享x和y值组合成一个顶点,其z值是原始两个的平均值。 | |
First Wins | Subsequent vertices that are not connected, but share an x and a y value are combined into one vertex, whose Z value is taken from the first encountered vertex. | |
Last Wins | 未连接的后续顶点,但共享x和y值组合成一个顶点,其z值从最后遇到的顶点取出。 | |
Ignore | z值忽略。没有更改节点连接的方式。 |
如果设置为汽车,基于几何部件的属性,将为每个几何部分自动计算公差值。如果设置为Custom,用户可以指定容差的属性或固定值。
这Toleranceparameter describes the maximum difference, in ground units, permitted between the explicit and implicit end points of an arc. If the difference exceeds this tolerance, an arc is flagged as corrupt. If the difference exceeds the tolerance but is as accurate as possible within the limits of numerical precision, an arc will not be considered corrupt.
如果尝试修复is set to不将检测到退化和腐败。退化几何形状是可以简化几何类型的几何图形。例如,具有0面积的多边形是退化的,并且可以简化到行,点或ifmull。对比度的损坏几何形状包含几何定义中的冲突,例如弧形的角度和端点不同意。
如果尝试修复is set toYes,退化和腐败组合修复。将这个问题分成两个问题并不有帮助。如果将退化的几何形状被修复到损坏的几何形状,反之亦然,则输出可能比输入更差。
As an example, a donut that contains a degenerate hole will become corrupt after the degenerate hole is repaired into a point in place. If you do not repair this point-hole corruption in the donut definition, the result would be a donut that is “sicker” than the input. The correct action is to remove the point-hole from the donut.
In the case of meshes, parts containing invalid indices will be detected. In the case of corrupt vertex normal or texture coordinate indices, only that information will removed from the corrupt part upon repair. If the vertex indices are corrupt, the invalid part will be deleted from the repaired mesh.
As a second example, a corrupt arc whose angles and endpoints mismatch may be repaired into a degenerate arc that is equivalent to a point. If you stopped there and output the degenerate arc, you could end up with more downstream issues than not repairing the arc at all. The correct action is to convert the arc into a point.
期望具有0曲率的弧将被替换为或抚摸到一行或点。具有端点的弧可能受到引起显式端点和隐式弧定义之间漂移的精度限制。下面的参数可用于控制在弧被标记为损坏之前容忍的端点漂移量。
Parameters
如果设置为Yes和if尝试修复is set toYes那then donuts that have a hole touching the outer boundary will have the hole added to the outer boundary. This will convert the outer boundary to a pinch polygon. This option will only affect donut holes touching the original outer boundary. The donuts that have been repaired may become donuts without holes, and thus become degenerate.
例子
下面的示例图说明了一个甜甜圈,孔触摸其左侧的外边界(甜甜圈区域)。如右(多边形区域)所示,将孔添加到甜甜圈的外边界。甜甜圈节点以红色编号序列示出,而孔以蓝色字母顺序序列示出。 |
When viewed in 2D (ignoring Z), a path (which may define the border of a polygon) may appear to be closed as shown in the left figure below. This same path, when viewed in 3D, may appear to be open as shown in the right figure below.
如果使用“修复”模式,则此参数指定选择自交叉位置的模糊Z值。当两行段共享x和y值时,会出现模糊的z值,但具有不同的z值。
模式 | Description | 例子 |
---|---|---|
Extend | 这Curve is extended so that all vertices are left at their original location. | |
平均数 | 未连接的后续顶点,但共享x和y值组合成一个顶点,其z值是原始两个的平均值。 | |
First Wins | Subsequent vertices that are not connected, but share an x and a y value are combined into one vertex, whose Z value is taken from the first encountered vertex. | |
Last Wins | 未连接的后续顶点,但共享x和y值组合成一个顶点,其z值从最后遇到的顶点取出。 | |
Ignore | z值忽略。没有更改节点连接的方式。 |
如果尝试修复is set to不,检测到自交叉点。
如果尝试修复is set toYes那an input geometry with self-intersections will be divided into a collection of geometry parts that do not contain self-intersections. For example, a figure-8 polygon that has a “waist size” of 0 will be repaired into an IFMEMultiArea of two polygons. As another example, meshes, triangle strips and triangle fans will be repaired into composite surfaces.
Expect self-intersections to be detected in x and y only.
Duplicate coordinates (duplicate in x and y) are considered self-intersections and are reported as such. Duplicate consecutive coordinates are reported as a single self-intersection point.
脸部旋转到X-Y平面上,在X和Y中自相交,然后取消旋转。
在每部分(或每面部)的基础上测试聚集体,复合表面,网格,三角形条和三角风扇,但是该部件不是彼此自相交的。甜甜圈孔和环彼此自相互交叉。例如,如果复合表面具有自相交的脸部,则它将通过该面部输出Failed或者修好了港口。如果a composite surface has two faces that intersect each other but do not self-intersect on their own, the composite surface will be output via thePassed港口。
Self-intersections are reported via。locationtraits. When self-intersections are detected, but no self-intersection points are available for reporting, the transformer reports a nearby location.
如果尝试修复is set to不那non-planar faces and surface parts, such as mesh parts or parts of a composite surface, will be detected. A non-planar face or surface part does not have all of its vertices on the same plane in 3D space.
如果尝试修复is set toYes那non-planar faces and surface parts will be triangulated.
还要检查面积
如果设置为不那this check will output all areas through thePassed港口。如果设置为Yes,此检查将根据其平面度确定区域的输出端口。
厚度模式
如果设置为自动的那thickness values will be automatically calculated for each geometry part. If set toCustom,用户可以指定厚度的属性或固定值。如果设置为Ignore那the thickness check will be ignored.
Thickness
这Thicknessparameter describes the maximum “thickness” a face can have before it is considered non-planar. SeeFaceReplacer。
Angular Mode
如果设置为自动的那surface normal deviation values will be automatically calculated for each geometry part. If set toCustom,用户可以指定表面正常偏差的属性或固定值。如果设置为Ignore,将忽略表面正常偏差检查。
表面正常偏差(degrees)
这表面正常偏差parameter describes the maximum deviation between the average surface normal of a face and the surface normals resulting from a triangulation of that face, before it is considered non-planer. SeeFaceReplacer。
可以检测以下问题:
- 表面投影无效
- 不t a Valid 2-Manifold
- 表面未关闭
- 悬空面孔
- Face Orientation, Incorrect Edge Usage
- 免费面孔
- 表面自相交
- 目录未使用
- 表面法线,取向不好
- 没有足够的面孔
如果没有检测到问题,则将通过该问题输出实心几何形状Passed港口。非正式地,APassed固体边界是防水,非自相交,正确的定向。
如果尝试修复is set to不那the above family of issues will be detected within solid geometries.
如果尝试修复is set toYes那solid geometries with unclosed boundaries, inside-out orientation, or free faces will be repaired. Unclosed solid boundaries will be repaired by filling the disconnected regions in the boundary with triangles. All input solids will first be triangulated. Inside out orientations will be fixed by reversing the surface normal of all faces that compose the solid. If翻转外观is set toYes,每张面的外表也将切换侧面,否则外观不会移动。通过移除不连接到最大连接面的面孔的面部,将修复自由面的边界。
A void is a cavity, or an empty region within a solid, and is defined by an inner boundary. A solid is defined by an outer boundary and a number of inner boundaries.
可以检测以下问题:
- 贝壳脸相邻
- Shell Interiors Intersect
- 外壳外壳外壳
- Interior of Shell Not Connected
如果没有检测到问题,则通过该问题输出实心几何形状Passed港口。非正式地,APassed固体是具有内边界的固体,其在外边界中完全纳入,并且没有彼此相交的边界。
Tip:未检测到边界中的自交叉。要检测和修复边界中的自交叉点,请选择无效的实体边界。
如果尝试修复is set to不那the above family of issues will be detected within solid geometries.
如果尝试修复is set toYes,将通过从外边界中减去空隙来修复具有这些问题的实心几何形状。如果修复的固体是空集,则原始固体将输出到Failed港口并获得一个。repair_state的没有完全修复。
输入几何形状将根据OGC标准进行评估。
Seehttp://www.opengeposatial.org/standards/sfa.for more information.
对于OGC有效检查,OGC版本参数指定要使用的标准的哪个版本。
如果a geometry is determined to be OGC simple/valid, it will be output via thePassed港口。否则它将通过Failed港口。
笔记:When Fails OGC Simple or Fails OGC Valid is enabled,aggregate geometriesare treated as OGC GeometryCollections, andmultis被视为OGC Multis。
一些几何形状,例如网格和面部,支持外观。这些几何形状可以形成复杂表面和固体的一部分。在某些情况下,这些外观可能具有与它们相关联的基于光栅的纹理。如果是这种情况,那么相应的几何形状也需要具有纹理坐标。没有纹理坐标,例如,在可视化时,有关如何在几何体上渲染纹理的信息。
丢失纹理坐标并在批量中报告。也就是说,无论具有缺失纹理坐标的顶点数量,每个几何都仅报告一个这样的顶点。
如果尝试修复is set to不检测到缺少缺少纹理坐标。
如果尝试修复is set toYes,每个具有至少一个缺失纹理坐标的几何图形都将重新计算其所有纹理坐标。没有缺失纹理坐标的几何形状未经修改。例如,如果固体具有6个面,其中一个是缺少纹理坐标,则不会修改6个面中的5个,并且6的1个将具有其纹理坐标重新计算。当计算缺少纹理坐标时,整个纹理均匀地覆盖到几何体上,纹理朝着几何形状的表面法线的方向上覆盖。
未检测到没有正常的顶点并在散装中报告。也就是说,无论具有缺少法线的顶点数量,每个几何都仅报告一个这样的顶点。
如果尝试修复is set to不检测到缺少的顶点正常。
如果尝试修复is set toYes,每个具有至少一个正常丢失的几何形状将具有其所有正常的重新计算。每个计算的顶点正常相当于顶点所属的脸的正常情况。对于网格,新计算的法线将存储在其正常池中。对于其他表面,措施命名fme_vertex_normal_x.那fme_vertex_normal_y., 和fme_vertex_normal_z.那will be used to store the vertex normals. Rectangle faces will be repaired into faces. Triangle strips and triangle fans will be repaired into composite faces.
Areas, such as polygons, ellipses, and donuts, have an orientation. Their orientation can be either left-handed, right-handed or invalid. A left-handed orientation means the area's outer boundary has its vertices arranged in a counterclockwise direction, and the holes have their vertices in a clockwise direction. In a right-handed orientation, the area's outer boundary has its vertices arranged in a clockwise direction, and the holes have their vertices in a counterclockwise direction. An example of an invalid area, would be a donut, whose inner and outer rings are all right-handed, or all left-handed.
如果尝试修复is set to不然后,将检查所有区域的方向。选择Left对于模式,将检查所有区域是否遵循左侧规则。选择正确的for the mode will check if all areas follow the right-hand rule. SelectingValidwill check that each area is either left handed, or right handed.
此检查不会产生有意义的结果,以便对其取向模糊,例如图8边界,或没有坐标的多边形来产生有意义的功能。
如果尝试修复is set toYes那all areas will be forced to the specified mode.
Detected issues will be reported within Attribute lists and Trait lists. These lists will have the same name, which is the value of this parameter. If this list name is left empty, no detected issues will be reported.
问题位置全部被报告为当地坐标,而不是世界坐标。
Issue attributes and traits do not accumulate through multiple GeometryValidators. In fact, the first operation GeometryValidator performs is to remove existing issue attributes and traits that collide with the specifiedDetected Issue List Name。即使没有选择任何问题,也会发生此删除。
笔记:List attributesare not accessible from the output schema in Workbench unless they are first processed using a transformer that operates on them, such aslist exploder.或者ListConcateator。所有列表属性转换器都显示在变压器帮助的内容窗格中Lists。或者,attributeexposer.can be used.
笔记:To preserve existing issue attributes and traits reported by an upstream GeometryValidator, modify Detected Issue List Name.
如果此参数设置为Yes那detected issues will either be fully repaired, in which case the feature would be output to the修好了端口,或未完全修复,在这种情况下,该功能将至少获得一个。repair_state的没有完全修复并被输出到Failed港口。
如果选择了一个问题进行修复,则可以预期主要(而不是剩余的)输出功能将拥有所选问题的所有发生,或增益。repair_state的没有完全修复。For example, ifSelf-Intersection in 2Dis selected with尝试修复调成Yes那the primary output feature can be expected to be free of self-intersections.
如果此参数设置为不,未检测到的问题将不会被修复,并且通过检测到的问题的功能将通过该功能输出Failed港口。
笔记:您可以通过设置预览问题修复尝试修复至不。However, this preview will only align with the actual repair if you select exactly one issue to detect, or if you select a set of independent issues.
When尝试修复is set toYes那it is possible for a geometry part to become incompatible with its container geometry after repair. In some cases, these geometry parts are removed or output as remnants. In other cases, these geometry parts are kept, and their container geometries change geometry types, so that the parts and the container become compatible again.
这是一个容器几何形状列表,其不兼容的部件被移除或输出为残余物:
- IFMEDonut
- IFMEBRepSolid
- ifmepath.
- IFMEMesh
- ifmecompositeSurface.
- ifmeCompositeSolid.
以下是将更改类型以适应其不兼容的部件的容器几何图数列表:
- IFMEMultiArea
- ifmemulticurve.
- IFMEMultiPoint
- ifmemultisurface.
- ifmemultisolid.
- ifmemultitext.
- IFMETriangleStrip
- ifmetrianglefan.
- IFMEMesh
第一个容器几何形状列表时出现异常Degenerate or Corrupt Geometriesis selected and尝试修复is set toYes。在这种情况下,如果在删除所有退化和损坏后容器几何形状变为空,则将输出一个不相容的修复部分之一作为修好了特征。
SeeFME Geometry Model有关几何类型的更多信息。
如果the Summary Mode is set toDetailed然后将在特质水平和属性级别报告信息。
当特质水平,报告了六条信息:
信息 | Required/Optional | Description |
---|---|---|
。数数 | Required | 报告问题的出现次数。 |
。issue_found | Required | 报告检测到的问题。 |
。repair_state | 可选的 | 区分残余物,而不是完全修复的特征和几何形状。如果特征或几何图形通过问题检测或变得完全修复,则未设置此属性或特征,因为在这些情况下将其设置为不必要地捕获的重复信息。 |
。location_sample | 可选的 | 报告检测问题的位置。 |
.supplementary_info. | 可选的 | 报告有关此问题的其他信息。 |
.supplementary_info.{0..n} | Required | 报告关于该问题的特定事件的额外信息。它可以报告三条信息: .count(可选):在问题的特定发生中报告事件的数量。例如,这可以用于报告特定位置处的重复点数。 。details (required): reports the issue subcase for a specific occurrence. If there are no subcases for an issue, this value will default to Miscellaneous. 。location (optional): reports the location of a specific occurrence of the issue. |
Attribute Level
当Attribute level,报告了五条信息:
信息 | Required/Optional | Description |
---|---|---|
。数数 | Required | 报告几何中所有部分的问题的总次数。 |
。issue_found | Required | 报告检测到的问题。 |
。repair_state | 可选的 | 区分残余物,而不是完全修复的特征和几何形状。如果特征或几何图形通过问题检测或变得完全修复,则未设置此属性或特征,因为在这些情况下将其设置为不必要地捕获的重复信息。 |
。location_sample | 可选的 | 报告检测问题的位置。 |
.supplementary_info.{0..n} | Required | 报告关于该问题的独特子类别的信息。它可以报告三条信息: 。数数(required) Reports the total number of occurrences of the supplementary_info across the geometry. .details(必填):报告特定事件的问题子组。如果没有问题,则此值将默认为杂项。 .Location_sample(可选):报告检测到补充_Info的位置。 |
这Attribute level list is intended as a summary of the Trait level lists. Since degenerate geometries may be removed upon repair, the Attribute level list may sometimes have more information in it than what is present on the Traits of the final geometries.
如果the Summary Mode is set toBrief没有什么会报道,在特征层面,和no supplementary_info will be reported at the Attribute level.
如果the Summary Mode is set to不ne,据报道,什么都没有。
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来分配变压器参数。一些变压器也可提供更高级的功能,例如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击除适用的参数旁边。有关更多信息,请参阅Transformer Parameter Menu Options。
变压器类别
FME Licensing Level
FME Desktop edition and above
Search FME Knowledge Center
搜索这个tran样品和信息sformer on theFME知识中心。
标签关键词:几何形式换网机几何特定方法Mender Fixer Nanremover InfinityRemover NULLREMOVER IFMENULLREMOVER PEREFERYRYPAREPARER DEGENERYGEORTRERERERER MESHNORMARREPAIRER FeatureValidator GeometRypairer FeatureCleaner GeometRyogCValidator SelfInterscorto ogc-simple-valid重复损坏的自我相交的自交叉损坏的错误数据修复修复错误数据