Methodological issues of using GIS maps in the Netlogo
Table of contents
Share
Metrics
Methodological issues of using GIS maps in the Netlogo
Annotation
PII
S207751800000108-7-1
DOI
10.18254/S0000108-7-1
Publication type
Article
Статус публикации
Published
Authors
Guzel Gumerova 
Affiliation: Applicant of the chair of mathematical methods in Economics, Bashkir state University
Address: Russian Federation, Ufa
Abstract
In spatial problems studied by agent-based modeling, the main technical problem is the preparation of maps, their downloading and using in computer programs. The article is dedicated to the methodology of using the maps developed in the application of GIS General Examples of the NetLogo.
Keywords
maps, agent-based modeling, spatial modelling
Received
14.11.2017
Date of publication
30.12.2017
Number of characters
13002
Number of purchasers
2
Views
1471
Readers community rating
0.0 (0 votes)
Cite Download pdf

To download PDF you should sign in

1 В имитационных моделях по решению пространственных задач, реализуемых методами агент-ориентированного моделирования, очень часто возникает необходимость использования географических карт, для моделирования реальной среды, в которой действуют агенты [1, 2, 3, 4, 5, 6]. Одним из путей решения этой проблемы является использование уже разработанных приложений с открытым кодом. В данной работе мы анализируем методику использования карт в приложении GIS General Examples библиотеки моделей NetLogo, что поможет разработчикам авторских программ в этой среде.
2 Для поиска этого приложения следуем пути: Файл – Библиотека моделей - Code Examples - Extensions Examples – gis - GIS General Examples (рис.1). Эта модель была построена для тестирования и демонстрации возможностей ГИС в программе NetLogo. Приложение загружает четыре различных набора данных ГИС: файл точки города мира - data/cities.shp, файл реки - data/rivers.shp, файл стран - data/countries.shp и файл поверхности рельефа - data/world-elevation.asc. Она содержит набор различных способов для отображения и запроса данных, чтобы продемонстрировать возможности расширения ГИС.
3

Рис.1. Поиск приложения GIS General Examples в библиотеке моделей NetLogo.

4 Разберем каждую клавишу отдельно. Клавиша Выбора имеет три варианта. Это "WGS_84_Geographic", "US_Orthographic", "Lambert_Conformal_Conic".
5 "WGS (World Geodetic System )_84_Geographic".
6 Глобальная система позиционирования (Global Positioning System) использует World Geodetic System (wgs-84 в) в качестве основы системы координат. Она состоит из эталонного эллипсоида, стандартной системы координат, данных о высоте и геоида.
7 Когда нам нужно точно ввести координаты в ГИС, первый шаг заключается в уникальном определении всех координат на Земле. Это означает, что нам нужна структура указаний для координат широты и долготы, так как где бы мы были на Земле, не имея указаний на нее.
8 Поскольку Земля изогнута, а в ГИС мы имеем дело с плоскими картами проекций, мы должны учитывать как изогнутые, так и плоские взгляды на мир. Топографы и геодезисты обладают точно определенными точками местонахождения объектов (например, городов) на Земле.
9

10 Начнем моделировать Землю с эллипсоида. Надо пояснить, что эллипсоид отличается от геоида, который является показателем среднего уровня моря. Оказывается, эллипсоид обладает лучшими возможностями для моделирования благодаря массивному набору поверхностных измерений. Когда объединяются эти измерения, мы приходим к системе геодезических координат.
11 Горизонтальные датумы точно определяют каждое местоположение на поверхности Земли в широте и долготе или в других системах координат. Например, на рис. 2 мы видим примеры геодезических датумов (datum) NAD27, NAD83 и WGS84.( http://gisgeography.com/wgs84-world-geodetic-system/)
12 US_Orthographic. Ортографическая проекция карты (рис.3) - это проекция в картографии. На ней изображено полушарие земного шара, как оно появляется из космоса, где горизонт представляет собой большой круг. Формы и направления искривляются, особенно вблизи краев. (https://en.wikipedia.org/wiki/Orthographic_projection)
13 "Lambert_Conformal_Conic". Конформная коническая проекция Ламберта (LCC) представляет собой коническую картографическую проекцию (рис.4), используемую для аэронавигационных карт, частей государственной системы координат плоскости и многих национальных и региональных картографических систем. Концептуально проекция помещает конус над сферой Земли и проектирует поверхность в соответствии с конусом. Конус раскатывается, и параллель, которая касалась сферы, присваивается единичной шкале. Эта параллель называется эталонной параллелью или стандартной параллелью. (https://en.wikipedia.org/wiki/Lambert_conformal_conic_projection).
14

Рис.2. Пример геодезического датума WGS84.

15

Рис.3. Пример ортографической проекции.

16

Рис.4. Пример конформной конической проекции Ламберта.

17 Далее при выборе той или иной проекции, нажатие кнопки , , показывает нам соответственно города, реки и страны.
18 Кнопки , , показывают названия городов, рек и стран.
19 Теперь разберем серию кнопок: нажатие каждой из них дает картинки, примеры которых представлены на рис. 6, 7, 8, 9.
20

Рис.5. Кнопки изображения объектов на карте.

21

Рис.6. Отображение рек в патчах.

22

Рис.7. Отображение популяции в патчах.

23

Рис.8. Отображение стран с помощью линий.

24

Клавиши. позволяют рисовать реки штатов зеленым, выделять светлыми пятнами большие города, очистить рисунки.

25 Далее рис. 9 и 10 демонстрируют возможности отображения рельефа местности.
26

Рис. 9. Отображение рельефа в патчах

27

Рис. 10. Отображение градиента(уклона) в патчах.

28 Мир NetLogo состоит из агентов, которые следуют инструкциям. Причем все агенты могут осуществлять свою деятельность одновременно.
29 В NetLogo существует три типа агентов:
30
  • Turtles (Черепахи) - это агенты, которые передвигаются по миру. Мир двухмерный и делится на сетку патчей.
  • Каждый patch патч представляет собой квадратный кусок "земли", над которым черепахи могут двигаться. Патчи имеют координаты. Патч в центре мира имеет координаты (0, 0). При программировании координаты патчей обозначают pxcor и pycor, а и аргументами являются целые числа.
  • observer: Наблюдатель не имеет локации, это все равно что смотреть на мир черепах и патчей со стороны, где-то сверху.
31 Рассмотрим код программы.
32 extensions [ gis ] расширение ГИС
33 globals [ cities-dataset глобальные данные городов, рек, стран и
34 rivers-dataset возвышенностей.
35 countries-dataset
36 elevation-dataset ]
37 breed [ city-labels city-label ] создание породы(переменной) города
38 breed [ country-labels country-label ] создание породы страны
39 breed [ country-vertices country-vertex ] создание породы вершины стран
40 breed [ river-labels river-label ] создание породы рек
41 patches-own [ population country-name elevation ] это ключевое слово,все патчи будут иметь заданные переменные и смогут использовать их.
42 to setup начать работу
43 clear-all очистить все
44 ; Обратите внимание, что установка системы координат здесь необязательна, так как пока все наборы данных используют одну и ту же систему координат.
45 gis:load-coordinate-system (word "data/" projection ".prj")
46 ; Загрузите все наши наборы данных
47 set cities-dataset gis:load-dataset "data/cities.shp"
48 set rivers-dataset gis:load-dataset "data/rivers.shp"
49 set countries-dataset gis:load-dataset "data/countries.shp"
50 set elevation-dataset gis:load-dataset "data/world-elevation.asc"
51 ; Установите мировой конверт в союз всех конвертов нашего набора данных
52 gis:set-world-envelope (gis:envelope-union-of (gis:envelope-of cities-dataset)
53 (gis:envelope-of rivers-dataset)
54 (gis:envelope-of countries-dataset)
55 (gis:envelope-of elevation-dataset))
56 reset-ticks Сбрасывает счетчик галочек на ноль, настраивает все участки, затем обновляет все участки (так, чтобы начальное состояние мира отображалось).
57 end
58 ; Чертеж данных точки из файла shapefile, и, возможно, загрузка ; данных в черепахах, если метка городов-это правда
59 to display-cities
60 ask city-labels [ die ]
61 foreach gis:feature-list-of cities-dataset [ [vector-feature] ->
62 gis:set-drawing-color scale-color red (gis:property-value vector-feature "POPULATION") 5000000 1000
63 gis:fill vector-feature 2.0
64 if label-cities
65 [ ; особенность в точках данных может иметь несколько точек, поэтому мы имеем список пунктов, которые мы должны использовать первые два раза здесь
66 let location gis:location-of (first (first (gis:vertex-lists-of vector-feature)))
67 ; location будет пустым списком, если точка находится за пределами границы нынешнего мира NetLogo, как определено нашим нынешним преобразованием координат
68 if not empty? location
69 [ create-city-labels 1
70 [ set xcor item 0 location
71 set ycor item 1 location
72 set size 0
73 set label gis:property-value vector-feature "NAME"
74 ]
75 ]
76 ]
77 ]
78 End
79 ; Рисование полилинии данных из файла shapefile и, при необходимости, загрузка некоторых данных в черепахах, если метка-реки-это правда
80 to display-rivers
81 ask river-labels [ die ]
82 gis:set-drawing-color blue
83 gis:draw rivers-dataset 1
84 if label-rivers
85 [ foreach gis:feature-list-of rivers-dataset [ [vector-feature] ->
86 let centroid gis:location-of gis:centroid-of vector-feature
87 ; центроид будет пустым списком, если его линии находятся вне границ текущего мира NetLogo, как определено нашей текущей ГИС преобразование координат
88 if not empty? centroid
89 [ create-river-labels 1
90 [ set xcor item 0 centroid
91 set ycor item 1 centroid
92 set size 0
93 set label gis:property-value vector-feature "NAME"
94 ]
95 ]
96 ]
97 ]
98 end
99 ; Рисование данных полигона из файла shapefile и, при необходимости, загрузка некоторых данных в черепахах, если метка-страны-это правда
100 to display-countries
101 ask country-labels [ die ]
102 gis:set-drawing-color white
103 gis:draw countries-dataset 1
104 if label-countries
105 [ foreach gis:feature-list-of countries-dataset [ [vector-feature] ->
106 let centroid gis:location-of gis:centroid-of vector-feature
107 ; центроид будет пустым списком, если его линии находятся вне границ текущего мира NetLogo, как определено нашей текущей ГИС преобразование координат
108 if not empty? centroid
109 [ create-country-labels 1
110 [ set xcor item 0 centroid
111 set ycor item 1 centroid
112 set size 0
113 set label gis:property-value vector-feature "CNTRY_NAME"
114 ]
115 ]
116 ]
117 ]
118 end
119 ; Loading polygon data into turtles connected by links
120 to display-countries-using-links
121 ask country-vertices [ die ]
122 foreach gis:feature-list-of countries-dataset [ [vector-feature] ->
123 foreach gis:vertex-lists-of vector-feature [ [vertex] ->
124 let previous-turtle nobody
125 let first-turtle nobody
126 ; By convention, the first and last coordinates of polygons
127 ; in a shapefile are the same, so we don't create a turtle
128 ; on the last vertex of the polygon
129 foreach but-last vertex [ [point] ->
130 let location gis:location-of point
131 ; location will be an empty list if it lies outside the
132 ; bounds of the current NetLogo world, as defined by our
133 ; current GIS coordinate transformation
134 if not empty? location
135 [ create-country-vertices 1
136 [ set xcor item 0 location
137 set ycor item 1 location
138 ifelse previous-turtle = nobody
139 [ set first-turtle self ]
140 [ create-link-with previous-turtle ]
141 set hidden? true
142 set previous-turtle self ] ] ]
143 ; Link the first turtle to the last turtle to close the polygon
144 if first-turtle != nobody and first-turtle != previous-turtle
145 [ ask first-turtle
146 [ create-link-with previous-turtle ] ] ] ]
147 end
148

Эта программа содержит папку data с файлами данных городов, рек, стран и возвышенностей. Ее можно найти по пути:

149 В папке несколько файлов, см. рис.11.
150

Рис.11. Файлы данных городов, рек, стран и возвышенностей в папке data.

151 Файл cities.dbf можно открыть с помощью MS Excel, MS Access, либо загрузить программу DBF VIEWER. Этот файл содержит данные городов: название, к какой стране относится, численность, является ли столицей (рис. 12).
152 Рис.12. Файл с данными городов: название города, к какой стране относится, численность, является ли столицей (Y, N)
153 Всего в файле 607 городов. При этом можно добавить и новые.
154 Как добавить новые города. В данных очень мало городов Башкортостана. Мы решили добавить города Стерлитамак и Салават. Открываем программу DBF VIEWER. Добавляем новые города с указанием численности согласно координатам. Информацию про численность городов берем из Википедии.
155 Файл cities.shp. Формат SHP используется ESRI ArcView — программой географического анализа. Она хранит набор географических объектов, например, улиц, достопримечательностей и границ по почтовому индексу. Может использоваться для хранения точек, линий или областей.
156 Каждый объект в файле SHP содержит индивидуальную географическую область и ее атрибуты. ArcView является частью комплекта программ ArcGIS. Но не всегда можно найти данную программу на компьютере. Поэтому можно воспользоваться онлайн программами. Для этого открываем http://mapshaper.org/.
157

158 Выбираем(Select) из папки data файл cities.shp.
159

Рис.13. Открытие файла cities.shp с точками и линиями в онлайн приложении.

160 Наши города выглядят в виде точек. Нажимаем Export, выбираем GeoJson - нажимаем export. Сохраняется файл в формате json.
161

162 Затем открываем этот файл с помощью MS Word.
163

Рис.14. Файл с координатами городов в Word для редактирования.

164 В этом файле представлены координаты городов. Добавляем координаты новых городов строго в десятичной системе. Координаты берем с сайта http://gps-coordinates.ru/. Там приведены точные координаты городов. Сохраняем. Снова открываем http://mapshaper.org/. выбираем cities.json - нажимаем Export, выбираем Shapefile - нажимаем export. Сохраняется файл в формате rar.
165 Файл cities.prj откроем с помощью MS Word.
166

167 В этом файле описаны проекции, координаты с разными системами.
168 Аналогично можно работать с файлами со странами и реками.
169 Проведенный анализ позволяет использовать готовые карты в библиотеке Netlogo, редактировать их для целей конкретной программы исследователя, занимающегося агент-ориентированным моделированием.