我目前有一个由四个 shp 文件组成的数据集——最低温度、最高温度、平均温度和降水量——用于文件的每个坐标。我试图解决的问题要求我应该能够在运行模型时动态更改这些变量。我正在考虑使用滑块,但我不确定是否可以使用滑块来更改 shapefile 值,我也在网上做了一些研究,但没有找到任何人试图解决这个问题。有可能做我想做的事吗?
谢谢。
好的,所以在您的setup
代码中,您可以读取 GIS 数据并为每个补丁分配四个属性。假设这些变量被称为最小温度、最大温度、平均温度和降水。所以你在顶部有一些这样的代码:
patches-own
[ min-temp
max-temp
mean-temp
precipitation
]
您可以创建额外的变量 - 因此将其替换为:
patches-own
[ min-temp-GIS
max-temp-GIS
mean-temp-GIS
precipitation-GIS
min-temp
max-temp
mean-temp
precipitation
]
将 GIS 数据集中的值分配给前四个变量。创建您的滑块(例如 max-temp-factor)并将以下内容添加到您的设置代码中。
to setup
... <all the code to import the values>
ask patches
[ set max-temp max-temp-GIS * max-temp-factor
... <same for other three variables>
]
...
end
现在补丁有两个值,你的滑块只是一个乘数(或者可以从 -10 到 +10 并增加温度等),这样你就可以有“如果降水量降低 20% 会怎样”或“如果最高温度高 10 度怎么办?滑块上的默认值对于“加法”因子为 0,对于“乘数”因子为 1。
如果您想在模拟过程中更改这些值(因此第一年温度正常,但随后温度升高),那么您需要ask patches [set max-temp max-temp-GIS * max-temp-factor]
在go
步骤开始时执行代码,以便它计算每个变量tick
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句