如何在道路shapefile和特定区域上创建一定数量的海龟?

时间:2019-07-17 14:00:07

标签: gis netlogo

我已经导入了道路shapefile和多边形shapefile,并且已经与补丁相交了。我想在特定的多边形中创建一定数量的海龟,并且海龟只允许在道路shapefile上移动。 例如,在多边形A中有海龟20,多边形B中有海龟30,我想让它们的数量显示在自己的多边形上。

我所做的是我已经使用(我的意思是道路和多边形为2 foreach)将道路和多边形相交

foreach gis:feature-list-of x
  [ vector-feature ->
    ask patches gis:intersecting vector-feature
      [blah blah blah...]
  ]

然后,我使用此代码创建了海龟

to setup
  create-walkers Population
  ask walkers
  [
    set wlocation one-of patches with [pcolor = red]
    ;I have assigned the road shapefile to red color.
    move-to wlocation
end

只有补丁是红色的,就可以了, 但是当我尝试set wlocation one-of patches with [pcolor = red and pcolor = ;another color which is the color of polygon]时 Netlogo出现了一个错误

  

move-to期望输入是代理,但没有人代替

我该如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:2)

您似乎对patches有一个基本的误解。在NetLogo中,补丁程序是世界的一部分,并且是一个单元。这意味着patch只能有一种颜色。尝试运行此代码(作为新模型)

to testme
  ask patches
  [ set pcolor random 256
  ]
end

您可以看到补丁,每个补丁都有随机分配的颜色。现在,在命令中心中输入inspect one-of patches,将打开一个inspect窗口,用于随机选择的修补程序。您将看到列出的变量之一是pcolor

简短的回答-一个色块只能有一种颜色,因此您对颜色A和颜色B的色块的要求毫无意义。