GIS中的热力图
热力图介绍
从地理的角度来看,热力图是一种显示地理聚类现象的方法,有时也被称为热点图。热力图显示了更高密度地理实体的位置(尽管热点分析倾向于用于显示统计上显著的模式,更多关于热力图与热点图的区别参考:https://www.gislounge.com/difference-heat-map-hot-spot-map/)。
术语中的”热力”指地理实体在任何给定地点内的聚集程度,不要与热映射相混淆,热映射是指在地球表面的实际温度映射。
热力图是一种地理位置可视化方法,显示那些高频率的现象,比如犯罪活动、交通事故或商店位置等。
创建热力图的一种方法是通过离散点的插值来展现密度的连续表面。在计算密度表面时,必须确定三个主要参数,这些参数会影响最终的结果。假如输出的是一个栅格文件,那么单元格的尺寸将是所得密度表面粗糙度的细节程度的决定性因素。
单元尺寸越大,阶梯效应对结果表面层的影响越大。相反,较小的单元尺寸所得表面更光滑,但处理花费的时间更长,输出结果文件更大。
建议将单元格大小设定在每密度单位10到100个单元,Esri的《GIS分析指南》第1卷:地理模式和关系(第79页)提供了关于如何确定合适尺寸的更多细节。
带宽或者说搜索半径是第二需要设置的参数,搜索半径在密度计算中会影响每个单元格周围区域。设置搜索半径太小,密度模式将限于点特征的直接区域。设置搜索半径太大,密度模式会变得过于泛化。
第三个参数是插值算法。最简单的方法是统计搜索半径内的要素数量。更常见的算法是使用加权计算,如反距离加权(IDW)。以插值点与样本点间的距离为权重进行加权平均,离插值点越近的样本点赋予的权重越大。换句话说,给定点的权重与其与内插单元的距离成反比。
所得到的密度表面使用梯度可视化,用于突出最高密度(或热点)的区域。这张热图是根据Ahti Heinla的Panoramio地图标记照片创建的,他创造了他所谓的“世界旅游地图”。黄色的表示由最高数量的个人摄影师拍摄的照片密度最高的区域(如“映射地理标记照片”中所述)
红色表示中等“旅游”区域,蓝色表示最低水平。灰色区域在Panoramio中没有照片。显而易见,上传的照片密度最高的区域是欧洲,亚洲地区以及美国沿海最著名的地区也很容易识别出来。(您还可以在Google地图中查看旅游地图或从Heinla网站下载KML文件。Heinla还提供用于创建叠加层的Python脚本。)
热力图在执法机构的犯罪预防规划中特别受欢迎,因为能够识别较高犯罪活动的可识别地理集群,可以更加智能地将警察资源部署到高犯罪地区。
除了犯罪制图之外,热力图还有其他应用。在上面的示例中,创建了一张热力图,根据上传到Flickr的地理标记图像显示全球“旅游”。
热力图生成工具
- 用于根据坐标数据生成热力图的python脚本
- gheat:为热图力图层实现了地图瓦片服务器
- 顾名思义,HeatMapAPI是一个API(包含有限的免费和许可版本),可将热图图像集成到Google地图中。 GeoChalkBoard网站上有一篇文章解释了如何使用API生成热力图。
- Google Fusion Tables具有热力图功能,可用作可视化地理数据的选项的一部分。
- heatmap.js使用Patrick Wied创建的HTML5的canvas元素生成web热图。该页面包含使用演示,包括Google Maps和OpenLayers演示。