Gis 将光栅数据导入NetLogo会产生一列,其中所有面片变量均为0

Gis 将光栅数据导入NetLogo会产生一列,其中所有面片变量均为0,gis,netlogo,raster,Gis,Netlogo,Raster,当我使用这段代码将光栅层导入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: a

当我使用这段代码将光栅层导入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值()


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

多亏了@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] 
 ] )

关于这个问题,还有几点需要注意:调整NetLogo世界大小后,NetLogo世界的尺寸(166行,202列)与光栅的尺寸相匹配。这是否意味着不应进行重采样,并且在
gis:apply graster
命令之后,NetLogo世界中的所有补丁都应完全镜像光栅?如何确定NetLogo世界和光栅的边界是否不对齐?您是否已检查此答案和解决方案?但请记住,建议的解决方案代码示例使用NetLogo 5语法。对于NetLogo 6,您必须调整foreach部件(请参阅上的多个列表示例)@Tyr非常感谢!尽管经过反复搜索,我以前从未遇到过这个问题和答案。你分享的链接中的答案确实解决了这个问题。唯一的问题是,以这种方式将ascii文件应用到NetLogo world需要更长的时间,特别是因为我已经应用了约15个光栅和约500个这样的瓷砖(我已经将一个较大的景观分割为更易于管理的“瓷砖”,稍后将合并以形成景观),我必须重复此操作。