QGIS 3.10 制作热力图

本文介绍了如何利用QGIS 3.10通过英国萨里郡的犯罪数据制作热力图,包括设置中文界面、导入CSV数据、设置热力图渲染器、添加权重字段以及使用核密度估计进行高级定制,旨在展示犯罪密度高的区域。
摘要由CSDN通过智能技术生成

在这里插入图片描述

热力图(Heatmap)是绝佳的点数据集可视化工具,它是一种插值技术,适用于展现要素的密集程度。热力图常用于犯罪、交通事故、房屋密度等数据的可视化。

任务概述

通过英国萨里郡的犯罪地点数据集制作一幅热力图,突出显示该郡犯罪密度高的区域

将会学到的其他技巧

  • 使用虚拟字段
  • 使用条件表达式

获取示范数据

本教程示范数据为CSV格式,下载链接如下:

http://www.qgistutorials.com/downloads/2019-02-surrey-street.csv

将QGIS界面设置为中文

制作地图之前,请将您的QGIS软件界面设置为简体中文(如果您已经设置过了,可以忽略本节后续内容)。操作方式为:通过菜单【Settings】->【Options…】打开对话框,选择其中的【General】标签,找到“Override system locale”前面的复选框并打勾,在“User Interface Transaction”下拉框中找到并选择“简体中文”,单击【OK】,退出QGIS。重新启动QGIS后即可看到简体中文界面。
在这里插入图片描述

详细操作步骤

  1. 点击工具栏中的【打开数据源管理器】按钮。
    在这里插入图片描述

  2. 在弹出的【数据源管理器】对话框中,在左侧面板选择【浏览】标签,在右侧列表中找到【XYZ Tiles】下的【OpenStreetMap】并用鼠标右键点击,在弹出菜单中选择【添加图层到项目】,将OpenStreetMap作为底图添加到地图窗口中。
    在这里插入图片描述

  3. 切换到【分隔文本文件】标签,将包含犯罪数据的CSV文件导入QGIS。点击【文件名称】右侧的【…】按钮,找到下载的2019-02-surrey-street.csv文件。该文件包含的Longitude字段和Latitude字段自动填充到【几何图形定义】中的【X Field】和【Y Field】下拉列表框中。【几何坐标参照系】保持默认的EPSG:4326 - WGS 84。注意确保【数据样例】表格中预览到的数据没有异常,点击【添加】按钮,然后点击【Close】按钮关闭对话框。
    在这里插入图片描述

  4. 【图层】面板中添加了OpenStreetMap2019-02-surrey-street两个图层。右键点击2019-02-surrey-street图层,在弹出菜单中选择【缩放到图层范围】。
    在这里插入图片描述

  5. 地图窗口显示了OpenStreetMap底图,上面叠加犯罪事件点数据。使用缩放和平移工具浏览数据。地图窗口中的数据点非常密集,很难得知哪里是犯罪集中的地方。此时热力图就派上用场了,选中2019-02-surrey-street图层,点击【图层】面板上方的【打开图层样式面板】按钮。
    在这里插入图片描述

  6. 在【符号化】面板最上方的下拉列表中选择【热图】渲染器,可以直观看到地图画布中的显示效果随之改变,QGIS默认使用【Greys】颜色渐变(color-ramp)渲染热力图。
    在这里插入图片描述

  7. 热力图中常用的颜色渐变为黄-红或者白-红。点密度越高,颜色越接近红色。点击【颜色渐变】下拉菜单,选择【Reds】颜色渐变。
    在这里插入图片描述

  8. 【半径】参数表示每个点能够对周围多大半径的圆形区域产生影响,半径的取值大多取决于输入数据的类型,对于本教程所使用的示范数据而言,假设犯罪事件最多可以影响半径5公里的区域。注意,从地图窗口右下角可以看出,当前的投影坐标系为EPSG: 3857,地图长度单位是米。所以,在【半径】输入框中输入5000(地图单位)。
    在这里插入图片描述

  9. 地图窗口显示了热力图的可视化效果。通过【图层样式】面板下方的【图层渲染】,将图层不透明度设为60%,让下层的底图显示出来,热力图叠加在底图之上,使地图整体显示效果更加丰富。
    在这里插入图片描述

  10. 大多数情况下,数据分析时考虑点的密度就足够了。但是,有时候需要强调每个点的重要程度不尽相同。例如,在分析得出的热力图中,应该表现出暴力犯罪事件比抢劫犯罪事件的影响程度更大。同时,有时候需要考虑到单个点可能代表了多个观测值。要表现出数据点重要程度的不同,可以设置一个可选的权重(weight)字段,为每个点指定一个权重值。右键点击2019-02-surrey-street图层,在弹出菜单中选择【打开属性表】,为该图层添加权重字段,以改进热力图显示效果。
    在这里插入图片描述

  11. 属性表中的字段“Crime type”用文字描述了不同的犯罪类型,可以根据该字段对不同的犯罪类型进行分类,暴力程度越高,分配的权重值越大。
    在这里插入图片描述

  12. 点击【打开字段计算器】按钮。
    在这里插入图片描述

  13. 使用“Crime type”字段构建公式计算权重值,此处涉及虚拟字段(Virtual Fields)的使用。虚拟字段是QGIS添加计算字段的一种简便方法,它存储在QGIS的项目文件中,不会改变原有数据内容。虚拟字段是动态计算的,QGIS中任何可以使用属性字段的地方都可以使用虚拟字段。在弹出的【字段计算器】对话框中,【输出字段名】文本框输入“权重”,【输出字段类型】选择【整数(整型)】,【表达式】文本框中输入下面的条件表达式(conditional expressions),该表达式用CASE语句,根据不同条件为权重字段指定不同的取值。点击【OK】按钮。

CASE
WHEN "Crime type" LIKE 'Violence%' THEN 10
WHEN "Crime type" LIKE 'Criminal%' THEN 5
ELSE 1
END

在这里插入图片描述

  1. 属性表中增加了一个新的属性字段:“权重”,每个要素被赋予适当的权重值。
    在这里插入图片描述

  2. 回到【图层样式】面板,点击【权重点由】下拉框,选择“权重”字段。
    在这里插入图片描述

  3. 地图窗口中,由于权重值参数的不同,热力图显示效果随之发生变化。关闭【图层样式】面板。
    在这里插入图片描述

  4. 如果需要将热力图另存为栅格图层,或者需要使用高级选项定制热力图(如设置动态半径),可以使用【处理工具箱】中的【热图(核密度估计)】。点击菜单【处理】->【工具箱】。
    在这里插入图片描述

  5. 距离在计算热力图中起着重要作用,在地理坐标参照系(geographic CRS)下,距离计算是不正确的。所以,在创建热力图之前,需要先把原始数据重新投影成投影坐标系(project CRS)。在【处理工具箱】中找到【矢量通用】->【重新投影图层】。
    在这里插入图片描述

  6. 在【重新投影图层】对话框中,点击【目标坐标参照系】右侧的【选择坐标参照系】按钮,在【坐标参照系选择器】中,选择“EPSG:27700 OSGB 1936 / British National Grid”作为目标坐标参照系,该坐标系适用于英国区域内制图。点击【运行】按钮。
    在这里插入图片描述

  7. 【图层】面板中添加了新图层:“重投影文件”,取消选择2019-02-surrey-street图层,使其不显示在地图窗口中。
    在这里插入图片描述

  8. 在【处理工具箱】面板中,找到【插值】->【热图(核密度估计)】工具。
    在这里插入图片描述

  9. 在【热图(核密度估计)】对话框中,分别设置【半径】为5000米,【Weight from field】为“权重”字段,这两个参数取值与前面步骤相同。【横坐标像素大小】和【纵坐标像素大小】均设为50米, Kernel shape保持默认取值:“四元”(Quartic),点击【运行】按钮。
    在这里插入图片描述
    备注:【场半径】参数允许设置一个字段,为每个点指定动态搜索半径,与【Weight from field】搭配使用,可以做到精确控制每个点对周围区域影响的扩散方式。

  10. 处理结果将产生一个新的栅格图层:OUTPUT。默认情况下,该图层采用“单波段灰度”来渲染,可视化效果比较差,点击【图层】面板上方的【打开图层样式面板】按钮。
    在这里插入图片描述

  11. 渲染方式选择【单波段伪彩色】,【颜色渐变】选择“Reds”,达到与前面步骤产生的热力图类似的可视化效果。
    在这里插入图片描述
    本教程到此结束。

吴建玲

2020年6月10日


版权声明

本文欢迎转载,转载时请注明出处。

本文主要翻译并改编自qgistutorials网站,原文链接为http://www.qgistutorials.com/en/docs/3/creating_heatmaps.html,原文已根据《知识共享署名4.0国际许可协议(Creative Commons Attribution 4.0 International License)》获得许可,在此向原文作者乌加尔·甘地(Ujaval Gandhi)致以敬意,感谢他为分享QGIS技术做出的贡献。

在这里插入图片描述

  • 19
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值