wdatepicker设置时间范围_QGIS 3.14 原生时间特性初探

9ced92c60bb9f48702932a1ea7863a18.png

QGIS 3.14版本引入了很多新特性,个人认为最激动人心并影响深远的是对时间的原生支持。地理现象本身就是在一定时间和空间范围内发生与变化的,时间可以说是GIS进行可视化与空间分析时不可或缺的维度。传统GIS应用中,时间维度通常被隐含或者简化处理,既有地理数据本身更新频率较低的原因,也和GIS软件对时间的支持不足有关。

在之前的版本中,QGIS对时间的处理是通过Time Manager插件实现的。而QGIS 3.14将时间处理能力全面引入软件整体框架之中,以原生的方式全面支持各类数据集对时间维度的处理。

项目属性对话框增加了设置项目级时间参数的选项卡,可以指定项目时间属性的起始时间与终止时间。起始时间与终止时间构成了项目时间范围(Project Time Range)。

7291b3c6154018066374488070c0726c.png

图层属性对话框增加了配置图层时间参数的选项卡,可以为图层设定多种时间特征。

f77ca79d89b4afe8e073faca335703d8.png

菜单【视图】-【面板】中增加了【Temporal Controller】(即【时间控制器】)子菜单,可以控制是否显示【Temporal Controller】面板。

26bf0941dfa03fa61210a45f1a9a66c6.png

【Temporal Controller】面板用于打开或关闭地图窗口的按时间导航功能,并可以设定各类显示参数。通过设定起始时间与终止时间,【Temporal Controller】面板定义了地图窗口时间范围(Canvas Time Range)。

a1eb7bbf1e65c4b2924ca114771022a5.png

QGIS 3.14支持的时间类型有很多种,本文以包含时间字段的点图层为例,演示时间的用法。示范数据采用大家熟悉的世界海盗事件数据,关于数据的说明可以参考《QGIS 3.10 制作时序动画》。

示范数据下载地址:

海盗事件图层:

http://www.qgistutorials.com/downloads/ASAM_shp.zip

1:1千万陆地图层:

http://www.qgistutorials.com/downloads/ne_10m_land.zip

将下载的两个压缩文件解压后生成的SHP文件加载到QGIS 3.14中,并将图层名分别修改为“海盗事件”和“大陆”。

ac765c18e5ba8b1920000daaa1becee4.png

打开“海盗事件”图层属性表,可以看出dateofocc字段记录了2000年1月2日至2018年1月1日之间全球6000多次海盗事件发生的日期。

3995c06e37f3f22550e036cb44b02e8d.png

默认情况下,各个年份发生的海盗事件全都显示在地图窗口中,难以区分。可以通过对dateofocc字段设置过滤条件,达到只显示特定年份数据的目的,但不同时间段数据分布规律的对比依然繁琐且不直观。如果通过为不同年份的数据设定不同样式的符号,虽然可以达到区分的效果,但对于数据密集的区域,会存在大量符号压盖的情况,而且无法反映出数据在时间尺度上的演变规律。QGIS 3.14的时间处理能力为解决这些问题提供了较好的处理方案。

打开“海盗事件”图层属性对话框,切换到【Temporal Settings】选项卡。勾选选项卡上方的【Temporal】复选框,激活图层的时间特性。在【Configuration】下拉列表中选择【Single Field with Date/Time】,表明时间信息包含在图层的单个字段中。在【Field】下拉列表中选择【dateofocc】,指定该字段为图层的时间字段。

a7c6e70f6f96687f0e4c2dde9ca3ca2b.png

设置完毕后,点击【OK】按钮,关闭对话框,返回地图窗口。这时,【图层】面板里的“海盗事件”图层右侧出现了一个时钟形状的图标,标识该图层为时间图层(Temporal layer)。

30682b8feb235fd581279e6bca771b66.png

通过菜单【视图】-【面板】-【Temporal Controller】,打开【Temporal Controller】面板。默认情况下,【Temporal Controller】的时间导航功能处于关闭状态。

fe2a879fd835791f392cdd824867a0e1.png

点击【Temporal Controller】面板上方左数第三个按钮,切换到时间导航动画(Animated temporal navigation)状态。注意观察,地图窗口中的海盗事件点要素全部消失了。原因是【Temporal Controller】面板中时间范围的默认起止日期都是当前日期(即今天),而地图窗口中的任一海盗事件的发生时间均不在这一默认时间范围内,因此全都被过滤掉了。点击时间范围设置下拉按钮,在弹出菜单中选择【Set to Single Layer’s Range】-【海盗事件】,将地图窗口的时间范围设置为与海盗事件图层的时间范围保持一致。

b7bb68c093d9df4c6eda9769f677213e.png

设置完成后,【Temporal Controller】面板中的地图窗口时间范围将显示为从2000年1月2日起到2018年1月1日止。在时间间隔(Step)下拉列表中选择years,即以年为间隔。

3f10bb2fc50b979319b43bd4936777a7.png

点击【Temporal Controller】面板中的【Play】按钮,地图窗口将以年为单位自动切换各年的海盗事件要素,达成时态动画的效果。

e413fb8128e2eda391a4afd6eeebbc96.gif

这一效果实现的原理是:【Temporal Controller】面板定义了地图窗口的时间范围,即从2000年1月2日起到2018年1月1日止。时间间隔设置为1年,意味着动画第一帧对应的时间段为2000年1月2日至2001年1月1日,第二帧对应的时间段为2001年1月1日至2002年1月1日,以此类推。对于每一帧动画,时间字段dateofocc取值在该帧对应的时间段范围内的要素将会显示在地图窗口中,其余要素则将被过滤掉。

点击【Temporal Controller】面板右侧的【Export animation】按钮,弹出【Export Map Animation】对话框,设定一个输出文件夹,保持其他各项的默认设置,可以将各帧动画批量输出为图片。

3ee501710a7a884e34684dcd7856a6bd.png

72fe2110b2be47de87c17673563b6857.png

打开ezgif.com 网站,将上述图片上传,可以合成GIF动图并下载到本地使用,具体操作方法可以参考:《QGIS 3.10 制作时序动画》。

57918f7225e2efc6ea26307142d8fd81.gif

矢量图层的各种渲染方式都可以制成时间动画,比如热力图。

2f513c253f0655fcac5a2a73d28c6d2b.gif

QGIS 3.14对时间特性的支持是全方位的,而且时间特性可以有多种组织形式。本文仅介绍了包含单个时间字段的点图层的时态可视化效果,还很初级和肤浅。今后将继续深入研究QGIS 3.14的时间特性,并及时与大家分享。

Q博士

2020年6月27日


版权声明

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

af498a1399c265ee85523b9f97318327.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值