gis - 从 NetLogo 中的栅格数据分配补丁值
问题描述
我正在尝试根据栅格值为 NetLogo 中的补丁分配值:0、1 和 2。这些补丁只需要与我的栅格的值相关,它确实使用灰度正确显示,然后“绘制”自己的颜色分别是蓝色、绿色和白色。
使用 gis 扩展可以很好地加载此栅格数据。在 gis:load-dataset 之后,我尝试使用 apply-raster 命令和 ifelse 来根据值提供选项。我相信我在滥用布尔运算符,但网上很少有例子像我尝试的那样广泛。
patches-own [value]
; Draws raster dataset (terrain of each Millenium)
to display-terrain
gis:paint terrain 62
ask patches [
(ifelse
value = 0 [
set pcolor blue
]
value = 1 [
set pcolor green
]
; elsecommands
[
set pcolor white
])
]
end
我目前无法判断这些值是否被正确分配并不断收到“ifelse 认为这是一个命令块”的错误,所以我认为格式不正确和/或缺少值关联。
解决方案
实际上,您完全按照文档中的说明使用它,但您可能没有当前版本。NetLogo v6.0.4 中的多项选择ifelse
是全新的。您需要显式包含cf
扩展名,并且在调用新ifelse
语法时需要扩展名。
NetLogo 的早期版本根本不会这样做。您拥有的语法适用于仅在最近几周发布的 v6.1。
试试这个 v6.0.4:
extensions [cf]
patches-own [value]
to testme
clear-all
ask patches [ set value one-of [0 1 2] ]
ask patches [
(cf:ifelse
value = 0 [
set pcolor blue
]
value = 1 [
set pcolor green
]
; elsecommands
[
set pcolor white
])
]
end
推荐阅读
- node.js - 在 linux 中切换节点版本以进行 VS Code 安装
- node.js - 如何修复 Nextjs 中的“未定义窗口”
- hana - 如何在 SAP Hana 中获取 2 个时间戳值之间的差异?
- aws-lambda - 在 terraform 计划阶段避免 lambda 调用
- c - 传递结构时丢弃限定符
- node.js - 在 Manjaro linux 上安装节点 js 和 npm 时出现问题
- bash - 利用 awk 并制作 awk 脚本 - 初学者问题
- java - 上传到部署服务器时无法将图像写入 src/main/resources/static
- android - React-navigation 在发布 apk 中不起作用
- iis - 不要终止 IIS 上的应用程序