GeometryValidator
检测输入功能选择的问题,并且任选地修理检测到的问题。每个输入特征被单独处理。
该GeometryValidator是一个非常强大的变压器,适用于高级用户。帮助主题由若干参考部分:
输入端口
所有输入的几何形状接受,但不是所有的人都受到出具检测。某些几何形状只是表面支持(例如,点和线将总是传递表面和固体问题检测)。
目前不支持一些几何形状。如果一个功能仅由目前不支持的几何形状,这将是输出到通过了港口。如果某个特性包含当前不支持的几何图形,则将在日志中打印每个会话一次的警告消息。
注:如果你发现通过了显然无效的特性,请首先检查日志,以确定该特性是否包含当前不支持的几何图形。
输出端口
属性输出某个特性时通过了端口,它已经通过问题检测。
如果某个特性是通过失败的端口,它已经失败的问题检测。这个端口输出的特性有三个原因:
- 什么时候尝试修复被设置为不,该端口包含在其中的某些问题被检测功能。
- 什么时候尝试修复被设置为是,该端口包含无法被完全修复功能。无论是功能完全修复,可以通过观察与报告的问题相关的维修状态属性来确定。如果任何检测到的问题报告为未完全修复,则该功能作为一个整体将被视为未完全修复,并通过失败的港口。
- 什么时候尝试修复被设置为是,此端口可以包含残余特征。例如,修复自相交的甜甜圈可能会从延伸到外壳之外的孔中产生修复区域和许多残留区域。
要区分上述情况,请确保指定a检测到的问题列表名称。
此端口仅在以下情况下使用尝试修复被设置为是。如果一个特性被输出到修理端口,至少检测到一个问题,所有检测到的问题都已修复。
参数
注:为了全面了解这些参数的选择和信息,请参阅本帮助主题的其他部分。
使用此参数可快速选择多个相关问题。在选择问题集时,将在问题表中选择相关问题。或者,要在表中选择您自己的问题,请指定自定义。有关问题的检测和修复的更多信息,请参见问题下面,GeometryValidator问题表。
表列名 | 说明 |
---|---|
问题 | 选择要检测或修复的问题。欲了解更多信息,请参阅问题下面,GeometryValidator问题表。 |
参数 | 指定特定于每个选定问题的参数。 |
可修复的 | 描述是否可以修复选定的问题。 |
方法中显示的顺序检测所选问题问题柱。通过突出显示一个问题,然后单击问题表外的小向上/向下箭头,可以更改问题检测顺序。
有关检测和/或修复的问题的详细信息,请参阅GeometryValidator问题表。
问题检测只发生的几何形状内,包括几何性质,例如文本旋转和弧形扫掠角。这意味着属性,特征,几何名和其它非几何性质不被处理。
用几何特征不适应的测试(如线在区域定位测试功能)算作一通,没有修复尝试。
在一般情况下,输入几何类型被保留,除非它们是不可能的。
例如,退化为一个点的圆弧不能保持电弧,并在同一时间可以是非简并的。所以,当问题退化和损坏的几何被选择,并且尝试修复被设置为是,电弧应修复成一个点。
作为另一个例子,它包含一个非简并外壳甜甜圈,简孔,和一个非退化孔可以保持简并修复后圆环。甜甜圈简单地丢弃退化孔,并保持一个环形。
如果输入几何包含多个问题,但被检测和修理只是其中的一个子集,预期不确定的行为。例如,如果正在修理只对简并性和腐败含有NaN(非数字)的圆弧,的NaN在弧的数量可能增加。再举一个例子,如果你试图修复自相交的几何退化,它可能拿出一个不同的几何类型和失去坐标。
以下问题的检测和修复依赖于没有其他问题:
退化或损坏的几何图形 | 输入中没有NaNs或无穷大 |
提示:要避免未定义的行为,请选择退化或损坏的几何图形,并在二维中选择自相交之前包含NaN(不是数字)或无穷大。 |
输入中没有NaN、无穷大、退化或损坏 |
非平面表面 | 输入中没有NaNs或无穷大 |
无效的实体边界要么无效的固体空洞 | 输入中的各个面内没有NaN或无穷大、重复的连续坐标、退化或损坏或自相交 |
无效的固体空洞 | 没有无效的实体边界 |
修复了以下问题可以产生其他问题:
包含NaN(不是数字)或无穷大 | 会产生退化输出 |
退化或损坏的几何图形 | 可以产生自交输出 |
包含零几何部件 | 会产生退化输出 |
连续重复的点 | 会产生退化输出 |
在2 d Self-Intersections | 会产生退化输出 |
无效的实体边界 | 可以在边界中生成退化的面 |
问题来检测的推荐顺序是内置到问题柱。如果一个不同的排序是需要的,突出的问题,然后单击向上和向下箭头上的问题表的右侧。
注:小费:的问题有不同的排序,以检测和修复可能导致输出的几何形状改变。
如果尝试修复被设置为不,则会检测到NaNs和无穷大。
如果尝试修复被设置为是,以下其中一项行动将会进行:
- 如果存在冗余信息,例如在带有端点的圆弧的情况下,冗余信息将用于计算NAN的替换值。
- 如果没有多余的信息,nans将被删除,这可能会触发坐标的删除或几何图形到ifmenull的转换。
例如,当尝试修复被设置为是,包含NaN旋转的弧将被IFMENull替换,因为没有多余的信息来重新计算旋转。再举一个例子,一个弧的端点有NaNs,可以根据中心点和弧的属性重新计算它的端点。
如果尝试修复被设置为不,如有零件会被检测到。注意,IFMENull本身并不被认为是“部分”。只有当某个集合的子集合是menull时,才会被认为是“部分”。
如果尝试修复被设置为是,如有零件将被移除。
如果尝试修复被设置为不,则检测到连续重复点。
如果尝试修复被设置为是,删除连续重复的点。
如果检查Z值被设置为不,重复检测2D执行。
如果检查Z值被设置为是,重复检测以3D方式进行。
参数
在二维视图(忽略Z)中查看时,路径(可能定义多边形的边界)可能会显示为闭合,如下图所示。在三维视图中查看时,该路径可能显示为打开状态,如下图所示。
若要指定如何(以及是否)在三维中关闭路径,请选择列出的模式之一。
模式 | 说明 | 例子 |
---|---|---|
扩展 | 曲线将被延伸,以便所有顶点都留在其原始位置。 | |
平均 | 未连接但共享x和y值的后续顶点将合并为一个顶点,其z值是原始两个顶点的平均值。 | |
第一场胜利 | 未连接但共享x和y值的后续顶点合并为一个顶点,其z值取自第一个遇到的顶点。 | |
最后的胜利 | 未连接但共享x和y值的后续顶点合并为一个顶点,其z值取自最后遇到的顶点。 | |
忽略 | 忽略Z值。节点的连接方式没有改变。 |
如果设置为汽车,将根据几何图形零件的特性自动计算每个几何图形零件的公差值。如果设置为自定义,用户可以指定公差的属性或固定值。
该公差参数描述在弧的显式和隐式端点之间允许的地面单位的最大差异。如果差异超过此公差,则会将圆弧标记为损坏。如果差值超过公差,但在数值精度范围内尽可能精确,则不会认为圆弧已损坏。
如果尝试修复被设置为不,简并和腐败将被发现。退化几何是几何类型可以简化的几何。例如,面积为0的多边形是退化的,可以简化为直线、点或IFMENull。相反,一个损坏的几何图形在几何定义中包含冲突,例如一个弧的角度和端点不一致。
如果尝试修复被设置为是,简并和腐败一起被修复。把这个问题分成两个部分是没有帮助的。如果一个退化的几何图形被修复成一个损坏的几何图形,或者相反,输出可能会比输入更糟糕。
例如,含有简并孔的甜甜圈在修复到某个位置后会发生腐败。如果不修复甜甜圈定义中的点孔损坏,结果将是一个比输入“更糟糕”的甜甜圈。正确的做法是从甜甜圈上取下点孔。
在网格的情况下,包含无效索引的部分将被检测到。在损坏顶点法线或纹理坐标索引的情况下,只有那些信息将从损坏的部分修复后删除。如果顶点索引损坏,无效的部分将从修复后的网格中删除。
作为第二个例子,一个角和端点不匹配的腐败弧可以修复成一个退化的弧,相当于一个点。如果你停止在那里和输出退化的弧,你可以结束更多的下游问题比不修复弧在所有。正确的做法是把弧转换成一个点。
期望曲率为0的弧将被一条线或一个点所代替,或被描入。具有端点的弧可能受到精度限制,从而导致显式端点和隐式弧定义之间的偏移。以下参数可用于控制在电弧被标记为损坏之前可容忍的端点漂移量。
参数
如果设置为是如果尝试修复被设置为是,则有孔接触外边界的甜甜圈将有孔添加到外边界。这会将外部边界转换为收缩多边形。此选项仅影响接触原始外部边界的圆环孔。修复后的甜甜圈可能会变成没有洞的甜甜圈,从而退化。
例子
下面的示例图说明了一个甜甜圈,其左侧的外边界(甜甜圈区域)有一个孔。该孔将添加到甜甜圈的外部边界,如右侧所示(多边形区域)。甜甜圈节点以红色编号的顺序显示,而孔则以蓝色字母顺序显示。 |
在二维视图(忽略Z)中查看时,路径(可能定义多边形的边界)可能会显示为闭合,如下图所示。在三维视图中查看时,该路径可能显示为打开状态,如下图所示。
若要指定如何(以及是否)在三维中关闭路径,请选择列出的模式之一。
模式 | 说明 | 例子 |
---|---|---|
扩展 | 曲线将被延伸,以便所有顶点都留在其原始位置。 | |
平均 | 未连接但共享x和y值的后续顶点将合并为一个顶点,其z值是原始两个顶点的平均值。 | |
第一场胜利 | 未连接但共享x和y值的后续顶点合并为一个顶点,其z值取自第一个遇到的顶点。 | |
最后的胜利 | 未连接但共享x和y值的后续顶点合并为一个顶点,其z值取自最后遇到的顶点。 | |
忽略 | 忽略Z值。节点的连接方式没有改变。 |
如果尝试修复被设置为不,检测自交点。
如果尝试修复被设置为是,具有自交点的输入几何图形将被划分为不包含自交点的几何图形部件集合。例如,一个“腰围”为0的8字形多边形将被修复为两个多边形的IFMEMultiArea。另一个例子,网格,三角形带和三角形风扇将修复成复合表面。
期望只在x和y中检测到自交点。
重复坐标(复制在x和y)被认为是自交和报告本身。重复连续坐标报告为一个自交点。
面被旋转到x-y平面,自相交中的x和y,然后未旋转。
聚集体,复合材料表面,网格,三角形条带,且三角形扇针对每个部分(或每面)的基础上自相交进行测试,但是部分不自相交彼此抵靠。甜甜圈洞和戒指是自相交反目成仇。例如,如果复合表面具有面,自我交叉,这将是经由输出失败的要么修理港口。如果复合材料表面有两个面相互交叉,但不要对自己自身相交,复合材料表面会通过输出通过了港口。
自相交通过报道.位置特征。当检测到自相交,但是没有自我交叉点可用于报告,变压器报告附近的位置。
如果尝试修复被设置为不的,非平面的面与表面的零件,如网眼部分或复合表面的部分,将被检测到。非平面的面或表面部分不具有所有其顶点在三维空间中的同一平面上。
如果尝试修复被设置为是的,非平面的面与表面部分将进行三角测量。
同时检查区域
如果设置为不,该检查将通过输出的所有地区通过了港口。如果设置为是此项检查将决定基于其平面面积的输出端口。
厚度模式
如果设置为自动,厚度值将被自动计算每个几何部分。如果设置为自定义中,用户可以指定属性或厚度的固定值。如果设置为忽略,厚度检查将被忽略。
厚度
该厚度参数描述了最大“厚度”可以认为是非平面的前一个面可以有。看到FaceReplacer。
角模式
如果设置为自动,表面法线的偏差值将自动计算每个几何部分。如果设置为自定义中,用户可以指定属性或对于表面法线偏差的固定值。如果设置为忽略,表面正常偏差检查将被忽略。
表面正常偏差(度)
该表面法向偏差参数描述了平均表面法线的面的,并从该面的三角测量得到的表面法线之间的最大偏差,可以认为非平面之前。看到FaceReplacer。
的问题以下的家庭可以检测:
- 曲面投影无效
- 不是有效的2流形
- 表面未闭合
- 悬垂的脸
- 面方向,边缘使用错误
- 自由面
- 曲面自交
- 未使用顶点
- 曲面法线,方向错误
- 没有足够的脸
如果没有检测到问题,一个立体几何将通过输出通过了港口。通俗地说,一通过了固体边界是防水的,非自相交和方向正确。
如果尝试修复被设置为不,上述的问题,家人将实体几何内被检测到。
如果尝试修复被设置为是与未封闭的边界,由内向外的方向,或自由面实体几何将被修复。未封闭的固体边界将通过与三角形的边界填充所述断开区域进行修复。所有输入固体将首先三角。内向外的方向将通过反转表面法线构成该固体的所有面的固定。如果翻转外观被设置为是,每个面也将换边的出现,否则出场不会移动。与自由面的边界将通过去除不连接到面的最大连接集中的面进行修复。
甲空隙的空腔,或内的固体的空区域,并且由内边界限定。固体由外边界和多个内边界的定义。
的问题以下的家庭可以检测:
- 壳面相邻
- 外壳内部相交
- 内壳外壳
- 外壳内部未连接
如果没有检测到问题,立体几何将通过输出通过了港口。通俗地说,一通过了固体是与外边界内完全驻留和无边界的彼此相交内边界固体。
注:小费:没有检测到边界自相交。为了检测并修复边界自相交,请选择无效固体边界。
如果尝试修复被设置为不,上述的问题,家人将实体几何内被检测到。
如果尝试修复被设置为是,这些问题固体几何形状将通过从外边界减去空隙被修复。如果修复的固体是空集,原始固体将被输出到失败的端口和增益.修复状态的未完全修复。
输入几何形状将根据OGC标准进行评价。
看到http://www.opengeospatial.org/standards/sfa欲获得更多信息。
如果几何被确定为简单OGC /有效,这将是经由输出通过了港口。否则,它会通过输出失败的港口。
注:注意:当失败OGC简单或失败OGC有效启动,骨料几何形状被视为OGC GeometryCollections,和多声道被视为OGC音色。
一些几何形状,如网格和面,支持露面。这些几何形状可以形成复杂的曲面和实体的一部分。在某些情况下,这些外表可有与它们相关的基于光栅纹理。如果是这样的话,那么还需要对相应的几何形状有纹理坐标。没有纹理坐标,也没有对如何可视化它的时候,比如上呈现几何纹理的足够信息。
检测并批量报失纹理坐标。也就是说,无论顶点的缺失纹理坐标的数量,只有一个这样的顶点每个几何报道。
如果尝试修复被设置为不,检测缺失纹理坐标。
如果尝试修复被设置为是,每一个具有至少一个缺少纹理坐标将其所有的纹理坐标几何重新计算的。没有丢失纹理坐标的几何形状保持不变。例如,如果一个固体具有6个面,其中一个缺少纹理坐标,然后5的6个面的将不被修改,并且6的1将具有其纹理坐标重新计算的。当计算缺少纹理坐标,整个纹理悬垂到几何形状和纹理在表面法线的几何形状的方向遮盖。
而不法线顶点被检测和在散装的报道。也就是说,无论顶点的缺失法线的数量,只有一个这样的顶点每个几何报道。
如果尝试修复被设置为不,检测缺失顶点法线。
如果尝试修复被设置为是,每一个至少有一个正常缺少几何图形将其所有的法线重新计算。每个顶点计算法线是相当于正常,该顶点所属的脸。对于网格,新计算的法线将被存储在其正常的水池里。对于其他表面,这些措施命名顶点法向量,顶点法向和顶点法向,将被用来存储顶点法线。矩形面将被修复成面。三角形条带和三角形扇将被修复成复合面。
领域,如多边形,椭圆形,和甜甜圈,有一个方向。其方向可以是左手,右手或无效。左手定向装置的区域的外部边界具有布置在逆时针方向上它的顶点,并且孔具有其顶点在顺时针方向。在右手方向,该地区的外部边界布置成沿顺时针方向的顶点,而洞中有其顶点以逆时针方向。一个无效区域的例子,将是一个圆环,其内环和外环都右旋或所有左撇子。
如果尝试修复被设置为不,那么所有领域的方向将被检查。选择左对于模式将检查所有领域遵循左手定则。选择对吗?对于模式将检查所有领域遵循右手定则。选择有效会检查每个区域或者是左手或右手。
这种检查不会产生退化的功能,其方向是模糊的,如数字8的边界,或没有坐标的多边形有意义的结果。
如果尝试修复被设置为是,所有区域将被强制指定的模式。
检测到的问题将属性列表和特质名单内报告。这些列表将具有相同的名称,它是这个参数的值。如果该列表名称为空,没有检测到的问题将被报告。
发行地点都报告为本地坐标,而不是世界坐标。
问题的属性和特质不通过多个GeometryValidators积累。事实上,第一操作GeometryValidator执行被删除现有的问题属性,并与指定的碰撞特性检测到的问题列表名称。这需要去除即使没有问题,选择的地方。
注:属性列表不是从工作台输出模式访问,除非他们使用的是对他们工作的变压器,比如先处理ListExploder要么ListConcatenator。所有属性列表中的变压器都显示在变压器帮助下的内容窗格清单。或者,AttributeExposer可以使用。
注:保留现有问题的属性和由上游GeometryValidator报道特点,修改检测到的问题列表名称。
如果这个参数设置为是,检测到的问题将要么被完全修复,在这种情况下,特征将被输出到所述修理端口,或不完全修复,在这种情况下,特征将获得的至少一个.修复状态的未完全修复和被输出到失败的港口。
如果被选择用于修理一个单一的问题,可以预期的是初级(相对于剩)输出功能将要么所选择的问题的所有出现修理或获得.修复状态的未完全修复。例如,如果二维自相交选择具有尝试修复调成是中,主输出功能可以被预期为自由自相交的。
如果这个参数设置为不,检测到的问题将不被修复,并与检测到的问题的特征将通过输出失败的港口。
注:您可以通过设置预览修复的问题(例如,检测的问题)尝试修复至不。然而,这个预览与实际维修对齐,如果你选择只有一个问题进行检测,或者如果你选择了一组独立的问题。
什么时候尝试修复被设置为是,这是可能的几何部分,成为与修复后的容器形状不兼容。在一些情况下,这些几何形状部分被去除或输出作为残余。在其他情况下,这些几何部分保持和他们的容器几何形状变化几何类型,使得这些部件和容器再次成为兼容。
下面是容器的几何形状,其不相容部分被去除或输出作为残存的列表:
- 伊夫梅多努
- ifmebrepsolid公司
- ifmepath公司
- 伊夫梅内斯
- IFM复合表面
- 干扰素复合物
下面是容器的几何形状会改变类型,以适应其不兼容的部分名单:
- ifmemultial地区
- ifmemulticure曲线
- ifmemultipoint公司
- ifmemultisface公司
- ifmemultisolid公司
- ifmemultext语言
- ifmetrianglestrip公司
- ifmetrianglefan公司
- 伊夫梅内斯
有一个例外容器几何图形时的第一个列表退化或损坏的几何图形被选择并尝试修复被设置为是。在这种情况下,如果毕竟简并和损坏已被移除,则该不兼容的修复部分的一个将作为输出的容器的几何形状变空修理特征。
看到FME几何模型对于几何类型的详细信息。
如果摘要模式设置为详细的然后在特征层和属性层报告信息。
在特质层次,报告了六条信息:
信息 | 必需/可选 | 说明 |
---|---|---|
.计数 | 要求的 | 报告问题出现的次数。 |
.发现问题 | 要求的 | 报告检测到的问题。 |
.修复状态 | 可选的 | 区分残余和未完全修复的特征和几何结构。如果特征或几何体通过问题检测或完全修复,则不会设置该属性或特征,因为在这些情况下设置该属性或特征将提供重复信息,从而不必要地扰乱报告。 |
.位置样本 | 可选的 | 报告检测到问题的位置。 |
.补充信息 | 可选的 | 报告有关此问题的其他信息。 |
。补充信息{0..n} | 要求的 | 报告有关问题的特定事件的额外信息。它可以报告三条信息: .count(可选):报告问题特定事件中的事件数。例如,这可用于报告特定位置上重复点的数量。 。详细信息(必需):报告特定事件的问题子类别。如果没有问题的子类别,则此值将默认为“杂项”。 。位置(可选):报告特定问题发生的位置。 |
属性级别
在属性级别,报告了五条信息:
信息 | 必需/可选 | 说明 |
---|---|---|
.计数 | 要求的 | 报告问题在几何图形所有部分出现的总数。 |
.发现问题 | 要求的 | 报告检测到的问题。 |
.修复状态 | 可选的 | 区分残余和未完全修复的特征和几何结构。如果特征或几何体通过问题检测或完全修复,则不会设置该属性或特征,因为在这些情况下设置该属性或特征将提供重复信息,从而不必要地扰乱报告。 |
.位置样本 | 可选的 | 报告检测到问题的位置。 |
…子问题{0..n} | 要求的 | 报告关于问题的唯一子案例的信息。它可以报告三条信息: .count (required)报告在整个几何图形中出现的子问题的总数。 .details (required):报告特定事件的问题子案例。如果没有问题的子类别,则此值将默认为“杂项”。 .location_sample(可选):报告检测到sub_issue的位置。 |
属性级列表用作特征级列表的摘要。由于退化几何体可以在修复时移除,因此属性级列表中的信息有时可能比最终几何体特征上的信息更多。
如果摘要模式设置为简短的,n个其他问题将在特征级别报告,属性级别不报告任何子问题。
如果摘要模式设置为无,不会有任何报告。
编辑变压器参数
使用一组菜单选项,变压器参数可以通过引用在工作区中的其它元件来分配。更先进的功能,如高级编辑,算术编辑,也是一些变压器可用。要进入这些选项的菜单上,单击适用的参数旁边。欲了解更多信息,请参阅变压器参数菜单选项。
变压器分类
FME许可级别
FME桌面版及以上
搜索FME知识中心
搜索样品和有关该变压器上的信息FME知识中心。
标签关键词:GeometryRepairer GeometryCleaner修理工定影液NaNRemover InfinityRemover NullRemover IFMENullRemover GeometryTypeRepairer DegenerateGeometryRepairer CorruptGeometryRepairer MeshNormalRepairer FeatureValidator FeatureRepairer FeatureCleaner GeometryOGCValidator DuplicateCoordinateRemover SelfIntersector OGC-简单OGC-有效重复的损坏自相交损坏的不正确的错误数据修复修复坏数据