Step5: 自定义数据输出

除了在运行过程中呈现动态模拟窗口,GAMA还支持以其他形式输出模拟数据,包括代理检查器(Inspector)、数据监管器(Monitor)、图表、文件、图像等

数据检查器(Inspector)

GAMA内置了数据检查器,无需进行额外的设置。数据检查器包含两种检索信息的方式: 代理族浏览器(Species browser) 代理检查器( Agent inspector)

  • 代理族浏览器(Species browser)可通过点击模拟界面右上角的图标打开,代理族浏览器中,包含了同一代理族中各代理的所有属性信息。

4.5.1 代理浏览器图标
4.5.2 代理浏览器
  • 代理检查器( Agent inspector)可通过在模拟界面右键选择某个代理,点击Inspect 查看某一代理的所有属性信息,并可以进行实时修改。

4.5.3 代理检查器

数据监管器(Monitor)

数据监管器可以用来实时查看指定数据的输出,比如我们希望在运行过程中实时查看所有食草动物和食肉动物的数量,可以通过以下操作实现:

首先,在全局代理中添加全局变量分别表示食草动物数量和食肉动物数量:

length(list) : 使用length函数将会返回列表的长度,这里分别返回当前食草动物与食肉动物族中代理的数量。

然后在实验设置的output中,添加数据监管器(Monitor),监管nb_preys、nb_predators两个参数的变化。

再次运行模拟,模拟界面将会出现Monitors窗口。

4.5.4 数据监管器

图表输出

如果希望通过更加直观的方式输出可视化的数据,GAMA支持输出折线图、拼图、直方图的输出。图标的输出定义在实验设置(experiment)中,使用chart关键字来构建不同的图表,接下来我们分别为捕食者模型添加折线图、饼图和直方图:

cycles: cycle是gama仿真模型中的离散时间单位,1个cycle表示仿真模型运行了一次。

size:{1,0.5}: 这里大小的表示,相当于将图表所在窗口的宽和高设为1,size:{1,0.5}表示图表的宽等于窗口宽,图表高等于窗口的一半。这种设定方式使得窗口改变时图表也会适应窗口跟着变化。同理,位置的表示也是一样的。

list count condition: 计算列表list中符合condition条件的个体的数量。

最终结果如下图所示:

4.5.5 图表输出

文件输出

文件输出的基本句式如下:

my_data为要保存的数据,type 定义保存数据类型,to定义保存文件路径。常用的文件类型有shp(gis文件格式), csv 和 txt。save语句不一定要定义在experiment中,可以写在全局定义或者族定义里。下面我们在全局定义中,增加一个函数来保存模型运行数据。

本节完整代码如下:

Last updated

Was this helpful?