【发布时间】:2018-07-05 08:53:28
【问题描述】:
当我使用此代码将栅格图层导入 NetLogo 并调整世界大小时,最后一列的所有补丁变量在它应该包含数据时为零。这只发生在同一景观的少数栅格上。
set rasterLayer gis:load-dataset "x.asc"
resize-world 0 (gis:width-of rasterLayer) -1 0 (gis:height-of rasterLayer) -1
gis:set-world-envelope gis:envelope-of rasterLayer
gis: apply-raster rasterLayer
在调整世界大小时没有“-1”,我会得到一列 NaN 值 (Importing raster data into NetLogo results in a row/column of NaN values)。
这个栅格的尺寸是正确的; 0 值的列不是额外的,这意味着丢失了一些数据。
【问题讨论】:
-
关于这个问题的更多注意事项:NetLogo 世界的尺寸(166 行,202 列)在我调整大小后与栅格的尺寸相匹配。这是否意味着不应该进行重采样并且在
gis: apply-raster命令之后NetLogo 世界中的所有补丁都应该完全镜像光栅?如何确定 NetLogo 世界和栅格的边界是否对齐? -
您是否已经检查过此答案和解决方案? stackoverflow.com/questions/37703137/… 但请记住,建议的解决方案代码示例使用 NetLogo 5 语法。对于 NetLogo 6,您必须调整 foreach 部分(参见 ccl.northwestern.edu/netlogo/docs/dictionary.html#foreach 上的多个列表示例)
-
@Tyr 非常感谢!尽管反复搜索,我以前没有遇到过这个问题和答案。您共享的链接中发布的答案确实解决了问题。唯一的问题是,以这种方式将 ascii 文件应用到 NetLogo 世界需要更长的时间,特别是因为我有大约 15 个已应用的栅格和大约 500 个这样的图块(我已经将一个大景观分割成更易于管理的“图块”稍后将合并以形成景观)我必须为此重复操作。