【发布时间】:2016-06-08 12:55:33
【问题描述】:
我正在尝试使用以下代码将 ascii(241 行,463 列)应用于 netlogo:
set my-dataset "data/my-folder/my-file.asc"
resize-world 0 gis:width-of (gis:load-dataset my-dataset) - 1 0 gis:height-of (gis:load-dataset my-dataset) - 1
gis:set-world-envelope-ds (gis:envelope-of (gis:load-dataset my-dataset))
gis:apply-raster (gis:load-dataset my-dataset) my-variable
在 resize-world 命令中,我添加了 -1,因为 netlogo 从 0 开始,而 gis:width-of 从 1 开始。结果是一个 netlogo 世界,min-pycor 0 max-pycor 240 和 min-pxcor 0 max-pxcor 462(241x463 世界),与我的 ascii 大小完美匹配。 gis-world envelop 命令确保范围与 Netlogo 世界的 ascii 相似。我检查了这个,它再次完美匹配。
我面临的问题是,虽然 netlogo 行和列与 ascii 行和列匹配,但应用的 ascii 在 y 方向上位移了 1。 netlogo 世界的第一行用零填充,而我的 ascii 的第一行用高值填充。
图:顶行是红色的,显示 0 值,它们不应该是 0。
有人知道问题出在哪里吗?或者如何正确地将 ascii 应用到 netlogo 世界,以便一个 ascii 值填充相应的 netlogo 补丁?
也许除了这个:我可以阻止 netlogo 自动重新采样,这样我就可以确定 netlogo 中的值与我的 ascii.
感谢您的帮助
更多信息:
ascii 头文件
NCOLS 463
NROWS 241
XLLCORNER 2.54710299910375
YLLCORNER 49.4941766658013
CELLSIZE 0.00833333333339921
NODATA_value -9999
netlogo 信封:
show gis:world-envelope
observer: [2.5471029991037497 6.405436332467584 49.49417666580129 51.502509999150504]
我的文件信封:
show gis:envelope-of gis:load-dataset my-dataset
observer: [2.54710299910375 6.405436332467584 49.4941766658013 51.502509999150504]
请注意,存在细微的舍入差异,无论我如何编码世界信封,我都无法擦除它。无论如何,考虑到差异如此之小,我认为这不是问题所在。
- 编辑:我通过将 netlogo 值导出到栅格并在 ArcGIS 中进行比较来检查实际发生的情况。这不是一个简单的重采样问题。实际上,顶行只是缺少值,没有移位值。此外,中间的列和行重复,导致所有内容从中间向外移动到底部和右侧。我添加了一个简单的插图,希望这可以澄清问题。
【问题讨论】: