如何在Netlogo中分配海龟和补丁之间的不同距离

如何在Netlogo中分配海龟和补丁之间的不同距离,netlogo,Netlogo,我对Netlogo很陌生。我试图创建一个交换意见的模型,以便为不受欢迎的设施选址找到合适的位置。该模型包含三种不同观点的人 我导入了一个包含四个不同土地利用类别(建筑、农业、森林、水)的GIS栅格图层。所有品种被随机分配到土地利用类“建筑物”。这种相互作用是通过两个代理之间的随机配对连接进行的。关于位置是否合适的默认意见值应基于一定距离内的土地利用类别。距离应除以近(50)。如果一只海龟被要求给出它对某个区域的意见,它应该自动计算出它们之间的距离 然而,我确实有一些问题,需要找到一个代码,为每只

我对Netlogo很陌生。我试图创建一个交换意见的模型,以便为不受欢迎的设施选址找到合适的位置。该模型包含三种不同观点的人

我导入了一个包含四个不同土地利用类别(建筑、农业、森林、水)的GIS栅格图层。所有品种被随机分配到土地利用类“建筑物”。这种相互作用是通过两个代理之间的随机配对连接进行的。关于位置是否合适的默认意见值应基于一定距离内的土地利用类别。距离应除以近(50)。如果一只海龟被要求给出它对某个区域的意见,它应该自动计算出它们之间的距离

然而,我确实有一些问题,需要找到一个代码,为每只海龟定义距离它近、中、远的距离。到目前为止,我有两个主要想法,但我编写的代码没有提供令人满意的结果

第一次尝试是这样的:

calc-distance
  ask turtles [
  if (distancexy pxcor pycor) <= 20
  [set location near]
  if (distancexy pxcor pycor) > 20 and (distancexy pxcor pycor) <= 50
  [set location middle]
   if (distancexy pxcor pycor) > 50
  [set location far]]
end
计算距离
问海龟[
if(距离XY pxcor pycor)20和(距离XY pxcor pycor)50
[将位置设置为远]]
结束
第二次尝试是这样的:

calc-distance
  ask turtles [
  if (distancexy pxcor pycor) <= 20
  [set location near]
  if (distancexy pxcor pycor) > 20 and (distancexy pxcor pycor) <= 50
  [set location middle]
   if (distancexy pxcor pycor) > 50
  [set location far]]
end
Turtel位于一个 斑块位于b 自动计算a和b之间的距离

  if ab <= 20
  [set location near]
  if ab > 20 and ab <= 50
  [set location ...}
end

如果ab 20和ab您试图将一个品种变量名作为参数传递。这是一个语法错误。
使用
distancexy
时,预期值为数字。您可以使用检查所有要检查的位置。然而,我认为你的海龟应该有变量来存储每个位置的意见

calc-distance
  ask turtles [
  if (distancexy point1-pxcor point1-pycor) <= 20
  [set point1-location "near"]
  if (distancexy point1-pxcor point1-pycor) > 20 and (distancexy point1-pxcor point1-pycor) <= 50
  [set point1-location "middle"]
   if (distancexy point1-pxcor point1-pycor) > 50
  [set point1-location "far"]
  ]
  . . . continue with all other locations OR use loop.
end
计算距离
问海龟[
如果(距离XY点1 pxcor点1 pycor)20和(距离XY点1 pxcor点1 pycor)50
[设置点1位置“远”]
]
. . . 继续所有其他位置或使用循环。
结束

您能解释一下什么不令人满意吗?例如,您是否收到错误消息(如果是,是什么),或者答案是否错误。只要看一看,我希望您在第一次尝试时会出现错误,因为您需要类似于带引号的[set location“near”]的东西。