我有两个数据集(轨迹),其中x / y点代表GPS位置。我想分析两个轨道之间的距离。这些点不是必须同步的,而是具有相同的频率,如此小摘录中所示(每个轨道由1000+点组成): Example Picture
由于不同步,我不能只比较彼此最接近的两个点。由于路径不完全相同,我无法同步轨道。它可能是为每个数据集插入曲线然后计算其间的积分的解决方案。由于轨道比示例中显示的长得多,因此我不能仅使用像polyfit这样的回归函数。
如何做到这一点,还是有其他/更好的策略来分析(平均值/均方...)距离?
答案 0 :(得分:1)
x / y数据是否记录为时间的函数?如果是这样,您可以使用timeseries
timeseries
函数重新取样一个或两个数据集,使其具有相同的采样时间向量。您必须先将数据转换为{{1}}对象,但这是值得的。将两个数据集重新采样到同一时间向量后,只需从另一个中减去一个。
答案 1 :(得分:1)
但是,我想添加一些其他方法来执行此操作,这些方法要复杂得多,但可以根据您的使用情况大大提高准确性。
如果它不适合你,那么它可能对其他任何人都有用。
优点:快速,轻松
缺点:方法对曲目的平滑性过于乐观
确定两个曲目的B-spline representation。然后,您将获得两个轨道的参数关系:
两条曲目之间的距离为average of the function
表示所有适用的t
,它通过以下积分计算:
优点:最接近"物理"情况
缺点:很难做到正确,特定于情况因此不可重复使用
使用该轨道后面的任何运动方程来推导任意时间步长t
的转换矩阵。如果可能,还要提出适当的噪音模型。
使用Kalman filter将两个轨道重新采样到一些等距时间向量,该向量最好不同于轨道1和轨道2的时间向量。
计算这样计算的x,y
对之间的距离,取平均值。
优点:快速,轻松
缺点:方法对曲目的平滑性过于乐观。这两种情况都有偏见。
通过曲目1
重复1和2,反之亦然。
取所有这些距离的平均值。
优点:快速,轻松
缺点:方法对曲目的平滑性过于乐观。由于固有的较大噪音条件,飞度将会降低质量。
将空间曲线拟合到两个轨道的 union 。也就是说,将来自轨道1和轨道2的点作为单个数据集处理,通过该数据集拟合空间曲线。
计算两个轨迹相对于此空间曲线的垂直残差。
计算所有这些距离的平均值。
请注意,此处的所有方法都使用平地假设。如果轨道真的很长并覆盖了地球表面不可忽略的部分,那么你必须通过Haversine formula计算距离而不仅仅是毕达哥拉斯根。卡尔曼滤波器对此不太敏感,只要你的运动方程能够处理球形地球。
如果您有感兴趣区域的高程模型,请使用它。当然,根据地区的不同,你会感到惊讶的是,与光滑的地球相比有多大差异。