斯潘8
斯潘4
一个线性网络应该由在一点相交的线组成,没有交叉。然而,情况并非总是如此。可能会出现各种各样的问题。
如果两条线要在一个已知点相交,则会出现错位点,但是有一条线没有正确连接:
当两条线要在一个已知点相交时,就会出现超调。但有一条线超出了交叉点:
下冲发生在两条线要在已知点相交的地方,但是有一条线没有到达那个交叉点:
缺失的节点出现在两条线要在已知点相交的地方,但只有一条线包含交叉点:
在这种情况下,红色(水平)线有一个末端节点,但是绿色(垂直)线在同一位置没有节点或顶点。
一般来说,这些问题非常小,通常肉眼看不见,否则它们很容易被检测出来,而不需要特殊的数据验证技术。这些场景没有特定的转换器,但我们可以使用一般几何处理变压器的组合来完成这项工作。
尽管我们使用“网络”这个术语,这些问题也适用于任何旨在形成封闭结构的线性特征,例如,以下示例中使用的地块边界线…
此示例的数据集,是一组线条特征(在MicroStation DGN数据集中),表示温哥华市的地产地块边界。
数据集在FME数据检查器中如下所示:
这里的场景是清理线功能,确保所有地块正确关闭。我们将通过使用AreaBuilder转换器将它们转换为多边形功能来证明这一点。
要评估线性几何的状态,最简单的方法是使用面积生成器变压器。如果几何图形可以转换为多边形特征,然后所有连接都正确。
更复杂的方法是使用拓扑构建器变压器。这将使网络变成一系列节点和边。如果我们能找到只有一条边使用的节点,则表示一条未连接的线。如果线本身很短(或节点与相邻线之间的间隙很短),则表示超调,下冲,或点错位。
对于这个例子,我们将坚持使用更简单的AreaBuilder方法。
按照以下步骤学习如何识别超调,下冲,点错位,以及缺失的节点。
1。启动FME工作台,从一个空画布开始。从菜单栏中选择“读卡器>添加读卡器”。
将数据格式设置为Bentley MicroStation Design(V8)。选择附加的DGN文件作为源数据集,然后单击“确定”添加读卡器。
2。放置一个连接到地块线数据的面积生成器变压器。将每个输出端口连接到检测变压器。
三。为了清楚起见,将FeatureColorSetter Transformer添加到AreaBuilder:区域输出端口:
设置参数以使区域特征具有独特的颜色。运行工作区。不完整的功能(以某种方式无效的功能)将显示在单独的图层和颜色中:
通过放大接近其端点来检查功能。您将看到功能是否过度,下冲,点错位,或者缺少节点。
在公路网中,一些功能将是亮点,但不要错了,例如,死胡同死胡同或死胡同因此,要么需要进行手动评估,或者可以使用另一个FME变压器;例如,LineoRealOverlayer或SpatialFilter将显示线条是否与多边形重叠-如果重叠,则更可能是不正确的。
假设我们隔离的特性实际上是不正确的,然后使用统计计算器变压器来计算它们是很容易的。
按照以下步骤学习如何计算坏的线性几何图形。
4。在区域生成器转换器和检查器之间添加一个统计计算器。检查统计计算器变压器的参数。
选择要分析参数的属性的任何属性。如果没有可用的属性,则在源功能类型上公开一个属性,或者使用attributeManager创建一个。价值观对我们来说并不重要。
将total count属性参数设置为numfeatures并接受更改。
5。重新运行翻译。现在输出将有一组不正确的功能,虽然这是一个总数,每种类型的错误都不是一个。
NB:如果您将StatisticsCalculator:Summary输出端口连接到检查器,每组只有一个输出特性。要获取所有输出功能,请使用完整的端口。
修复错误的线性几何可能是一个尝试和错误的案例。有一个特定的容忍值是很好的,但也要按照给定的顺序使用变压器。当以不同的顺序使用时,结果可能会非常不同,可能会引入一些不需要的线条。
所以,按照以下步骤学习如何修复错误的线性几何图形。
6。将捕捉器变换器添加到翻译中,在源数据和区域生成器之间。将捕捉器的捕捉输出和未触及输出连接到区域生成器:
检查捕捉器参数。对于大多数参数,默认值都可以,但是你必须设定一个捕捉公差。在这种情况下,将值设置为0.2
将一个检查器附加到snapper:snapped端口(这样我们可以看到发生了什么),然后重新运行工作区。结果是,有两个更少的无效特性。这两个都是错位的点,现在都被卡入位置。
有几个有趣的观点。首先,下冲和过冲也可能是通过捕捉来解决的,但在规定的公差范围内无明显差异。Snapper可以处理这些情况,但它的主要用途是处理不对齐的点。
其次,对于其中一个功能,未对齐的特征有特征捕捉到它,而不是被别人抢走。这就是为什么只有两个特性需要修复时,三个特性会被捕捉的原因。这不是理想的,但是,公差参数确保这样的捕捉不会太极端。
7。在Snapper和AreaBuilder之间添加延长线变压器。确保LineExtender:拉伸输出端口已连接:
检查参数并将扩展设置为0.5。这将使所有线路延长0.5米。它应该处理任何不足之处。当然,它将把它们(以及所有其他特性)变成超调,但我们可以很快解决这个问题。
8。现在在LineExtender和AreaBuilder之间添加一个交叉转换器。intersector:intersected输出端口是我们要保留的数据:
不应该有需要设置的参数,虽然在FM2018或更新版本中,现在有一种公差模式,如果设置为自动,会产生更好的结果。
变压器将切断其交叉点的超调量,并创建丢失的节点。
现在重新运行工作区。会有大量“不完整”的特性,但这些仅仅是被切断的超调。如果查询所有其他功能,您会注意到多边形是正确的,现在没有超调,下冲,点错位,或者缺少节点。
9。如果数据仍需用作线路网络,然后,可以通过使用一个相交器将数据转换回适当的节点线来重新创建线性特征。
如果还需要一些不完整的行,例如,cul de sacs-然后可以使用长度计算器/测试仪组合来过滤短于正常预期(即它们不是超调就是应用的扩展,不是真正的功能):
这里使用的数据来源于温哥华市提供的开放数据,不列颠哥伦比亚(数据.couver.ca)它包含根据开放政府许可证(温哥华)获得许可的信息。
?2019安全亚搏在线软件公司|合法的