第8页
第4排
当几何体在特征中有一个或多个顶点多次出现时,会出现重复顶点(重复点)。重复顶点是那些具有相同x,y,和z坐标值,到数据中存在的小数位数。
重复顶点不仅是低质量数据的标志,它们也可能是数据格式问题。某些格式允许重复顶点(例如,MicroStation DGN允许零长度线),而其他格式禁止重复顶点(例如Oracle Spatial)。
复制顶点可能在几何体中按顺序出现(例如,A、B、C、C、D、E)或可能出现顺序错误(A、B、C、D、C、E)。可能只复制一次(A、B、C、C、D)。或者可能重复多次(A、B、C、C、C、D、C、E、C)。
当然,有时重复顶点是有效的;例如,如果要正确闭合多边形的起点和终点(A、B、C、D、E、A),则多边形的起点和终点应相同,有时线性特征应环绕并重新连接中点(A、B、C、D、E、C);因此,仅仅在这个基础上识别无效的特性并不总是容易的。
有各种FME变换器可用于识别重复顶点,但是一些变压器——或者变压器的组合——将比其他变压器更有效。
一般来说,几何验证器的使用频率更高,因为连续的重复顶点是一个更明显的问题。
然而,coordinatextractor更适合于检测出现顺序错误的重复顶点,以便进行进一步的调查。
此示例使用几何验证器转换器来标识连续的重复点。第二个示例使用closedcurvefilter和coordinatextractor的组合来标识未排序的重复点。
源数据是一个MicroStation设计文件,其中包含表示建筑轮廓的线条特征:
这种情况下,我们希望在数据投入生产使用之前对其进行验证和清理。
按照以下步骤学习如何使用几何验证器转换器定位连续的重复顶点。
1.启动FME工作台,从一个空画布开始。从菜单栏中选择读卡器>添加读卡器。将数据格式设置为Bentley MicroStation Design(V8)。选择附加的MicroStation数据集作为源。如果单击“参数”按钮,您会发现有一个高级参数可以删除重复点:
确保关闭此参数,因为我们要确定重复顶点的位置和数量。所以只需单击OK添加读卡器。如果有提示,选择BuildingFootprints级别作为要读取的数据。
2.第二步。单击画布上的读卡器功能类型。在弹出的菜单上,选择Inspect选项以在数据检查器中查看数据。检查数据。数据一目了然看起来是正确的,很难确定哪里可能有重复的顶点。
三。回到FME工作台,添加一个连接到读卡器特性类型的几何验证器变压器。检查参数对话框:
在“重复连续点”选项旁边打勾。您可以(可选)检查此问题的参数。唯一的参数是处理三维点,在这种情况下不适用。
在对话框的下部,关闭修复问题的选项:
尽管重复点是固定的,现在,我们去看看他们在哪里。
第四章。将Inspector Transformers连接到每个几何验证程序输出端口并运行工作区。检查输出,根据随机颜色生成,您可能需要对几何验证程序的“失败”功能进行着色,以区分结果:
注意,有两个功能被标记为无效,重复点突出显示。
计算无效功能和坏点的数量非常容易,因为我们已经将它们过滤掉了。例如,甚至工作台的特性计数也会告诉我们所涉及的数字:
要创建存储在属性中的计数,使用statisticscaleculator转换器很简单。
按照以下步骤学习如何计算重复顶点特征。
5.在geometryvalidator:failed端口与其inspector transformer之间添加一个statisticscaleculator。还可以在geometryvalidator:issuelocations端口与其inspector transformer之间添加一个统计量计算器。
对于两个统计量计算器,选择任意属性作为要分析的属性。事实上,我们选择哪一个属性并不重要,因为我们只需要一些特性。
从“计算属性”字段中删除所有值。对于第一个StatisticsCalculator,在total count字段下添加“badFeatures”,以提供坏特性的计数。对于第二个统计量计算器,在total count字段下添加“duplicatevertices”,以提供重复功能的计数。
重新运行工作区。这次,输出应该包含一个属性,该属性指示每种类型有多少坏特性。
注意:如果您将StatisticsCalculator:Summary输出端口连接到检查器,只有一个输出特性。要获得所有输出功能,请确保连接了完整的端口。
通过删除其中一个副本,可以很容易地修复无效的重复顶点。几何验证器有一个这样做的选项。
6.打开“几何验证器参数”对话框,将“尝试修复”参数更改为“是”。重新运行工作区。当然,这次不会有失败的功能,但仍将输出问题位置,以显示重复点的位置。
这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)。它包含根据开放政府许可证(温哥华)获得许可的信息。
?2019安全亚搏在线软件公司|法律