一张图看懂位置大数据分布
什么是热力图
热力图(Heat Map),是一种简单但非常直观的信息展示方式,TStack平台里的一个重要的应用服务。最早是在1991年由软件设计师Cormac Kinney提出的。最初用来以2D图示的形式展示金融市场信息。
经过多年的演进发展,热力图被广泛用于展示网站流量数据,包括链接点击分布和网页浏览分布,为网站的网页优化提供直观的参考依据,提高网站的用户体验。
近几年,随着大数据的兴起,热力图越来越多的被应用在地理位置信息的展示上。热力图的展示方式也由最初的矩形色块加颜色编码发展为颜色经过平滑模糊处理的热力图谱。
地理信息系统中的热力图是以特殊的高亮形式展示某种现象聚集程度的图示,多用来展示用户或店铺等所在地理区域的分布。最早于2006年作为研究模型在微软内部发布。
随着GIS的发展,地理位置相关信息的爆发,热力图的应用范围得到了极大的扩展。它作为数据可视化的一种方法,适用于展现地理对象某一特征的空间分布态势。比如人群或者店铺的分布、密度以及变化趋势。它通过颜色的变化程度,直观反映热点分布。如图1是某一时间点故宫博物院的游客分布热力图。
▲图1 游客分布热力图
热力图的绘制方式
热力图关注区域分布,它将一系列离散的点映射为颜色变化的图像,展示的时候不需要坐标轴,其背景通常是地图或者图片。
热力图的绘制有以下两种方法。
(1)采用简单叠加法,计算出每个点对应的所有数据之和,将其作为该点的数值,再映射成相应的颜色绘制到显示区域。但是通过这种方法得到的热力图粒度太粗,并不好看。
(2)采用辐射叠加法,根据每个点的数据、辐射半径对所有数据点进行计算得到每个点的密度值,再根据配色矩阵计算出每个密度值对应的颜色进行绘制。这种方法类似雨滴落到池塘里,每个雨滴落下的位置和速度不同,落到池塘里后产生涟漪的形状和大小也不一样,这些涟漪相互影响形成了水面上雨滴分布的“热力图”。
地理信息系统中的热力图
地理信息系统中,热力图多用来展示区域聚集信息,比如:景点的游客分布密度、某一区域内店铺的分布等。
地理信息系统中,热力图的生成通常由服务端和客户端配合完成,如图2。
▲图2 热力图生成系统
服务端负责采集数据,比如定位数据、店铺位置、车辆位置等数据。采集后的数据经过处理,生成既定格式的数据保存在存储系统中。同时,服务端需要提供数据查询的接口,供客户端查询相应数据。
以腾讯位置服务提供的城市热力图为例,这些数据来自使用了腾讯位置服务的应用,比如微信、手机qq、腾讯地图、腾讯新闻、大众点评、滴滴出行等。腾讯位置服务每天上百亿次的定位请求量保证了城市热力数据的准确性。服务端采集到这些定位数据后通过数据挖掘计算出某一区域的实时人数。
客户端在展示热力图的时候,首先需要根据既有信息向服务端查询,获取数据后计算各点的密度,然后根据配色矩阵生成各点的色值,最终生成热力图。
计算热力图各点密度时,通常采用下面的方法。
首先,将显示区域分为若干个离散的点。比如将显示区域分为1024_1024个离散的点。_
_*接着,为每个离散的点建立一个“辐射区域”。_通常使用圆形的“辐射区域”,以该点作为圆心,以该点在热力图上最远能影响到的距离作为半径。圆的范围即为该点能影响的区域。圆心的权重为1,越靠近圆的边缘,权重越低,边缘的权重为0。权重从圆心向边缘降低的程度可以根据实际要反映的数据采用相应的数学模型,比如线性递减、二次曲线递减等。
建立好“辐射区域”后,根据各点的数据,计算出其“辐射”到整个区域后每点的“辐射值”,再针对每个离散点计算其所有的“辐射值”之和得到该离散点的密度。
如果将这些密度映射到灰度图上,则密度越高的点灰度图越亮。也可以使用彩色的热力图来展示数据,显示效果更明快。此时需要一个彩色的配色矩阵来定义不同密度映射出的色值。比如,将0%--100%的密度映射为如表1所示的配色方案,从而生成彩色的热力图。
▲ 表1:热力图密度映射表
各点对应的颜色值计算出来后,就可以用相应的颜色绘制这些离散的点,生成一块一块的热力图,所有热力图连接起来形成整个区域的热力图。
渲染热力图时,渲染性能和热力图的分块关系密切。将区域划分为离散的点时,划分的越细,计算时需要处理的数据越多,计算越慢,但显示效果越好;反之区域划分越粗,计算时需要处理的数据越少,计算相对变快,但也在一定程度上牺牲了显示效果。
另一个影响热力图显示效果的因素是“辐射半径”。“辐射半径”设置的过小,每个点的数据只能影响到其附近很小的区域,热力图的显示粒度较粗。而“辐射半径”设置的过大,每个点的数据影响的范围过大,则会影响热力图中各个点的密度差异,降低各点之间的对比度。
实际渲染热力图时应该根据所展示数据的特点合理分块,并设置合理的“辐射半径”。
小结
热力图作为地理信息系统中某种现象聚集度的直观展示方式,在城市规划、人口迁移、市政应急与决策、行业布局、商业建店、个人旅游出行、景区监控、等方面起了越来越重要的作用,是位置大数据服务中的重要组成。
本文来自:Tstack 公众号