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

NetLogo中用Shapefile创建道路网络时walker移动报错求助

问题分析与解决

报错OF expected input to be an agent or agentset but got NOBODY instead的核心原因是某个walker的wlocation变量值为nobody,导致执行[link-neighbors] of wlocation时,of的输入不是有效的agent。

可能的触发场景

  1. setupWalkers执行时,nodes集合为空(没先运行make-road-network创建道路节点),此时one-of nodes返回nobody,直接赋值给wlocation。
  2. 部分道路节点是孤立的(没有任何链接),或者wlocation在运行过程中被意外重置为nobody。
  3. 代码中set origin Spots存在潜在问题:如果Spots是agentset,直接赋值会导致origin是整个集合而非单个目标点,后续若用它做路径判断会出错。

修复代码

1. 先确保setupWalkers只在有节点时创建walker

修改setupWalkers过程,添加节点存在性检查,同时修正origin的赋值(假设Spots是目标点agentset):

2. 在go过程中添加有效性检查

避免walker在无效位置或无邻居时执行移动:

3. 可选优化道路节点连接逻辑

原代码中ask nodes [ create-links-with other nodes in-radius 0.001 ]可能创建重复链接,可改为仅创建无向链接(NetLogo默认是无向,但重复创建会增加冗余),可以添加判断避免重复:

额外注意事项

  • 运行顺序必须是:先导入Shapefile数据→运行make-road-network创建道路→运行setupWalkers创建walker→最后运行go。
  • 确认roads是正确导入的Shapefile图层(polyline类型),否则gis:feature-list-of roads会返回空集合,导致无节点创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:07:31