斯潘8
斯潘4
自交叉(也称为“循环”,“蝴蝶结”或“鱼尾”)是指其边界扭曲,使其与自身相交的特征。导致循环:
左侧示例显示多边形的端点与起点不相交的位置,使多边形以一个环闭合。
右边的特性是一个可能顺序不对的点的例子。它非常接近于一条直接倒回自身的直线,非常接近于一个尖峰,但这种布局实际上会形成一个循环。
在大多数情况下,自我交叉并不像这些那样明显。左边的例子通常要小得多-到看不见的程度-右边的例子通常有非常锐利的角度,看起来像一条线。
FME包括使用几何验证程序变压器。
在这个例子中,我们将研究在包含建筑轮廓的数据集中识别和修复自交集。
源数据是一个OpenStreetmap数据集,包含温哥华市的建筑:
地图平铺方式 雄蕊设计,在下面 CC-BY-3.0型.数据依据 开放式街道地图,在下面 CC-BY-SA公司.
有很多建筑,所以(为了简单起见)我们会说一个用户报告了两个包含问题的建筑。他们的身份证号码是102521333和301873712,我们需要调查。
按照以下步骤学习如何使用几何验证器转换器定位自相交特征。
1。启动FME工作台,从一个空画布开始。从菜单栏中选择“读卡器>添加读卡器”。
将数据格式设置为OpenStreetmap(OSM)XML,并选择附加的OSM数据集作为源。将工作流选项设置亚搏在线为“单个合并要素类型”(以确保所有建筑对象都作为单个图层读取),然后单击“确定”添加读卡器。
2.在画布上放置测试变压器。设置测试仪以测试ID=102521333或ID=301873712的位置:
NB:我们只需将所有建筑传递到几何验证器中,忽略传递的特性,但在本练习中,当可疑的特性已经被隔离时,运行起来更快,更容易发现错误。
三。将几何验证器变压器连接到测试仪:通过端口。打开参数并在二维问题中对自交集进行复选标记。在对话框底部,将“尝试修复”设置为“否”。
将Inspector Transformers连接到几何验证程序输出端口并运行工作区。failed和issuelocations输出如下所示:
地图平铺方式 雄蕊设计,在下面 CC-BY-3.0型.数据依据 开放式街道地图,在下面 CC-BY-SA公司.
左边的建筑——如果是一个多边形——有明显的问题,外部周界在多个位置交叉。事实上,查询该特征以证明它是具有单个周长的单个多边形。
右手边的建筑没有那么明显的问题。您需要非常靠近建筑物右上角(东北角)放大,以查看问题:
顺便说一下,这个小的偏移量是0.7毫米(约0.03英寸),所以你可以看到这样的一个小错误是如何导致几何问题的。
所以,现在我们有了所有包含自交集的特性,带有一个点特征,表示自相交的位置。
使用统计计算器变压器计算自交点非常简单。唯一的决定是是否计算问题特性的数量,或者自相交的次数,这不一定是同一件事。
4。放置一个统计计算器变压器。要计算无效功能,请将其连接到geometryvalidator:失败的输出端口。要计算自交叉点,请将其连接到geometryvalidator:issuelocations输出端口。
5。检查统计计算器变压器的参数。选择要分析参数的属性中的任何属性(这与哪个属性无关)。
现在将total count属性设置为新的属性名,如numberBadFeatures或numberSelfInterfaces,以适当者为准。
6。将Inspector Transformer连接到统计计算器输出端口(如果选择摘要端口,将获得单个功能,如果选择完整的端口,则可以获得所有原始功能)。运行工作区。现在您应该有一个坏特性的数量(2)或自相交的数量(4)。
有很多方法可以固定自交叉点。例如,可以在交叉点处打开一个间隙,这样两条线条就不会交叉:
另一种解决方案是将特征实际划分为两个(或更多)多边形,在交叉点将它们分开。事实上,这是FME采用的技术。
7。检查几何验证器变压器的参数,并将尝试修复参数设置为是。
8。[可选]要解决几何验证程序的故障(现在它将删除失败功能的坐标系),请在几何验证程序:失败端口和连接的检测程序变压器之间放置一个坐标系统设置器变压器。检查参数,将坐标系参数设置为LL84。
9。重新运行工作区并检查输出,专注于修复的输出。请注意,FME已将原始的单个多边形特征拆分为多部分特征,由多个多边形/轮廓组成:
我们现在有一组数据已经清除了自交集。如果不希望进行自动清洁,则可以使用交叉点来确定可以手动解决问题的位置。
OpenStreetmap数据集:?OpenStreetmap贡献者。见http://www.openstreetmap.org/版权所有
?2019安全亚搏在线软件公司|合法的