pb为啥数据窗口字段不显示必须点一下才能显示_QGIS 3.14|地震数据动画效果实战(二)动画设置篇...

332b689563e4d8d013620804d0213d82.gif

 01 

设置图层Temporal属性

在QGIS 3.14中,图层的属性对话框首次加入了 Temporal标签页,提供图层的时间设置。

右键点击【图层】面板中的“quake2020”图层,弹出菜单中选择【属性…】,打开图层属性对话框。

ff1843ad4601c4c35a94e85126e6becc.png

勾选【Temporal】复选框,表示该图层接受 Temporal Controller控制。

545c747179ebc776c995361c56248d7b.png

点击【Configuration】下拉框,可以看到有多种形式时间设置:

  • Fix Time Range:固定时间范围,即用时间常数设置开始时间和结束时间,图层在该时间范围将处于可见状态。

  • Single Field With Date/Time:通常图层包含了一系列事件点,如地震事件,属性表中保存了事件发生的时间,图层根据时间字段过滤要素。

  • Separate Fields for Start and End Date/Time:图层包含两个时间字段,一个表示事件的发生时间,另一个表示事件的结束时间。从事件发生时间开始,该事件点将显示在地图上,一直到事件结束时间,该点在地图上消失。

  • Separate Fields for Start and Event Duration:与上一条类似,图层含两个时间字段:事件发生的时间和事件持续时间。实际上,在地图渲染时,将开始时间加上持续时间得到事件的结束时间,以判断该事件点是否应该绘制到当前地图窗口中。

  • Start and End Date/Time from Expression:用表达式计算出开始时间和结束时间,特别适合于原始数据提供的时间字段不符合 Temporal Controller输入要求时,用表达式进行数据类型转换。

  • Redraw Layer Only:仅重绘该图层。适用于用表达式建立了与时间变量相关的符号化效果,随着时间的变化需要刷新地图。

35336c27dae12a61f36159b784c0da56.png

在本文中,时间属性选择“Single Field with Date/Time”,【Field】选择《QGIS 3.14|地震数据动画效果实战(一)数据准备篇》合成的时间字段“time”,其他选项保持默认,点击【OK】按钮,完成图层属性设置。

返回QGIS主窗口,可以看到“quake2020”图层的右侧出现了86810b1c72e74368bb23c60b61da7f36.png图标,表示该图层受到Temporal Controller控制,在地图时间发生变化时,图层会根据时间范围过滤要素,并重新绘制。

ab90cba126b559530cea3d0b668b6ee1.png

 02 

设置动画参数

点击【地图浏览】工具栏上的86810b1c72e74368bb23c60b61da7f36.png【Temporal Controller Panel】,显示Temporal Controller面板。

bb93df6311e6a78ce6e5f808d5f1bde5.png

第一次打开Temporal Controller时,默认情况下动画播放处于关闭状态,即Temporal navigation disable。面板上方提供三个按钮: 368bc4d39d51424ad8d526e3a8bef7ef.pngTurn off temporal navigation、b03c1913c034671b043c5d1bb9ef05ae.pngFix range temporal navigation、d0102c0285d01842c46ed928adfeacc4.pngAnimated temporal navigation。

31fd05272af7339f8bd511a23b623640.png

 368bc4d39d51424ad8d526e3a8bef7ef.png:将Temporal Controller面板的操作按钮收起,不再根据时间对要素进行过滤。

b03c1913c034671b043c5d1bb9ef05ae.png:设置动画时间范围,点击右侧的28af205cafc618b994dfa0a0f8866265.png【刷新】按钮,可自动填入当前图层的时间取值。

05422cd009ba2060460590868e58850a.png

 d0102c0285d01842c46ed928adfeacc4.png :打开动画播放工具条,点击相关按钮可控制动画播放。

点击d0102c0285d01842c46ed928adfeacc4.png,打开动画相关设置界面。

点击时间范围【range】右侧的28af205cafc618b994dfa0a0f8866265.png【刷新】按钮,设置动画时间为当前图层时间范围。

【Step】设置为1 months,即步长为1个月。表示地图切换时,用当前地图(Frame)的结束时间作为下一帧的开始时间,加一个月得到下一帧的结束时间。例如,当前地图时间为2018年1月1日 到2018年2月1日,那么下一帧的时间范围为2018年2月1日到2018年3月1日。

fb4e041b6b7f7ded3ebfe1d076eed870.png

经过设置,现在可以点击816f32f5d306760d70d9967b00db8eb6.png按钮看一下动画效果了。

bbfff6381b209358d2bdb2f629ce442c.gif

效果不是很好,地震点很快出现又消失,像电影的快进镜头一样,让人眼花缭乱,很难看出地震分布规律。

如何把播放度放慢?

最简单的方法是在Temporal Controller中设置帧速(Frame Rate),即每秒钟播放多少幅地图,一幅地图相当于动画里的一帧。

点击Temporal Controller面板右侧的80955ac19a139b24ff672044a8f17d4b.png【Temporal Settings】按钮,将【Frame rate(frames per second)】设置为1,表示1秒播放一幅地图。点击fc230f6d38752e4868a824de44446dc7.png返回。

e8063209f8a378a708fb6058a285ebf1.png

点击816f32f5d306760d70d9967b00db8eb6.png查看动画效果。

35f3250d8892fbc3e0dac557d7554c1d.gif

由于设置步长(Step)参数为1 months,地图以一个月为时间单位切换,所以在动画中可以看到,同一个月内发生的地震同时出现,1秒钟后切换到下一个月地震图,时间尺度太粗,难以看出一个月内不同日期地震发生的前后顺序。

如果以天为单位绘制地图,展示的时间尺度将会更精确。

本文中,地震数据的时间范围是:2018年1月1日到2020年8月18日,共960天,如果以1天为步长播放,需要绘制960幅地图,用动画的术语来说,共有960帧画面。如果帧速为1 FPS,即1秒钟播放一帧,那么,观看两年地震数据需要16分钟(960帧/1FPS/60秒),显然,时间太长了。

有没有既能缩短总播放时间,又能以Step为1观看动画的办法呢?这就需要Event duration、Frame rate、Step三个参数的配合。

在Temporal Controller面板中,设置【step】为“1days”。如下图:

bb2539e03b9115e7e4ae2d092fdaefaa.png

点击80955ac19a139b24ff672044a8f17d4b.png【Temporal Settings】按钮,设置【Frame rate(frames per second)】为20 FPS,使得960帧画面只需要48秒(960/20)即可播放完成。

e8c250fa5aa7b5c4db201ac92e3aa318.png

打开“quake2020”图层的属性窗口,切换到Temporal标签页,找到【Event duration】,设置为“30 days”,表示Step为1天时,地震点将会在地图上显示30天,即停留30帧。当帧速为20 FPS时,每个点在地图上显示1.5秒(30帧/20 FPS)。

1738549f6198719b17dce6e2e1ed2441.png

点击816f32f5d306760d70d9967b00db8eb6.png查看动画效果。

2613458aa43302d6c999e8908c101e89.gif

经过上述设置过程,地震点以比较舒适的播放速度显示和消失,以天为单位的时间尺度和适当的滞留时间,可以观察到一段时间范围内每天地震事件的变化规律。

 03 

设置符号

地震的破坏程度,不仅跟地震发生的频率有关,更取决于地震等级的大小,因此在地震专题图中,地震等级是必须考虑的重要因素。下面以地震等级和地图时间、地震发生时间构建表达式,使地震点依据等级和滞留时间,呈现从小变大、最后消失的动画效果。

点击【图层】面板上方的8cfedd26870f213b0878eaf598b7de47.png【打开图层样式面板】按钮,在窗口右侧打开【图层样式】面板。

6ceffa78bfe97c444ae8a69f2114ab48.png

渲染样式选择31473bcb86339d35b041085be873faaa.png单一符号,选中【标记】下面的【简单标记】,点击【大小】右侧的0f6d66a97be51b442c40908cbedccabe.png【由数据定义覆盖】按钮,在下拉菜单中选择【助理】,打开【符号大小】助理设置面板。

aeb766f0fddd7d8a2b051650a4b38d56.png

点击【输入】->【源】右侧的【Ɛ】表达式按钮,在表达式代码编辑区输入:

"EQ_PRIMARY" *day( @map_start_time -  "time" )

f3fa40d7e20035ec61b9ca88b84f370e.png

上述表达式中:    

    "EQ_PRIMARY"为地震等级字段,取值0-9。

    @map_start_time:变量,表示当前地图(Frame)的开始时间。

    "time":地震发生的时间。

    Day:时间函数,以天为单位计算时间间隔。

由于图层属性中设置了Event duration为30天,所以表达式:day( @map_start_time - "time" )的取值范围是[0,30],"EQ_PRIMARY"的取值范围是[0,9],因此,表达式"EQ_PRIMARY" *day( @map_start_time -  "time" )的范围是[0,270],即符号大小的输入数值范围。

下方的【输出】参数组,表示符号绘制大小,最小值设为0,其他保持默认即可。

65024db0cd19b178672ffd1544b9072f.png

点击816f32f5d306760d70d9967b00db8eb6.png查看动画效果。

66a4213276be252f04916db0564e5856.gif

地震点根据等级从小变大、最后消失,使地图画面生动起来。

除了从小变大的效果之外,使用【应用变换曲线】功能,可以设计出更多的符号变化效果。

勾选【应用变换曲线】复选框,打开变换曲线。

65c5fcfbf98620596f3a73ffa141b1ba.png

“变换曲线”定义了【输入】->【输出】之间的对应关系,横坐标是【输入】,即表达式的取值,纵坐标是【输出】,即符号在地图上的绘制大小。

默认的变换曲线是从坐标0点到最大值点的直线,即线性变换,表示随着表达式取值增大,地震点慢慢变大。

按住鼠标左键,任意拖动曲线,可以在下方看到对应的输出效果。例如,下图中曲线表示地震点在地图上从0开始慢慢变大,表达式取值约50时,点最大,随后慢慢变小,直至消失。

028387f85db90f673546a7df50ce9807.png

点击816f32f5d306760d70d9967b00db8eb6.png查看动画效果

f32e6e32586a256710c170dd33e11054.gif

这样的动画是不是更有趣了?

关于动画参数的设置就介绍到这里,下一篇将介绍 给地图添加进度条。

吴建玲

2020年8月27日


版权声明

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

本文是参考了Nyall Dawson的视频整理。Nyall Dawson是QGIS开发团队成员,有10年的QGIS开发经验,他的直播条理清楚、思路新颖,感兴趣的朋友可以去观看相关视频,地址为:

https://www.youtube.com/watch?v=vgDg5cRwPRw。

71d162eb03023455e17650924e3d51c9.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值