NetLogo GIS扩展:如何根据shapefile中的位置信息创建乌龟

时间:2019-01-03 14:18:29

标签: gis netlogo shapefile

在创建带有gis扩展名的NetLogo模型的过程中,我陷入了要根据shapefile位置信息创建乌龟的困境。如何在shapefile中包含的位置上创建乌龟,并确保它们具有也在shapefile中包含的属性?

到目前为止,我设法在R中制作了一个数据集并将其转换为shapefile并将其导入到NetLogo中。使用提供的代码,我可以在地图上绘制点。

但是我想在shapefile数据集中包含的每个位置上创建代理。我已经在互联网上搜索了,但是找不到。同样,当我查看Netlogo用户手册时,也无法做到。

在shapefile数据集中,存在一个额外的特征,必须将其分配给每个座席,因为我想在每个位置创建一个住所(座席),并根据该特征为其分配颜色。

shapefile包含一个ID号,一个布尔变量和坐标

1 16823 0 c(1.7474251, 4.9600897)
2 16873 0 c(1.3272039, 5.1185999) 
3 16874 1 c(1.327054, 5.1162204)
4 16875 0 c(1.3270068, 5.115111)
5 16876 1 c(1.3268986, 5.1130956)

基于此代码,我可以实现以下代码:

set-patch-size 6.5
set dataset gis:load-dataset "PlotLocations_HARV.shp"
gis:set-world-envelope gis:envelope-of dataset
gis:set-drawing-color white
gis:draw dataset 1

这会在地图上绘制点,但我想在这些点上萌生特工,并保留ID号。以及每个代理的布尔变量。

1 个答案:

答案 0 :(得分:0)

与此同时,在你们和其他来源的帮助下,我设法通过以下代码获得了想要的东西:

to setup
      ca
      resize-world 0 120 0 120
      set-patch-size 6.5
      set dataset gis:load-dataset "PlotLocations_HARV3.shp"
      gis:set-world-envelope gis:envelope-of dataset
      gis:set-drawing-color white
      gis:draw dataset 1
      displayhh
end

to displayhh
  foreach gis:feature-list-of dataset [
    vector-feature ->
    let coord-tuple gis:location-of (first (first (gis:vertex-lists-of vector-feature)))
    let pv gis:property-value vector-feature "CC_PV_A"

   let long-coord item 0 coord-tuple
    let lat-coord item 1 coord-tuple

    create-turtles 1 [ set pv1 pv setxy long-coord lat-coord ]
  ]

end

其中shapefile是要导入的数据库。 CC_PV_A是在shapefile中声明的布尔变量,并以pv1的形式(以pv作为中间变量)分配给海龟。

我希望这可以对某人有所帮助!