在创建带有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号。以及每个代理的布尔变量。
答案 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作为中间变量)分配给海龟。
我希望这可以对某人有所帮助!