最近这两天寒潮来袭,需要避几天风。刚好研究一下GPS反演潮位修复 *** 。这个问题来源于,我们使用TerraPos软件解算GNSS和Motion Sensor数据进行 GPS潮位反演曲线的结果如下:
而正常实测的潮位曲线是这样的,类似于一个正弦曲线
不知道有没有小伙伴干过这个事情。之前在博客园看到一个时间分段算法的综述,看样子好像是用来做股票分段分析。这篇 文章在博主的CSDN主页已经转载分享了。但是,它里面没有具体的算法描述,先百度了一下,结果全是首字母简写名称的算法,还有什么深度学习啥的,直接就懵逼了,看不懂,不知道说了什么。于是,只能去搜相关文献。
添加微信好友, 获取更多信息
复制微信号
上面那个反演的潮位曲线是船舶靠泊在码头上,基本没有异常,解算了某天在海上航行期间的GPS反演曲线如下:
曲线有大量异常存在,需要首先剔除异常,然后进行分段修复。同时刻的NavCom单GPS数据的曲线如下:
是不是发现单GPS解算的反演潮位比联合GPS和姿态解算的效果好?博主也非常诧异,仔细一想,就知道为什么了,这是一条5000吨的大船,航行期间海况非常好,姿态对于高度影响比较小。博主计算了一下,GPS离船舶中心高度为10m,当横摇角度为10度,高度差为0.15m,差别还是挺大的。
因此,为了修复GPS反演潮位曲线,需要解决两个问题,(1)异常剔除问题,(2)曲线分段问题
在山东大学展鹏的博士论文《基于时间序列挖掘的异常检测关键技术研究》,系统讲了时间序列异常检测和分段的 *** 。
就时间序列数据来讲,可以根据是否有标签来将异常检测的 *** 分为三种模式:监督式异常检测、半监督式异常检测以及非监督式异常检测。
(1)监督式异常检测
监督式异常检测技术需要有一组时间序列训练数据集,在这组数据集中明确的标注了每条时间序列的标签或类别,“正常”或“异常”。基于训练数据集来构建异常检测模型。最后,利用此模型来判断待检测时间序列是正常或异常的。监督式异常检测 *** 主要面临两个问题,其一是在训练数据中,相对于正常时间序列来讲,异常的数据量太小,会对检测效果产生影响;其二实际操作中很难精确地标注数据是正常或异常,而且异常的情况也难以全部覆盖。
(2)半监督式异常检测
与监督式异常检测相同,半监督式异常检测也需要一组时间序列训练数据集。与之不同的是,此训练数据集中仅需包含正常的时间序列。半监督式异常检测技术的一种典型 *** 是基于训练数据集为正常时间序列数据建立模型,然后利用该模型识别待检测数据中的异常。由于训练中不需要标注异常序列,半监督式异常检测 *** 的应用相对更广泛。
(3)非监督式异常检测
相对于以上两种异常检测技术,非监督式异常检测不需要训练数据集。此类技术的核心思想在于异常的情况相对于正常的情况而言是很少的,且其与正常情况存在较大的差异,这种差异可以体现在数据之间的距离远近、分布密度、偏离程度等方面。结合实际应用领域与时间序列的特征可知,精确标注正常或异常时间序列的可操作性是难以保证的,这主要由于不同领域时间序列数据的波动频率、幅度、周期等有所不同,且随着时间的推移和技术的改进,时间序列的特征是会变化的。因此,非监督式异常检测技术具有重要的研究价值和广阔的应用前景。
有了展博士高屋建瓴的概况和总结,再看文献,就可以对文献的算法进行归类,就不会那么手足无措了。即便如此,也只找到了2篇勉强可以看懂的论文。
基于柯西分布的水文序列异常值检测 *** _高熠飞,主要将异常检测,滑窗算法+柯西分布。
基于时间序列波动性的分段线性表示 *** _李颖,主要将线性分段问题。
这两个 *** 都是改进的局部算法,目前就打算利用这两篇论文进行尝试GPS反演潮位修复。