У меня есть жилые полигоны и инфраструктура (школы, больницы и т. Д.), Полигоны и дорожные полилинии из ГИС, загруженные в NetLogo.Согласно соответствующим группам жилых полигонов, я создал черепах в них.Теперь я хочу, чтобы эти черепахи переехали из жилой в инфраструктуру (скажем, в школу).Черепаха должна преодолевать расстояние менее 800 метров и выбирать пути с наименьшим сопротивлением (общий импеданс = ImpFacRoad1 * DistanceTravelledRoad1 + ImpFacRoad2 * DistanceTravelledRoad2 ...) и до пропускной способности школы (скажем, 10000 человек).
Мне удалось выполнить предыдущие шаги, такие как загрузка shps и добавление популяционных черепах в жилые участки. введите описание изображения здесь введите описание изображения здесь
Кодотносится к предыдущим шагам и не связано с моим точным вопросом.Должен поделиться в любом случае.
extensions [gis]
globals [infra-dataset
rd-dataset
node-dataset
res-dataset]
to setup
ca
set infra-dataset gis:load-dataset "C://Users//Riya//Desktop//NT//infra.shp"
set rd-dataset gis:load-dataset "C://Users//Riya//Desktop//NT//rd.shp"
set res-dataset gis:load-dataset "C://Users//Riya//Desktop//NT//res.shp"
gis:set-world-envelope-ds gis:envelope-of lu-dataset
;infra
foreach gis:feature-list-of infra-dataset
[[t]->
if gis:property-value t "fac_head" = "Education" [gis:set-drawing-color red gis:fill t 2.0]
if gis:property-value t "fac_head" = "Health" [gis:set-drawing-color green gis:fill t 2.0]
if gis:property-value t "fac_head" = "Safety" [gis:set-drawing-color violet gis:fill t 2.0]
if gis:property-value t "fac_type" = "Vacant" [gis:set-drawing-color cyan gis:draw t 2.0]
]
;rd
foreach gis:feature-list-of rd-dataset
[[t]->
if gis:property-value t "Width" = 18 [gis:set-drawing-color white gis:draw t 1.8]
if gis:property-value t "Width" = 30 [gis:set-drawing-color white gis:draw t 3.0]
if gis:property-value t "Width" = 45 [gis:set-drawing-color white gis:draw t 4.5]
]
; res
foreach gis:feature-list-of res-dataset
[[t]->
if gis:property-value t "Density" < 1.04 [gis:set-drawing-color yellow - 2 gis:fill t 2.0]
if gis:property-value t "Density" > 1.04 and gis:property-value t "Density" < 1.8 [gis:set-drawing-color yellow gis:fill t 2.0]
if gis:property-value t "Density" > 1.8 [gis:set-drawing-color yellow + 2 gis:fill t 2.0]
]
end
to night ; turtles stay in residential patches at night
foreach gis:feature-list-of res-dataset
[[t]->
let pop ( gis:property-value t "Population" ) / 100
let target-patches ( patches gis:intersecting t ) with [ gis:contained-by? self t ]
if any? target-patches [
let avg-turtles round ( pop / count target-patches )
ask target-patches [
sprout avg-turtles
]
]
]
ask turtles [set shape "person"]
reset-ticks
end
Как перемещать черепах, созданных в NetLogo, на дороги (векторы ломаных линий), загруженные из ГИС shp, на слишком большое расстояние, и расставлять приоритеты дорог на основе наименьшего сопротивления (при условиикак атрибут шейп-файла дороги)?Я ожидаю, что черепаха переместится из дома в школу.Если он может попасть в школу, он становится зеленым, но если нет, ему придется вернуться домой и покраснеть.