检测点云中的异常点
GRASS 中的异常值检测器可用于不规则(“矢量”)点数据的v.outlier。
空间异常值检测方法的概述出现在Cheng 和 Li 2004 年的一篇论文中。
一种专门用于地形数据的旧方法依赖于“排水强制”(使水源源不断地向下流而不会积聚在水槽中)。这可以找到一些异常值,但可能不是全部。
一种更通用的方法是调整空间可变性的局部指标,例如局部 Moran's I统计量,以识别距离表面“太远”的点。 GeoDa可以计算此类统计数据。
拟合某种平滑函数,可能使用局部加权散点图平滑(LOWESS 或 LOESS),然后寻找的残差(即观察值和拟合值之间的差异)更大的点比预测的标准误差的一些固定倍数。这应该很简单,例如使用标准包中的函数。Rloessstats
您的表面上的点是否相对密集?然后我建议计算每个点周围的球体中的点数。选择球体的半径,使其比“异常”点与常规表面的距离略小 - 可能是它们通常具有的一半。然后丢弃该球体内其他点数非常少的点。(我不知道您的异常值是出现在小组中还是孤立点;这种技术应该适用于任何一种情况。)
如果一个简单的实现选择了正确的点但速度太慢,并且您正在努力想出一个更快的算法来做同样的事情,那么请告诉我们。我相信我们可以想出一些办法:)
我认为这个问题只依赖于变量的异常值.
测量员扫描网格,“行为良好”的点。另一方面点可能包含异常值(在统计中我们称之为异常值)。
我建议探索,以及的情节.
从这些图中可以清楚地看出,发生孤立。
假设我们有一个矩形网格点,在网格的每个点我们都有一个值我们将表示为.
所以,如果我们认为是一个异常点,我们预计它们之间的相关性较低和.
一般来说,我们预计两者之间的相关性较低及其邻居. 一种测量点之间空间相关性的方法其邻域是由下式定义的经验变异函数:
.
如果你计算对于整个网格,您可以确定经验变异函数中的异常值确实是异常点。
箱线图可用于识别异常值。
使用变异函数是一种确保您实际读取异常点的方法。假设您的测量员正在扫描一个斜坡,那么您会注意到有很高的价值,也有他们的邻居。仅当点异常时会有很高的价值。
注意:如果您确定您的测量员正在分析一个相当平坦的表面,请去掉变异函数并制作一个箱线图,由箱线图识别的任何异常值都是异常点。