Netlogo 将网络连接到;把这些点连起来;并评估属于代理的整个区域';s";本垒打;

Netlogo 将网络连接到;把这些点连起来;并评估属于代理的整个区域';s";本垒打;,netlogo,Netlogo,我有特工在不同资源的环境中移动。假设我的代理从中心开始,然后沿着一条曲线在景观中移动。我想以某种方式制作一个补丁集或所有补丁的其他分组,这些补丁包含代理移动所经过的补丁中的区域,模拟home range计算。我还无法从概念上思考如何做到这一点,因此我没有代码可以显示,但非常感谢您的帮助 最有效的方法可能只是跟踪海龟访问的斑块的最小/最大坐标。下面是一个简单的例子: turtles-own [ min-x max-x min-y max-y ] to setup clear-all cr

我有特工在不同资源的环境中移动。假设我的代理从中心开始,然后沿着一条曲线在景观中移动。我想以某种方式制作一个补丁集或所有补丁的其他分组,这些补丁包含代理移动所经过的补丁中的区域,模拟home range计算。我还无法从概念上思考如何做到这一点,因此我没有代码可以显示,但非常感谢您的帮助

最有效的方法可能只是跟踪海龟访问的斑块的最小/最大坐标。下面是一个简单的例子:

turtles-own [ min-x max-x min-y max-y ]

to setup
  clear-all
  create-turtles 1
  reset-ticks
end

to go
  ask patches [ set pcolor black ]
  ask turtles [
    rt random 30 lt random 30 fd 1 ; move randomly
    update-min-max
    ask home-range [ set pcolor [ color ] of myself - 2 ]
  ]
  tick
end

to update-min-max ; turtle command
  set min-x min (list min-x pxcor)
  set min-y min (list min-y pycor)
  set max-x max (list max-x pxcor)
  set max-y max (list max-y pycor)
end

to-report home-range ; turtle reporter
  report patches with [
    pxcor >= [ min-x ] of myself and
    pxcor <= [ max-x ] of myself and
    pycor >= [ min-y ] of myself and 
    pycor <= [ max-y ] of myself
  ]
end
海龟自己的[min-x max-x min-y max-y]
设置
清除所有
创造海龟1
重置滴答声
结束
外带
询问补丁[设置pcolor黑色]
问海龟[
rt随机30 lt随机30 fd 1;随机移动
更新最小最大值
询问主范围[设置我自己的颜色-2]
]
打上钩
结束
更新最小最大值;乌龟司令部
设置最小值-x最小值(列出最小值-x pxcor)
设置最小值-y最小值(列出最小值-y pycor)
设置max-x max(列出max-x pxcor)
设置max-y max(列出max-y pycor)
结束
报告家庭范围;海龟记者
使用报告修补程序[
pxcor>=[min-x]我自己和
pxcor=[min-y]我自己和

pycor您能定义“代理移动通过的补丁内的区域”的含义吗?我们是说“仅代理遍历的补丁”还是更广泛的东西,如“包含代理遍历的所有补丁的最小正方形区域”?是的,第二个。相当于从动物的位置点(如果你熟悉MCP分析)计算动物的家域。我在考虑这个问题。这会给你矩形,但对曲线没有帮助(也就是说,角点与路径断开)。我想OP实际上在凸集(数学术语)之后以访问的点为边界。但我能解决的唯一方法是创建一个包含所有访问的补丁的补丁集,然后获取所有对,并使用爬虫类型的海龟来识别它们之间的补丁。效率非常低。如果做不到这一点,我能想到的唯一方法是为每个值o保留最小pxcor和最大pxcorf pycor,以及类似的pxcor的每个值的最小pycor和最大pycor。可能是一个表?然后在最小/最大对之间创建补丁集。OP默认为“正方形区域”定义,但如果他们更喜欢凸包,则有一个完整的维基百科算法页面可供选择:。似乎其中一些算法在NetLogo中实现起来并不太难…:-)足够公平。我将默认解释为“更像”,而不是“完全像”