首页 > 解决方案 > 将栅格数据导入 NetLogo 会导致所有补丁变量 = 0 的列

问题描述

当我使用此代码将栅格图层导入 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 值(将栅格数据导入 NetLogo 会产生一行/列 NaN 值)。

这个栅格的尺寸是正确的;0 值的列不是额外的,这意味着丢失了一些数据。

标签: gisnetlogoraster

解决方案


感谢@Tyr:此处发布了针对此可能错误的解决方法。这是我为 NetLogo 6 使用的代码,以确保将光栅正确应用于 NetLogo 世界:

 file-open "data/my-folder/my-file.asc"
 let temp []
 repeat 6 [let header file-read-line] ; skip first 6 lines of header
 while [file-not-at-end?][
       set temp lput file-read temp 
]
 file-close
(foreach sort patches temp [
       [a b] -> ask a [ set my-variable b] 
 ] )

推荐阅读