动画时间序列数据(QGIS3)

时间是许多空间数据集的重要组成部分。 除位置信息外,时间提供者还可以使用另一个维度来分析和可视化数据。 如果您正在使用包含时间戳的数据集或在多个时间步长记录了观测值,则可以使用QGIS中的 TimeManager 插件轻松地将其可视化。 通过TimeManager,允许您查看和导出可合并为动画的特定时间间隔之间的’切片’数据。

任务概述

我们将对海上海盗事件进行重点分析,创建热图可视化并创建动画,以了解过去20年中海盗热点的变化情况。

您将会学习的其他技能

  • 使用Heatmap渲染器快速显示密集点数据

  • 创建和使用自定义地图投影

获取数据

国家地理空间情报局的 Maritime Safety Information portalAnti-shipping Activity Messages 的形式提供了所有海盗行为的shape文件。下载数据库的 Arc Shape file 版本。

Natural Earth 有多个全局矢量层。下载包含陆地多边形 10m Physical Vectors - Land

为了方便起见,您可以直接从下面下载上述层的副本:

ASAM_shp.zip

ne_10m_land.zip

资料来源:[NGA_MSI] _ [NATURALEARTH]

设置

前往 Plugins ‣ Manage and Install Plugins… 。搜索并安装 TimeManager 插件。

../../_images/setup1.png

程序

  1. 在 QGIS浏览器面板中,找到保存下载数据的目录。 展开 ne_10m_land.zip ,然后选择 ne_10m_land.shp 层。 将图层拖到画布上。接下来,找到 ASAM_shp.zip 文件。 展开它,然后选择 asam_data_download / ASAM_events.shp 层并将其拖到画布上。

../../_images/19.png
  1. 加载图层后,您可以看到代表盗版位置事件的各个点。 有成千上万的事件,很难通过盗版确定。 可视化数据的更好方法是通过热图,而不是单个点。 选择 ASAM_events 图层,然后单击 Layers 面板中的 Open the layer Styling Panel 按钮。 单击 Single symbol 下拉列表。

../../_images/21.png
  1. 在渲染器选择下拉列表中,选择 Heatmap 渲染器。 接下来,从 Color ramp 选择器中选择 Viridis 色带。

../../_images/31.png
  1. Radius 的值调整为 5.0 。 在底部,展开 Layer Rendering 部分,然后将 Opacity 调整为 75.0% 。这样可以使热点具有良好的视觉效果,并在其下具有陆地层。

../../_images/41.png
  1. 现在让我们对这些数据进行动画处理,以显示盗版事件的年度地图。进入 Plugins ‣ TimeManager ‣ Toggle visibility

../../_images/51.png
  1. TimeManager 面板中,单击 Settings

../../_images/61.png
  1. Time manager settings 窗口中,单击 Add layer 按钮。

../../_images/71.png
  1. 源数据包含属性 dateofocc - 表示事件发生的日期。插件将使用此字段来确定每个时间段渲染的点。选择 ASAM_events 作为 Layer ,选择 dateofocc 作为 Start timeEnd time 应设置为 Same as start 。点击 OK

../../_images/81.png
  1. 返回 Time manager settings 窗口中,单击 OK

../../_images/91.png
  1. 单击 TimeManager 面板中的 Power 图标以启用插件。 将时间范围大小设置为1年。 启用后,您将在 ASAM_events 层旁边看到一个过滤器图标。 TimeManager的工作原理是根据选定的字段和指定的时间段将过滤器应用于图层。

../../_images/101.png

注解

由于TimeManager通过在图层上应用过滤器来工作,因此它仅适用于支持此功能的图层类型。大多数数据源类型都支持它-一个值得注意的例外是临时存储层。如果您之前做过一些处理并有一个临时层,请在该层上使用TimeManager之前,右键单击并选择 Make Permanent

  1. 现在您可以观看动画了。 点击 Play 按钮以查看每年的盗版热点动画。

../../_images/11.gif
  1. 您会注意到,对于动画的每一帧,日期都显示在右下角。让我们更改它以显示地图所代表的年份,而不是完整的日期和时间 在 Time Manager 面板中单击 Settings 。在 Time manager settings 对话框中,单击 Time display options

../../_images/121.png
  1. 调整 Font Size25 。 将 DateTime`格式更改为 ``%Y` 。时间格式应指定为 Python strftime%Y 是4位数字年份的短代码。您也可以将 Placement direction 更改为 NW 。点击 OK

../../_images/131.png
  1. 返回 Time manager settings 对话框,选中 Looping animation 复选框。当您更改样式和调整样式以使动画从头开始继续播放时,这将很有帮助。点击 OK

../../_images/141.png
  1. 现在,如果您重播动画,您将看到标签将在左上角显示动画的年份。在这一点上,我们可以导出动画,但是还可以应用另一个更改来使地图更好。默认的地图投影是 EPSG:4326 可以存储源数据,但对于这样的全局可视化来说并不理想。我真的很喜欢 Equal Earth Projection ,它可以使人视觉上更准确地反映世界。这是一个相当新的预测,尚未在QGIS中用作预定义选项。但是,通过定义自定义投影,可以轻松地在QGIS中使用它。进入 Settings ‣ Custom Projections…

../../_images/151.png
  1. Custom Coordinate Reference System Definition 对话框中,单击 +`按钮。 输入 ``Equal Earth` 作为 name。在 Parameters 框中输入以下定义。参数必须以 PROJ format 进行指定。输入参数后,单击 OK

+proj=eqearth +datum=WGS84 +wktext
../../_images/161.png
  1. 在QGIS主窗口中,单击右下角的当前CRS显示。

../../_images/171.png
  1. 搜索 Equal Earth 以查找并选择新定义的投影。点击确定。

../../_images/181.png
  1. 您将看到地图转换为相等地球投影。现在我们准备导出动画。导出之前,请确保将 Time Manager 面板中的时间滑块设置为开始位置。动画的导出将从时间滑块的当前位置开始。在 Time Manager 面板中,单击 Export Video 按钮。

../../_images/191.png
  1. Export Video dialog 对话框中,单击 Select output folder 并选择计算机上的目录。 选择 Frames only 选项,然后单击 OK 以开始导出过程。

../../_images/20.png
  1. 导出完成后,您将在输出目录中看到每年的PNG图像。现在,让我们根据这些图像创建GIF动画。从单个图像帧创建动画有很多选项。我喜欢 ezgif.com 作为一种简单的在线工具。访问该网站并单击 Choose Files 并选择所有 .png 文件。请注意,导出文件夹还将为每个包含地理参考信息的帧提供一个 .pgw 文件。您可能需要按 Type 对图像进行排序,以便仅批量选择 .png 文件。选定后,点击 Upload and make a GIF! 按钮。

../../_images/211.png
  1. 该过程完成后,点击 Save 按钮将GIF下载到您的计算机上。

../../_images/animation.gif