In the process of making a NetLogo model with the gis extension, I am getting stuck at wanting to create turtles according to the shapefile location information. How do I create turtles on the location contained in the shapefile and make sure that they have properties also contained in the shapefile?
So far I managed to make a dataset in R and convert it into a shapefile and import it into NetLogo. With the code provided I am able to draw points on a map.
But I want to create agents on every location that is contained in the shapefile dataset. I have searched on the internet, but I cannot find it. Also when I look at the Netlogo user manual, I am not able to do it.
And in the shapefile dataset an extra characteristic is present which must be assigned to every agent because I want to create an household (agent) per location and according to the characteristic assign a color to it.
The shapefile contains an ID no., a boolean variable and coordinates
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)
Based on this code I can implement the following code:
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
Which draws points on a map, but I want to sprout agents on the points, keeping the ID no. and the boolean variable for every agent.
In the meantime with the help of you guys and other sources, I've managed to get what I wanted with the following code:
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
Where the shapefile is the database to be imported. And CC_PV_A is the boolean variable that is stated in the shapefile and assigned to turtles in the form of pv1 (with pv as an intermediary variable).
I hope this can help somebody!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加