如何洞悉城市人群移动规律?DataV海量轨迹可视化实践解析

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
数据可视化DataV,5个大屏 1个月
简介:

轨迹数据和我们的生活息息相关:小到扫地机器人的室内清洁线路,大到跨省跨国跨洲的旅行,短到一次共享单车骑行,长到十年如一日的通信基站记录。对城市治理而言,挖掘人群和车辆的移动规律,能帮助决策者更好地规划城市交通、保障公共安全、响应突发事件,让城市变得更智能、更高效。

经典轨迹展现方式的局限

经典轨迹展现方式的局限

轨迹数据描述了时空维度中,移动对象的空间位置和属性随时间的变化。在这些移动对象(如人、车辆等)移动过程中,每隔一段时间,他们的位置及其他属性会通过所携带的设备(如手机、传感器等)被记录下来,形成了一个采样点数据。对于一个移动对象而言,多个采样点数据按时间顺序排列,构成了该对象轨迹数据。

然而,轨迹数据来源诸多(包括但不限于手机信令数据、车辆GPS数据、Wifi-嗅探数据、签到数据等)且时时刻刻有新数据产生,导致轨迹数据体量十分巨大,造成严重的视觉混淆和渲染压力。因此,我们借助可视分析技术,通过将轨迹数据转化流场数据,不仅保留轨迹数据的主要特征,同时大大降低数据体量,从而更好地洞察城市中人群的移动规律。

在使用可视分析技术对轨迹数据进行分析和挖掘时,一个很重要的任务是将轨迹可视化在交互界面上,为用户提供观察和探索的空间。对于轨迹数据的表达方法,在这个领域已经有了一定的研究,传统的方法有路径连接法和飞线法。其中,路径连接法将每个对象的轨迹数据中的采样点按照时间顺序进行连线,再使用其他的视觉通道,如颜色、宽度和线形等编码对象的其他属性。这种方法是最直观的轨迹展现形式,它能够清晰地展现移动对象途径的空间位置,DataV在“基础平面地图”和“3D地图”组件中“线热力层”子组件采用的就是这种可视化形式。

飞线法和路径连接法相似,不同之处在于,它通过动画的形式模拟移动对象的移动,一般情况,使用一个带有箭头的线段来编码移动对象,线段会按照时间顺序在采样点之间移动,这种方法能够更加清晰地反映移动对象的运动方向,并且具有较为炫酷的视觉效果,DataV各地图组件中的“飞线层”和“3D地图”组件中的“弧线层”、“轨迹层”、“路网轨迹层”都是这种可视化方法的实现,去年双十一惊艳亮相的“闪电图”中的闪电特效同样是采用飞线法实现的。

ea6bf0b8fc5005d4eae80d9cfd642bc8fab78667

路径连接法应用:采用DataV中的“线热力层”组件可视化全国物流干网

d1f686bde950f56013b4785ec753328ab84d5583

飞线法应用:采用DataV可视化杭州一天的出租车轨迹

5dd2af34589cac45da3ad78f283d64f37ed74e86

飞线法应用:DataV双十一全国快递“闪电”大屏,每条闪电模拟了宝贝沿着真实路网从卖家发向买家的过程

以上两种可视化形式都是经典轨迹数据可视化方法,但它们也存在力不从心的时候,当针对海量轨迹数据应用这些方法时,由于数据体量惊人,原先直观清晰的视觉表达出现了大量的遮挡和重叠,如果处理不当,会很大程度上影响用户的观察和探索。此外,数据体量的提升带来了巨大的绘制压力,用户需要不断地提升硬件设备的性能才能应对,无形之中提高了轨迹分析的门槛。因此,针对海量轨迹数据,我们需要一种更为有效的可视化方法来洞察城市中移动对象的移动规律。

流场生成算法

经过研究,我们提出了一种针对海量轨迹数据的流场生成算法,能够将特定时间片段内的轨迹数据转化为流场数据,从而对“人流”、“车流”等进行表达和刻画。这种方法的特点在于,它没有直接对海量轨迹数据进行可视化,而是将轨迹数据进行一定的聚合,提取轨迹数据的主要特征,将轨迹数据转化为流场数据,再对选择合适的可视化方法对流场数据进行展现。由于流场数据保留了轨迹数据主要特征的同时大大降低了数据体量,因此能够在消除视觉遮挡和减轻绘制压力的同时,清晰直观地反映城市中移动对象的移动的规律。

算法的主要流程如下图所示:

e0fc59fd46da5965334a654b4bb1b28b10208fc6

1)统计轨迹点向量

轨迹数据是由若干个采样点数据构成,采样点数据包括轨迹点位置、时间及其他属性信息。我们首先根据所有采样点数据统计出轨迹点的位置,再根据轨迹数据中两两采样点之间的流入流出情况,计算每个轨迹点出入向量的方向和大小,其中大小又包括轨迹数量和移动对象的速度;

2)过滤轨迹点向量

对于上一步中所得到的轨迹点的所有出入向量,方法将根据自定义的轨迹数量阈值对其进行过滤,筛选得到每个轨迹点的主要出入向量;

3)生成轨迹点主向量

在这一步中,方法根据用户自定义的流场方向,对上一步得到的每个轨迹点所有的出入主向量按方向进行分类和聚合,在各个方向上生成至多一个主出向量和至多一个主入向量。在生成各个方向上的主向量的同时,需要统计各个方向内向量的平均速度、平均移动距离和平均差异角度;

4)扩散轨迹点主向量

接下来,将n*m的网格平铺到用户指定的区域内,将每个轨迹点在各个方向上的主向量按照一定条件和规则扩散到n*m的网格中。其中,在进行扩散时,扩散在网格内的向量,方向和速度保持不变,轨迹数量递减,而只有满足以下条件,一个网格才会受到某主向量的辐射影响:

 ●   被扩散网格中心与轨迹点之间的距离不大于轨迹点的平均移动距离;
 ●   当扩散向量为入向量时,被扩散网格中心与轨迹点形成的向量与扩散主向量之间的角度应该处于[180-平均差异角度,180+平均差异角度]之间;当扩散向量为出向量时,被扩散网格中心与轨迹点形成的向量与扩散主向量之间的角度应该处于[-平均差异角度,+平均差异角度]之间。

5)计算网格主向量

在上一步中,同一个网格可能会受多个向量的辐射影响,产生多个扩散向量,因此,在这一步中,需要计算每个网格中各方向上的聚合向量(包含了流场方向、移动速度和轨迹数量),得到最终的流场数据。

在方法中,需要定义轨迹数量阈值、流场方向和网格个数。轨迹数量阈值主要用于过滤轨迹点向量,过滤是为了保留主要的轨迹,防止“噪声”对结果准确性的干扰;而对流场进行分向计算,则避免了相对方向上的移动抵消,从而能够保留更多的细节信息,使得最终结果更加准确;而在定义网格个数时,需要平衡个数较多所带来的计算压力和个数较少带来的粗糙效果。为了使得方法具有一定的自适应性,我们在扩散向量时,并没有采用固定的角度和距离,我们使用各方向上的平均移动距离和平均差异角度,使得扩散能够适应不同的向量分布,结果更加合理。

轨迹流场案例

以上是我们提出的针对海量轨迹数据的流场生成算法的简要流程,下图是方法根据某市2017年8月14日早上8:00到8:10间的手机信令数据可视化的效果:

830acecc94b2d202c1030314a1afdfbd522b6899

在这个案例中,我们采用了粒子流动来表现流场数据,网格内粒子的数量即为轨迹数量(移动对象数量),粒子的移动方向代表移动对象的移动方向,粒子的颜色和速度均表示移动对象的移动速度,其中速度越大颜色越接近蓝色,速度越小颜色越接近红色。同时,我们提供了一些控件,用于调整流场方向、轨迹数量阈值和网格个数等参数,用于交互查询。通过这种方式,大大降低了绘制量并减少了视觉重叠,从而能够清晰观察城市内人群移动。

DataV不仅在数据大屏领域为各行各业的客户提供支持和服务,在大数据的可视分析的研究上,也在进行积极的探索。无论是最近推出的智慧场馆解决方案,还是海量轨迹的流场生成方法,都是新的尝试,我们将不忘初心,继续努力,为大家带来更好的可视化产品。


原文发布时间为:2018-10-22
本文作者:关会华
本文来自云栖社区合作伙伴“ 阿里技术”,了解相关信息可以关注“ 阿里技术”。
相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
5天前
|
存储 缓存 安全
Java内存模型深度解析:从理论到实践####
【10月更文挑战第21天】 本文深入探讨了Java内存模型(JMM)的核心概念与底层机制,通过剖析其设计原理、内存可见性问题及其解决方案,结合具体代码示例,帮助读者构建对JMM的全面理解。不同于传统的摘要概述,我们将直接以故事化手法引入,让读者在轻松的情境中领略JMM的精髓。 ####
23 6
|
20天前
|
编解码 前端开发 UED
探索无界:前端开发中的响应式设计深度解析与实践####
【10月更文挑战第29天】 本文深入探讨了响应式设计的核心理念,即通过灵活的布局、媒体查询及弹性图片等技术手段,使网站能够在不同设备上提供一致且优质的用户体验。不同于传统摘要概述,本文将以一次具体项目实践为引,逐步剖析响应式设计的关键技术点,分享实战经验与避坑指南,旨在为前端开发者提供一套实用的响应式设计方法论。 ####
42 4
|
22天前
|
安全 编译器 PHP
PHP 8新特性解析与实践应用####
————探索PHP 8的创新功能及其在现代Web开发中的实际应用
|
1月前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
83 10
|
29天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
71 3
|
2月前
|
PHP 数据安全/隐私保护 开发者
PHP 7新特性解析与实践
【10月更文挑战第20天】本文将深入浅出地介绍PHP 7的新特性,包括性能提升、语法改进等方面。我们将通过实际代码示例,展示如何利用这些新特性优化现有项目,提高开发效率。无论你是PHP新手还是资深开发者,都能从中获得启发和帮助。
|
2月前
|
人工智能 资源调度 数据可视化
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
2024长沙·中国1024程序员节以“智能应用新生态”为主题,吸引了众多技术大咖。合合信息展示了“智能文档处理百宝箱”的三大工具:可视化文档解析前端TextIn ParseX、向量化acge-embedding模型和文档解析测评工具markdown_tester,助力智能文档处理与知识管理。
|
2月前
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入解析与实践
【10月更文挑战第12天】 在软件开发的世界中,设计模式是解决常见问题的最佳实践。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理运用设计模式可以极大地提高代码的可维护性、扩展性和复用性。本文将深入探讨策略模式(Strategy Pattern)的原理、实现方式及其在PHP中的应用。通过具体示例,我们将展示如何利用策略模式来解耦算法与对象,从而让代码更加灵活和易于管理。
19 0
|
7月前
|
数据可视化 前端开发 JavaScript
react+datav+echarts实现可视化数据大屏
最近有点闲,就学习了下react,没想到就把react学完了,觉得还不错,就打算出一把react+datav的简易版可视化数据大屏供大家做个参考
512 2
react+datav+echarts实现可视化数据大屏

推荐镜像

更多