时空数据库管理移动对象,比如:汽车、飞机、地貌变化等。空间数据库是时空数据库的特例,即时刻固定。

轨迹压缩

每秒钟都会从 GPS 获取大量 (x,y,t) 格式的数据,如何在不降低物体轨迹精度的前提下减小数据量呢(也就是数据都完全采集到了,但是数据量太大了,所以我们想少存一些数据,但又不能造成数据失效,也就是存入的那些少量点连起来的轨迹和原始轨迹不能偏差太大)?主要有三个指标:处理时间、压缩率、误差测量。

误差:原始轨迹位置与估计轨迹位置之间的距离。主要有两种误差测量指标:垂直欧式距离、时间同步欧式距离。

(1)垂直欧式距离:如下左图所示,p1,p7,p12是压缩后的点(也就是保留下来的存到文件中的点,其余点被舍弃),垂直度量则为原始轨迹点到压缩后轨迹之间的投影距离。

(2)时间同步欧式距离:如下右图所示,p1,p7,p12 作为压缩后的点,假定物体移动的速度恒定,那么 p1,p2 之间的时间和 p1,p′2 之间的时间相同。

轨迹压缩分为在线压缩和离线压缩两类。

(1)离线压缩:收集完整的轨迹数据后,先压缩再传输至服务器。常用的算法:道格拉斯-普客(DP)算法。

(2)在线压缩:根据要求的精度选择性的在线更新。常用的算法:滑动窗口, 开放窗口。

1. 离线压缩 - DP算法

在估计轨迹中根据垂直欧式距离保留方向趋势,将原始轨迹替换为近似直线段。如果替换不满足指定的误差要求,则通过选择误差最大的位置点作为分割点,递归地将原问题划分为两个子问题,直到近似轨迹与原始轨迹之间的误差低于指定的误差阈值。

举个例子:下面左图中,估计轨迹是 p0 和 p16,p9 引入了最大误差,于是切分为 p0,p9和 p9,p16,如下右图。

      

p0,p9 中 p3 又引入了最大误差,因此再将 p3 作为分割点切开。

2. 在线压缩 - 滑动窗口

   用一条有效的线段拟合一个增长的滑动窗口中的位置点,并继续增长滑动窗口,直到近似误差超过某个误差界。

首先将轨迹的第一个点初始化为锚点 p0​​​​​​ ,然后开始增大滑动窗口,当一个新的点  加入到滑动窗口中时,用线段  来拟合滑动窗口内所有的原始轨迹点。只要窗口内的轨迹相对于线段  的距离误差小于用户指定的误差阈值,滑动窗口就会继续增大。否则,将线段作为近似轨迹的一部分,并将 设置为新的锚点。该算法将一直持续到访问完原始轨迹中的所有位置点。

举个例子:当滑动窗口从 p0 增长到 p0,p1,p2,p3 时,拟合线段与原始轨迹之间的误差均不大于指定的误差阈值。当包含 p4 时,p2 的误差超过阈值,因此 p0p3 被包含在近似轨迹中,然后 p3 被设置为新的锚点(也就是说加入p4之后,超出阈值,则用p4之前的那个点p3作为锚点)。下图绿线即为最终生成的轨迹。

3. 在线压缩-开放窗口

与滑动窗口不同,开放窗口选择滑动窗口中误差最大的点作为逼近线段的闭合点和新的锚点。当包含 p4 时,p2 的误差超过阈值,因此 p0p2 被包含在近似轨迹中,p2 被设置为新锚点(也就是说到了p4的时候超出阈值了,在p0p4的情形下,是因为p2造成了超出阈值,则把p2作为锚点,也就是把肇事者作为锚点)。

轨迹地图匹配

地图匹配(Map Matching)是指将行车轨迹的经纬度采样序列与数字地图路网匹配的过程,其本质上是平面线段序列的模式匹配问题。在实际应用中,GPS 采样信号的质量会严重影响地图匹配结果:采样频率的降低、定位误差的加大、信号的丢失,都会使匹配的不准确性增加。这些情况在实际应用中经常出现。如何在这些情况下仍能保持较高的路径匹配准确率是个值得研究的问题。

(1)局部/增量算法:是贪婪算法,每次确定一个匹配点,下个点从已经确定的匹配点开始。这些方法根据距离和方向相似性来找到局部最优点或边。(在线匹配)

(2)全局算法:是要从路网中找到一条与采样轨迹最接近的匹配轨迹。为了测量采样轨迹和匹配轨迹的相似性,大多数算法使用“Frechet距离”。(离线匹配)

Frechet 距离用于衡量两个曲线的相似度,后又被描述为“遛狗最短狗绳问题”,即:主人走路径 A,狗走路径 B,各自独立走完这两条路径过程中所需要的最短狗绳长度。

举个例子:下图中黑色折线是人的轨迹,蓝色折线是狗的轨迹,刚开始人和狗都位于位置 0,现在让它们往前走,速度可以不同,这里假设人狗速度相同,也就是说人和狗的距离不会超过 1 个坐标,两者或交替前进或同时前进。我们的目的是用最短的狗绳走完这两条轨迹,橙色表示狗绳。

现在人狗都位于位置 0,至少需要的狗绳长度如橙线所示,接下来有三种前进方式:狗先走一步、人先走一步、人狗同时走。观察这三种前进方式狗绳长度的变化,我们要找出使狗绳长度最短的前进方式。显然狗先走一步,狗绳最短,如下右图,此时人在位置 0,狗在位置 1。

         

用坐标 (0,1) 表示当前人狗位置,下一步人先走,坐标变为 (1,1),如下左图。下一步,人狗同时走,坐标变为 (2,2),如下右图:

            

接下来,人先走一步,坐标变为 (3,2),如下左图。因为速度限制,所以接下来只能狗前进,坐标变为 (3,3),如下右图。

                   

接下来,人狗同时前进,坐标变为 (4,4),如下左图。然后人前进一步,坐标变为 (5,4),如下右图。

           

接下来,狗前进一步,坐标变为 (5,5),如下左图。然后人狗同时前进一步,坐标变为 (6,6),如下右图。

     

所以最终算法的结果就是下图中红色区域内的狗绳长度,就是最短所需狗绳长度。

            

递推公式为:

dp[i][j]=max{min{ dp[i−1][j], dp[i−1][j−1], dp[i][j−1] }, E(i,j) }

E(i,j) 表示两点之间的欧式距离。这个递推公式是两个对象速度相同的情形(交替前进),人和狗可以从上面三种情况到达 i,j点。所以我们需要找到这三个位置最小的那一个距离与 i,j 点的距离进行比较。

时空数据库中的轨迹数据压缩相关推荐

  1. 视频浓缩中的轨迹组合技术

    轨迹组合就是通过分析原始视频中所有的运动目标的轨迹信息,然后将时空异步的估计搬移浓缩,去除视频的空间与时间冗余.通过轨迹组合技术能够有效地保持视频内容随着时间动态变化的特征,同时最大限度地去除视频的时 ...

  2. MPCC(Model Predictive Contouring Control)—自动驾驶中的轨迹控制算法

    MPCC(Model Predictive Contouring Control)-自动驾驶中的轨迹控制算法 引言 在自动驾驶技术快速发展的背景下,轨迹控制算法成为实现高性能自动驾驶的关键技术之一.而 ...

  3. 3.2-3.3 Hive中常见的数据压缩

    一.数据压缩 1. 数据压缩数据量小*本地磁盘,IO*减少网络IOHadoop作业通常是IO绑定的; 压缩减少了跨网络传输的数据的大小; 通过简单地启用压缩,可以提高总体作业性能; 要压缩的数据必须支 ...

  4. OpenGL中的轨迹球问题

    OpenGL鼠标轨迹球(Trackball)原理 什么是鼠标轨迹球 类似AutoCAD里的"动态观察",三维模型都是要投影到二维的屏幕上才能显示给用户,而用户如果想观察一下三维模型 ...

  5. 轨迹分析_解析几何中的轨迹问题中经典问题,有详细分析及其解答

    曲线与方程是解析几何的重点,解析几何问题都 离不开对曲线与方程的研究,因此求曲线的轨迹方程 就成了研究解析几何问题的一个重点问题.纵 观 曲 线的轨迹 方 程 问 题,可发现其题型典型. 一.直接法 ...

  6. 地理围栏 | EXCEL表格中分析轨迹坐标是否在设定的围栏范围内

    1 前言 地理围栏(Geo-fencing)是LBS的一种新应用,就是用一个虚拟的栅栏围出一个虚拟地理边界.当手机进入.离开某个特定地理区域,或在该区域内活动时,手机可以接收自动通知和警告.有了地理围 ...

  7. 根据经纬度信息画实际地图中的轨迹之百度地图与谷歌地球

    优缺点分析: 百度地图:方便快捷,实时使用,不需要下载软件,网页实现:但是不够精确,用高精度GPS算下的经纬度画出来的图与真实偏差大(看图,轨迹都不在路上...). 谷歌地图:精度高,比较适合高精度G ...

  8. SLAM算法评估中的轨迹拟合与外参求解

    文章同步更新到github pages,欢迎收藏 文章目录 问题描述 数学关系 求解方法 求解$_{gp}^{gv}T$ 求解$_{lp}^{lv}T$ 交替迭代优化 时间戳对齐 实验结果 参考文献 ...

  9. 自动驾驶中的轨迹预测数据集汇总!

    作者 |  冯偲  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/555618753 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷 ...

  10. 车联网中基于轨迹预测的无人机动态协同优化覆盖算法

    本文由吴壮,唐伦,蒲昊,汪智平,陈前斌联合创作 摘要 针对城市车联网中出现的基站覆盖空洞及局部流量过载等问题,该文提出了一种基于车辆轨迹预测信息的动态预部署方案.首先,为了训练得到统一的 Seq2Se ...

最新文章

  1. php kafka 日志系统,kafka-PHP客户端库(Composer)
  2. 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
  3. python opencv屏幕找图_使用Python+OpenCV进行图像模板匹配(Match Template)实例-找到百度首页按钮并点击...
  4. 不带头结点的单链表的建立
  5. python虚拟环境中安装diango_创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...
  6. 不可逆加密算法有哪些_对称加密算法和非对称加密算法
  7. C++回调函数作为通信机制
  8. 编码器及编码器在SMART200中的使用
  9. (15.1.16)项目管理简述
  10. qcloud windows rtx cpu 100%定位
  11. 李宏毅老师《机器学习》入门第一课
  12. Python实现《人民的名义》关系可视化
  13. linux内核2.6.3x--Network device support
  14. 51单片机驱动无源蜂鸣器
  15. BPF入门1:BPF技术简介
  16. Apache Doris技术实践
  17. 41 01背包 记录方案
  18. 模糊数学导论——模糊聚类分析
  19. stdin.php 木马,php STDIN - mickelfeng的个人空间 - OSCHINA - 中文开源技术交流社区
  20. 信号与系统 - 零输入响应和零状态响应

热门文章

  1. win10光盘刻录linux镜像,使用win10自带的刻录工具制作ISO镜像文件光盘
  2. 抖音直播如何快速提升人气热度,让客户下单。
  3. SOLD格雷母线定位系统产品说明
  4. 计算机大作业的范本,计算机应用基础大作业.doc
  5. 从鸭子游戏设计看设计模式
  6. ccf试题1:小中大
  7. IDEA 错误: 找不到或无法加载主类 com.Main
  8. 直播预告|年营业额百亿的企业都在如何做数字化转型
  9. 计算机切换用户界面键,电脑切换用户_电脑切换用户快捷键
  10. 基于因子分析法分析新冠肺炎疫情对房地产业上市公司财务的影响