当得到了future模型输出的1992-2035逐年的发展模拟情况之后,可以利用 GRASS temporal framework 制作时空数据集(作为 WxGUI Animation Tool ( g.gui.animation ))的输入。下面的步骤并不是一定的,可以根据自己的需要选择颜色表以及想要表现的静态图层。
-
1)对GRASS GIS temporal framework的简要介绍
在使用这个时态框架时,我们不使用单独的地图层,而是使用时空数据集(temporal and spatial dataset),数据集是具有指定时间戳的单个映射层的集合,但是需要注意,栅格、矢量和三维栅格数据仍然存储在标准的GRASS数据库中,而时态框架在单独的时态数据库中管理时态元数据。
拓展材料:
- short presentation from FOSS4G 2014 workshop
- GRASS as a Temporal GIS - Sören Gebbert (longer presentation)
- official documentation
- examples and workflows
-
2)利用输出数据制作时空数据集
grass gis 中 Animation tool 可以直接利用栅格数据进行转换,但是将时间序列中的所有栅格都转换到时态数据库中会更加方便
首先创建一个具有相对时间类型的时空栅格数据集:
t.create output=futures_series type=strds temporaltype=relative \ semantictype=mean title="Development" \ description="Development time series 2012 to 2035 generated by FUTURES"
注意,反斜杠表示该行继续在下一行,这种语法在类unix的命令行中工作,在GUI命令控制台中,只需将所有内容放在一行中,不需要任何反斜杠。
现在,获取由r.futures生成的时间序列中所有地图层的列表,pga(假设我们在运行模块时设置output_series=final):
g.list type=raster pattern=final_*
然后会看到输出图层的名称:
可以在(纯文本)编辑器中准备栅格文件列表,并使用该文件作为 t.register 的输入。或者可以使用GUI对话框的 t.register 复制粘贴 g.list 的栅格文件列表,
直接列表到文件选项的给定输入框中,命令应该类似于如下:
t.register input=futures_series \ file=.../.tmp/fatra/5311.19 start=2012 unit=years increment=1
为了验证数据库是否正确设置,可以 t.info 和 t.rast.list 进行检查:
t.info futures_series t.rast.list futures_series
-
3)动画工具
启动方式为:主菜单文件>动画工具(或从命令行g.g.animation直接进入)
动画工具可以显示一系列的栅格或矢量地图或时空数据集,与地图显示类似,动画工具可以显示不同的静态图层,包括栅格或矢量的。我们之前已经注册了 r.futures.pga 的一个时空数据集,所以我们可以简单地使用这个数据集。将输入数据类型设置为空时栅格数据集,然后选择前面创建的数据集。
为了使动画显示更多信息,我们还可以显示不同的静态层(在动画期间不会改变),例如道路或dem。通过双击层,我们可以改变它的显示属性,例如对于向量,我们可以在d.vector对话框改变符号。此外,如果需要的话我们可以使层半透明。
动画工具显示计算区域的范围,要更改范围,请更改计算区域,例如从地图显示—各种缩放选项—交互式地设置计算区域范围并绘制范围,在动画工具中按下重新运行。
此处建议层包括(自底向上)半透明土地利用图landuse_2011、时间序列futures_series、初始二元开发层urban_2011,raster值=1,只显示开发区域)和道路,并使用工具在栅格>管理颜色>管理颜色规则交互设置颜色的urban_2011为灰度。
至此就完成了一个简单的动画制作过程。
参考资料: https://grasswiki.osgeo.org/wiki/Creating_animation_from_FUTURES_output_in_GRASS_GIS