QGIS 3.10 制作时序动画

通过QGIS 3.10的TimeManager插件,本文指导如何利用时间属性制作海盗活动的热力图时序动画。首先介绍任务概述,包括使用反航运活动数据和陆地多边形数据。接着,讲解如何设置QGIS为中文界面,安装TimeManager插件。详细步骤涉及加载数据、创建热力图、配置TimeManager插件以展示每年的海盗活动热点,并导出动画帧为图片,最后用这些图片制作成GIF动画。
摘要由CSDN通过智能技术生成

在这里插入图片描述
时间属性是许多空间数据集的重要组成部分。与位置信息相结合,时间属性提供了数据分析和可视化的另一个维度。如果使用的数据集包含时间戳,或者有多个时间段的观测记录,就可以使用QGIS中的TimeManager插件轻松地将其可视化。TimeManager插件可以在特定的时间间隔内查看由数据生成的地图切片(slices),并将其导出为图片文件,然后利用其他工具将图片组合生成动画。

任务概述

通过海盗活动位置点图层,创建热力图(Heatmap),以时间序列动画的方式,展示过去20年间海盗活动热点区域的变化。

将会学到的其他技巧

  • 使用热力图对密集的点数据进行可视化。
  • 创建和使用自定义投影(custom map projections)

获取示范数据

本教程的示范数据采用美国国家地理空间情报局(National Geospatial-Intelligence Agency)提供的反航运活动信息(Anti-shipping Activity Messages)和自然地球(Natural Earth)提供的1:1千万陆地多边形数据,可以通过如下链接下载:
反航运活动信息(Anti-shipping Activity Messages):ASAM_shp.zip
陆地多边形数据:ne_10m_land.zip

将QGIS界面设置为中文

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

安装插件

本教程需要安装TimeManager 插件,点击菜单【插件】->【管理并安装插件…】,查找并安装TimeManager 插件。
在这里插入图片描述

详细操作步骤

  1. 将示范数据下载到本地并解压缩。在QGIS【浏览】面板中,找到ne_10m_land.shp,把它添加到地图窗口。同样步骤,找到asam_data_download/ASAM_events.shp,把它拖拽到地图画布中。
    在这里插入图片描述
  2. 数以千计的海盗活动位置点显示在地图窗口中,很难从这种方式表示的数据中看出更多海盗活动信息,可以借助热力图更好地实现海盗活动数据的可视化。在【图层】面板中,选中“ASAM_events”图层,点击上方的【打开图层样式面板】按钮。【图层样式】面板出现在地图窗口右侧,当前默认的渲染方式是【单一符号】。
    在这里插入图片描述
  3. 从渲染器下拉框中选择【热图】,颜色渐变(Color ramp)下拉框中选择【Viridis】。
    在这里插入图片描述
  4. 调整热力图的【半径】参数为5.0,单位保持默认:Milimeters。在【图层样式】面板,展开【图层渲染】,设置图层的不透明度为75.0%,使得热点图层和下方的陆地多边形图层达到更好的可视化效果。
    在这里插入图片描述
  5. 点击菜单【插件】->【TimeManager】->【Toggle visibility】,用动画形式显示每年海盗活动地图。
    在这里插入图片描述
  6. 在【Time Manager】面板中,点击【Settings】,弹出【Time manager settings】对话框。
    在这里插入图片描述
  7. 在【Time manager settings】对话框中,点击【Add Layer】按钮。
    在这里插入图片描述
  8. 原始数据中包含属性字段“dateofocc”,表示海盗事件发生的日期,TimeManager插件将使用该字段来确定各个时间段应呈现在地图上的数据点,即使用该字段对图层进行过滤。在弹出的【Select layer and column(s)】对话框中,【layer】下拉框选择“ASAM_eventsM”,【Start time】选择“dateofocc”字段,设置【End time】为“Same as start”,点击【OK】按钮。
    在这里插入图片描述
  9. 回到【Time manager settings】对话框,点击【OK】按钮。
    在这里插入图片描述
  10. 点击【TimeManager】面板中的【Power】按钮,启动动画。设置【Time frame size】参数为“1 years”(1年),此时可见“ASAM_events”图层旁出现一个“过滤”按钮,表示根据地图右下角显示的时间,TimeManager插件对数据进行了过滤,将不是当前时间段的数据隐藏了起来。
    在这里插入图片描述
    备注:TimeManager插件通过对图层使用过滤器的方式实现对数据的动画显示,因此,它只对支持过滤器的图层类型起作用。大部分数据源都支持过滤器,但也存在例外情况,比如临时内存图层(temporary memory layers)。因此,如果对图层做了某些处理,产生了临时图层,在对这些临时图层使用TimeManager插件之前,应先右键点击该图层,从弹出菜单中选择【永久化…】,将图层保存起来。
  11. 点击【Time Manager】面板中的【Play】按钮,观察每年海盗活动热点地区动画效果。
    在这里插入图片描述
  12. 动画画面的右下角详细显示了数据的日期与时间,这种显示方式过于冗长繁琐。点击【Time Manager】面板的【Settings】按钮,在弹出对话框中点击【Time display options】按钮,设置时间显示格式为当前数据的年份。
    在这里插入图片描述
  13. 在【Options】对话框中,设置字体大小为 25,时间格式(Time Format)选择“ DateTime”,在文本框中输入 Y%。这里的时间格式应使用Python strftime格式,Y%表示4位数年份。同时,设置【Placement direction】为“ NW”,表示把时间标签放置在地图的西北角,即地图画布的左上方。
    在这里插入图片描述
  14. 点击【OK】按钮,回到【Time manager settings】对话框。选中【Looping animation】复选框,当调整样式时,该选项可以让动画从头开始继续播放。点击【OK】按钮。
    在这里插入图片描述
  15. 重新播放动画,年份标签显示在动画的左上角。为了地图的显示效果更好,可以改变一下投影设置。默认地图投影为 EPSG:4326,该投影适用于存储源数据,但对全球范围可视化来说显示效果并不好。推荐使用 Equal Earth Projection,在视觉上更加美观,而且可以更准确地表现世界范围地图。该投影是一个相对比较新的投影,尚未包含在QGIS的预定义投影中,但可以方便地通过QGIS完成自定义投影设置。点击菜单【设置】->【自定义投影…】。
    在这里插入图片描述
  16. 在【自定义坐标参照系】对话框中,点击【+】按钮,输入名称:“ Equal Earth”。自定义投影的参数需要以PROJ格式(PROJ format)指定,在【参数】文本框中输入以下PROJ格式文本,点击【OK】按钮。
+proj=eqearth +datum=WGS84 +wktext

在这里插入图片描述

  1. 回到QGIS的主窗口,点击右下方状态栏的当前投影坐标系。
    在这里插入图片描述
  2. 在弹出的【项目属性|坐标参照系】对话框中,找到并选择自定义坐标系“Equal Earth”,点击【OK】按钮。
    在这里插入图片描述
  3. 地图随之转换为Equal Earth 投影坐标系,可以开始导出动画了。动画帧的导出是从当前时间滑块位置开始,因此在导出动画之前,确保【Time Manager】面板中时间滑块停在开始位置。点击【Time Manager】面板的【Export Video】按钮。
    在这里插入图片描述
  4. 在弹出的对话框中,点击【Select output folder】按钮,为输出动画选择一个目录。选中【 Frames only 】选项,单击【OK】按钮,开始导出。
    在这里插入图片描述
  5. 导出完成后,输出目录中可以看到每一年的地图对应生成了一个PNG图片,用这些图片可以制作GIF动图。GIF动图制作有很多方法,可以使用网站提供的在线制作工具,也可以下载一些开源的小程序来完成。以ezgif.com 网站为例,登陆网站,点击【 Choose Files 】,在弹出对话框中选中所有的PNG文件,然后点击【Upload and make a GIF!】按钮开始制作GIF动图。
    在这里插入图片描述
  6. GIF制作完成后,点击【Save】按钮,将生成的GIF下载到本地。

在这里插入图片描述
本教程到此结束。

吴建玲

2020年6月15日


版权声明

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

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

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值