首先,如果这是一个愚蠢的问题,我很抱歉,因为我是Netlogo的新手。
我已经完成了Steven Railsback和Volker Grimm书中的蝴蝶模型,并且有一个练习来导入一个具有坐标X Y的文件和一个在该示例中为高程的变量。到目前为止,好的。但我现在正在尝试实现一个模型,其中我们有4个不同的文件,每个文件包含相同的坐标但不同的变量,我的问题是:是否可以导入这4个文件并在我们的“环境”中有4个不同的变量?
答案 0 :(得分:2)
只是为了确保你正在使用" ElevationData.txt"找到文件here,对吗?因此,您的文件阅读代码应该与Railsback and Grimm本书中显示的内容大致相同:
file-open "ElevationData.txt"
while [not file-at-end?] [
let next-X file-read
let next-Y file-read
let next-elevation file-read
ask patch next-X next-Y [set elevation next-elevation]
]
file-close
因此,如果您要导入的其他文件大多与" ElevationData.txt"相同。文件,但在第三列中具有不同的值,您绝对可以相应地修改该代码块。如果我们以植被覆盖为例,您需要patches-own
变量,以及已存在的elevation
变量:
patches-own [ elevation veg-cover ]
现在假装你有一个" VegetationData.txt"文件看起来像:
0 0 0.86
1 0 0.15
2 0 0.42
3 0 0.44
4 0 0.43
5 0 0.33
...
运行高程导入后,您可以使用植被完成相同的操作:
file-open "VegetationData.txt"
while [not file-at-end?] [
let next-X file-read
let next-Y file-read
let next-veg-cover file-read
ask patch next-X next-Y [set veg-cover next-veg-cover]
]
file-close
现在,您的修补程序将为其elevation
和veg-cover
变量分配值。
也就是说,如果可能的话,将输入文件组合在一起并加载它们会更好。如果您有一个组合的Elevation和Vegetation文本文件,如下所示:
0 0 532.4 0.86
1 0 529.3 0.15
2 0 526 0.42
3 0 520 0.44
4 0 519.5 0.43
5 0 519.3 0.33
...
在组合数据集(" ComboData.txt")中,您仍然拥有x和y列,但现在第三列是高程,第四列是植被覆盖。现在,您可以通过稍微修改导入代码来同时加载所有内容:
file-open "ComboData.txt"
while [not file-at-end?] [
let next-X file-read
let next-Y file-read
let next-elev file-read
let next-veg-cover file-read
ask patch next-X next-Y [
set elevation next-elev
set veg-cover next-veg-cover
]
]
file-close