我有以下疑问。我在.asc中有两个文件。我使用GIS扩展将栅格导入到NetLogo 6.2版本中。我要求veg <= 0.2的值具有灰色+4(低值)。
但是,当检查一些灰色+4颜色的补丁时,会出现veg > 0.2 values(见图)。我在代码中做错了什么?有人能帮我吗?

下面是我的代码:
extensions [ gis ]
globals
[
edge-size
veg
veg-2
]
patches-own
[
veg-values
veg-2-values
]
to setup
clear-all
set edge-size 300
resize-world 0 edge-size 0 edge-size
setup-layers
create-turtles 15
reset-ticks
end
to setup-layers ;; load in the GIS data
set veg gis:load-dataset "./layers/veg.asc"
set veg-2 gis:load-dataset "./layers/veg2.asc"
gis:set-world-envelope gis:envelope-of veg
gis:apply-raster veg veg-values
gis:set-world-envelope gis:envelope-of veg-2
gis:apply-raster veg-2 veg-2-values
color-veg
color-veg-2
end
to color-veg
ask patches [
if veg-values <= 0.2 [ set pcolor gray + 4 ] ;; low values
if veg-values > 0.2 [ set pcolor green - 4 ] ;; high values
]
end
to color-veg-2
ask patches [
if veg-2-values <= 0.2 [ set pcolor gray + 4 ] ;; low values
if veg-2-values > 0.2 [ set pcolor green - 4 ] ;; high values
]
end谢谢大家!
发布于 2021-05-04 18:03:00
设置修补程序的过程如下所示:
to setup-layers ;; load in the GIS data
; ... multiple lines to assign values to patches from GIS data
color-veg
color-veg-2
end因此,它使用GIS数据为每个补丁提供两个值,一个用于变量'veg- values‘,另一个用于变量'veg-2-values’。然后,它调用“color-veg”过程,该过程根据“veg-values”的值为补丁着色。然后,它立即调用该过程,根据“veg-2-values”的值对补丁进行着色。
这意味着在程序结束时,补丁将由'veg-2-values‘的值着色。补丁有两个变量,但‘veg-2-value’是用来给它着色的。
https://stackoverflow.com/questions/67350346
复制相似问题