Расширение NetLogo GIS: как создавать черепах в соответствии с информацией о местоположении в шейп-файле - PullRequest
0 голосов
/ 03 января 2019

В процессе создания модели NetLogo с расширением gis я зацикливался на желании создать черепах в соответствии с информацией о местонахождении шейп-файла. Как создать черепах в месте, содержащемся в шейп-файле, и убедиться, что у них есть свойства, также содержащиеся в шейп-файле?

До сих пор мне удалось создать набор данных в R, преобразовать его в шейп-файл и импортировать в NetLogo. С помощью предоставленного кода я могу рисовать точки на карте.

Но я хочу создать агентов в каждом месте, которое содержится в наборе данных шейп-файла. Я искал в интернете, но не могу его найти. Также, когда я смотрю на руководство пользователя Netlogo, я не могу это сделать.

А в наборе данных шейп-файла присутствует дополнительный признак, который должен быть назначен каждому агенту, потому что я хочу создать домохозяйство (агент) для местоположения и в соответствии с признаком назначить ему цвет.

Шейп-файл содержит идентификационный номер, логическую переменную и координаты

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

Которая рисует точки на карте, но я хочу вырастить агентов на точках, оставив идентификатор №. и логическая переменная для каждого агента.

1 Ответ

0 голосов
/ 10 января 2019

Тем временем с помощью вас, ребята и из других источников, мне удалось получить то, что я хотел, с помощью следующего кода:

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

Где шейп-файл - это база данных для импорта. А CC_PV_A - это логическая переменная, которая указывается в шейп-файле и присваивается черепахам в форме pv1 (с pv в качестве промежуточной переменной).

Надеюсь, это кому-нибудь поможет!

...