You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetLogo导出ASC文件分辨率与输入不符的原因及解决方法

问题原因分析

分辨率从30米变为50米的核心原因是NetLogo的patch地理尺寸未与输入DTM的30米像素分辨率匹配:

  • NetLogo默认世界大小(如-25到25,共51个patch)会自动计算每个patch的地理宽/高(总范围除以patch数量)。如果你的DTM地理范围恰好是50米×patch数量(比如总宽度2550米,51个patch的话就是2550/51=50米),输出栅格就会沿用这个patch尺寸作为像素大小。
  • 你的代码仅用gis:set-world-envelope匹配了地理范围,但未调整NetLogo世界的patch数量与DTM的像素数量对齐,导致gis:apply-raster将DTM的30米像素值重采样到了更大的patch上,导出时自然继承了patch的地理尺寸。
解决方案:强制patch尺寸与30米分辨率对齐

要让输出保持30米分辨率,需让NetLogo的每个patch严格对应输入DTM的一个30米像素,具体修改如下:

1. 调整NetLogo世界大小与DTM像素数一致

在setup-terrain开头,加载DTM后立即调整世界范围,让patch数量等于DTM的像素宽/高:

  • gis:width-of elevation返回DTM的像素列数,gis:height-of elevation返回行数。resize-world将世界设置为从0到(像素数-1)的范围,确保每个patch对应一个DTM像素。
  • 此时gis:set-world-envelope会自动计算每个patch的地理尺寸为:总范围宽度/像素列数 = 30米,高度同理。

2. 移除重复的世界范围设置

在setup-roads中,无需再次执行gis:set-world-envelope gis:envelope-of elevation,setup-terrain已经完成了正确的世界范围配置,重复设置可能引发意外问题。

3. 正确导出栅格

导出结果时,使用NetLogo GIS扩展的gis:store-dataset命令,基于patch变量创建栅格:

这样导出的栅格会保持30×30米的分辨率,导入ArcGIS Pro后不会出现尺寸变化。

验证要点
  • 运行模型前,查看NetLogo界面“Settings”中的“World Size”,确认宽/高数值与DTM的像素数一致。
  • 导出后通过ArcGIS Pro的“栅格属性”查看像素大小,确认是否为30×30米。

内容的提问来源于stack exchange,提问作者Tanyta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 00:07:51