Gis NetLogo-将值应用于多边形内的面片

Gis NetLogo-将值应用于多边形内的面片,gis,netlogo,Gis,Netlogo,我让动物四处走动,然后用一条线连接它们行走的所有地点。这条线形成一个闭合多边形。我还使用图形扩展来填充多边形,以达到视觉效果。但我不知道如何让多边形内的所有斑块成为所有者的领地(即形成多边形的动物)。补丁可能由多个动物拥有。下面的代码演示了重叠多边形。我真的非常感谢你在这方面的帮助。谢谢 extensions [graphics] breed [animals animal] breed [homeranges homerange] animals-own [ Name X

我让动物四处走动,然后用一条线连接它们行走的所有地点。这条线形成一个闭合多边形。我还使用图形扩展来填充多边形,以达到视觉效果。但我不知道如何让多边形内的所有斑块成为
所有者的领地(即形成多边形的动物)。补丁可能由多个动物拥有。下面的代码演示了重叠多边形。我真的非常感谢你在这方面的帮助。谢谢

extensions [graphics]

breed [animals animal]
breed [homeranges homerange]

animals-own 
[ 
  Name 
  X 
  Y 
] 

patches-own 
[ 
  owner 
] 

homeranges-own 
[ 
  Name 
]

to setup 
  clear-all
  random-seed 4
  ask patches 
  [ 
    set owner nobody  
    set pcolor grey
  ] 

  let $colors [brown orange violet sky lime] 
  let $Name ["t6" "t7" "t8" "t9" "t10"]
  ask n-of 5 patches with [(pycor < 10 and pycor > -10) and (pxcor < 10 and pxcor > -10)]
  [ 
    sprout-animals 1
    [ 
      set shape "circle"
      set color item who $colors  
      set pcolor color 
      set X (list xcor) 
      set Y (list ycor) 
      set Name item who $Name
      set owner self
    ] 
  ] 
  graphics:initialize min-pxcor max-pycor patch-size
  reset-ticks 
end 

to go
  repeat 5
  [
    ask animals
    [
      rt 45
      fd 2
      set X lput pxcor X
      set Y lput pycor Y
      set pcolor [color] of self
    ]
  ]  
  ask animals
    [      
      pen-up
      let tempXY (map [list ?1 ?2] X Y)   
      graphics:fill-polygon tempXY
      ; create a turtle, which draws the homerange boundary
      hatch-homeranges 1
      [ 
        hide-turtle
        set Name [Name] of myself 
        set color [color] of myself
      ]

      ; draw the homerange boundary
      foreach tempXY
      [
        ask homeranges with [Name = [Name] of myself]
        [
          move-to patch (item 0 ?) (item 1 ?)
          pen-down
        ]
      ] 

      ; connect the last point of the homerange with the first one, to close the polygon
      ask homeranges with [Name = [Name] of myself]
      [
        let lastpoint first tempXY
        move-to patch (item 0 lastpoint) (item 1 lastpoint)   
      ]
    ]
end
扩展[图形]
繁殖[动物]
品种[家庭范围]
动物拥有
[ 
名称
X
Y
] 
补丁自己
[ 
所有者
] 
homeranges自己的
[ 
名称
]
设置
清除所有
随机种子4
询问补丁
[ 
无人拥有
设置彩色灰色
] 
let$colors[棕色橙色紫色天空石灰]
let$Name[“t6”“t7”“t8”“t9”“t10”]
使用[(pycor<10和pycor>-10)和(pxcor<10和pxcor>-10)]询问5个贴片中的n个
[ 
发芽动物1
[ 
设置形状“圆”
设置颜色项$colors
设置颜色
集合X(列表xcor)
集合Y(列表ycor)
设置名称项谁$Name
设置所有者自身
] 
] 
图形:初始化最小pxcor最大pycor面片大小
重置滴答声
结束
外带
重复5次
[
问动物
[
rt 45
fd 2
设置X lput pxcor X
设置Y lput pycor Y
设置自身的pcolor[颜色]
]
]  
问动物
[      
圈起
让tempXY(映射[列表?1?2]X Y)
图形:填充多边形tempXY
;创建一只海龟,绘制家庭范围边界
舱口homeranges 1
[ 
乌龟
设定我自己的名字[名字]
给自己定颜色
]
;绘制homerange边界
foreach tempXY
[
向homeranges询问[Name=[Name]本人]
[
移动到补丁(项目0?)(项目1?)
放下笔
]
] 
;将homerange的最后一个点与第一个点连接,以闭合多边形
向homeranges询问[Name=[Name]本人]
[
让lastpoint先看tempXY
移动到修补程序(项目0 lastpoint)(项目1 lastpoint)
]
]
结束
如果你看一下,你会发现过去(2012年)讨论过这个问题的解决方案


在该线程的末尾,Jim Lyons在建模共享空间上发布了一个指向模型的链接,但该模型似乎不再存在。如果你想问他这件事,他很高兴。

这篇文章提供了一个答案:。多边形将作为GIS形状文件导出,并使用GIS扩展插件重新导入。然后使用
gis:intersecting
为属于gis导入多边形的面片提供变量

谢谢赛斯。我也遇到过这种讨论,尽管我找不到一种方法来解决我的问题。我在访问吉姆的模型时也遇到了麻烦。我会试着联系他。