-
Notifications
You must be signed in to change notification settings - Fork 3
/
Ex05_MapReferencing_General.Rmd
342 lines (218 loc) · 22.3 KB
/
Ex05_MapReferencing_General.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
# (PART) Базовые технологии ГИС {-}
# Привязка и векторизация (туристская карта) {#map-ref-general}
```{r map-ref-general-options, echo = FALSE}
knitr::opts_chunk$set(out.width = '100%', echo = FALSE, message = FALSE, warning = FALSE)
```
[Скачать данные и файл отчета](https://carto.geogr.msu.ru/gis/data/Ex05.zip)
## Введение {#map-ref-general-intro}
**Цель задания** --- знакомство с привязкой, трансформированием и векторизацией растровых геоизображений.
Параметр Значение
-------------------------- --------
*Теоретическая подготовка* Системы координат и проекции на картах, привязка геоизображений, трансформирование геоизображений, цифрование геоизображений. Методы трансформации: аффинное, проективное, полиномиальное, метод резинового листа (сплайны).
*Практическая подготовка* Знание основных компонент интерфейса ArcGIS Desktop (каталог, таблица содержания, карта). Работа с базой геоданных. Настройка символики и подписей объектов.
*Исходные данные* Растровые карты для привязки, база пространственных данных на территорию Швейцарии.
*Результат* База данных со следующими слоями: границы природных зон; линии туристического маршрута; остановки вдоль маршрута; проект карты карта с компоновкой
*Ключевые слова* Системы координат, проекции, трансформирование координат, пространственная привязка, цифрование, векторизация, классы пространственных объектов, база пространственных данных,
### Контрольный лист {#map-ref-general-control}
* Привязать растровые карты к опорным данным
* Создать базу геоданных и классы пространственных объектов
* Наполнить классы пространственных объектов путем векторизации привязанных карт
* Наполнить атрибуты объектов значениями
* Разработать символику и подписи для слоев карты
* Подготовить компоновку карты
* Экспортировать карту в графический файл
### Аннотация {#map-ref-general-anno}
Задание посвящено знакомству с привязкой растровых карт, созданием и наполнением баз пространственных данных путем их векторизации, оформлением карт на их основе.
В задании предлагается привязать в координатную систему карту природных зон и карту туристического маршрута по территории Швейцарии. По результатам векторизации этих карт вы составите туристскую карту, показывающую прохождение маршрута по разным природным зонам.
## Привязка карт {#map-ref-general-referencing}
[В начало упражнения ⇡](#map-ref-general)
### Карта физико-географических регионов {#map-ref-general-referencing-phys}
1. Внимательно прочтите раздел [**Привязка растровых данных (Georeferencing)**](#manual-georef) в разделе **Описание функций**.
1. Добавьте на карту слой *Countries* из базы данных упражнения 3.
1. Добавьте на карту растр *SwissRegions.gif*. Появится диалог, предупреждающий вас, что добавляемый файл не имеет пространственной привязки. Нажмите **ОК** (Рис. \@ref(fig:mrg-noref)):
```{r mrg-noref, fig.cap = 'Предупреждение о неизвестной пространственной привязке'}
knitr::include_graphics('images/Ex05/image8.png')
```
1. Убедитесь, что контур страны отображается примерно посередине экрана.
1. Откройте панель инструментов **Georeferencing**. Выберите в меню команду **Fit to Display**, чтобы переместить непривязанный растр на середину области отображения (Рис. \@ref(fig:mrg-fit)):
```{r mrg-fit, fig.cap = 'Вписывание изображения в экран с помощью панели Georeferencing'}
knitr::include_graphics('images/Ex05/image9.png')
```
1. Сделайте растровый слой прозрачным на *50%*.
1. Используя **инструмент расстановки контрольных точек**, укажите *3-6* соответствующих точек по границе страны на характерных выступах контура (Рис. \@ref(fig:mrg-ctr)):
```{r mrg-ctr, fig.cap = 'Инструмент расстановки контрольных точек'}
knitr::include_graphics('images/Ex05/image10.png')
```
1. Выберите команду меню **Georeferencing > Update Georeferencing**, чтобы завершить привязку растра. При этом по умолчанию будет применено аффинное преобразование с минимизацией среднеквадратической ошибки отклонения исходных и целевых координат (Рис. \@ref(fig:mrg-upd)):
```{r mrg-upd, fig.cap = 'Привязанная карта физико-географических регионов'}
knitr::include_graphics('images/Ex05/image11.png')
```
<kbd>**Снимок экрана №1**. Привязанная карта физико-географических регионов</kbd>
### Карта туристического маршрута {#map-ref-general-referencing-tourist}
1. Добавьте на карту слой *WineSafariRoute.jpg*.
1. Выберите его в списке на панели **Georeferencing** (Рис. \@ref(fig:mrg-lyr)):
```{r mrg-lyr, out.width = '80%', fig.cap = 'Выбор слоя для привязки'}
knitr::include_graphics('images/Ex05/image12.png')
```
1. Отключите слой *SwissRegions.gif* в таблице содержания.
1. Привяжите растр *WineSafariRoute* аналогично предыдущему растру, используя контрольные точки (Рис. \@ref(fig:mrg-rou)):
```{r mrg-rou, fig.cap = 'Привязка карты маршрута по контрольным точкам'}
knitr::include_graphics('images/Ex05/image13.png')
```
1. Выберите команду **Georeferencing > Update georeferencing**, чтобы завершить привязку второго растра.
<kbd>**Снимок экрана №2**. Привязанная карта маршрута</kbd>
## Создание базы данных и классов пространственных объектов {#map-ref-general-geodatabase}
[В начало упражнения ⇡](#map-ref-general)
1. Прочитайте параграф [**База геоданных**](#manual-gdb) в разделе **Описание функций**.
1. Создайте в папке *Ex05* базу геоданных под названием *RouteMap.gdb*.
1. Создайте в базе данных *классы пространственных объектов* со следующими параметрами:
Название Модель пространственных объектов Атрибутивные поля Проекция
-------- --------------------------------- ----------------- --------
*Regions* Полигональная (polygon features) NAME (text) `WGS_1984_UTM_Zone_32N` (импортируйте у слоя карты)
*Routes* Линейная (line features) - `WGS_1984_UTM_Zone_32N` (импортируйте у слоя карты)
*Places* Точечная (point features) NAME (text) `WGS_1984_UTM_Zone_32N` (импортируйте у слоя карты)
По завершению создания слоёв они автоматически будут добавлены в таблицу содержания карты (Рис. \@ref(fig:mrg-lyrs)):
```{r mrg-lyrs, out.width = '30%', fig.cap = 'Созданные слои в таблице содержания карты'}
knitr::include_graphics('images/Ex05/image14.png')
```
## Векторизация регионов {#map-ref-general-digitizing}
[В начало упражнения ⇡](#map-ref-general)
1. Прочитайте параграф [**Редактирование**](#manual-edit) в разделе **Описание функций**.
1. Оставьте включенными только слои *Regions*, *SwissRegions* и *Countries*.
1. Уберите *прозрачность* у слоя *SwissRegions*.
1. Откройте сеанс редактирования для слоя *Regions*. Появится панель редактирования **Editor**, а также окно шаблонов объектов **Create Features** (Рис. \@ref(fig:mrg-cre)):
```{r mrg-cre, fig.cap = 'Панель Editor и окно Create Features'}
knitr::include_graphics('images/Ex05/image15.png')
```
1. Щелкните на шаблоне объекта *Regions* в окне **Create Features** и выберите режим создания объектов **Polygon** (Рис. \@ref(fig:mrg-pol)):
```{r mrg-pol, out.width = '30%', fig.cap = 'Выбор режима создания объектов'}
knitr::include_graphics('images/Ex05/image16.png')
```
1. Последовательно щелкая мышкой на точках вдоль границы, обведите регион *Prealpine Zones* (Предальпийские зоны) в центре карты. По завершению дважды щелкните мышкой (Рис. \@ref(fig:mrg-alp)):
```{r mrg-alp, fig.cap = 'Ручная векторизация границы Предальпийской зоны'}
knitr::include_graphics('images/Ex05/image17.png')
```
1. Чтобы появилась возможность пристыковать остальные регионы к границам стран, **выделите** в слое *Countries* все страны, кроме Швейцарии, **скопируйте** их в буфер обмена и **вставьте** в слой *Regions* (Рис. \@ref(fig:mrg-bnd)):
```{r mrg-bnd, fig.cap = 'Вставка границ стран в слой с границами физико-географических зон'}
knitr::include_graphics('images/Ex05/image18.png')
```
1. Выделите опять шаблон *Regions* в окне **Create Features**.
1. Используя режим **Auto-Complete Polygon**, оцифруйте границы оставшихся регионов в следующем порядке:
- Сначала небольшие регионы, примыкающие к границам (Рис. \@ref(fig:mrg-breg)):
```{r mrg-breg, fig.cap = 'Регионы, примыкающие к границе'}
knitr::include_graphics('images/Ex05/image19.png')
```
- Затем область второго порядка дальности от границы (горы *Юра*, Рис. \@ref(fig:mrg-jura)):
```{r mrg-jura, fig.cap = 'Векторизация региона гор Юра'}
knitr::include_graphics('images/Ex05/image20.png')
```
- Наконец, границу между центральными регионами (Рис. \@ref(fig:mrg-cnt)):
```{r mrg-cnt, fig.cap = 'Граница между центральными регионами'}
knitr::include_graphics('images/Ex05/image21.png')
```
1. Выделите в слое *Regions* границы стран и удалите их.
1. Выберите команду **Editor > Save Edits**, чтобы сохранить результаты редактирования (Рис. \@ref(fig:mrg-cntr)).
```{r mrg-cntr, fig.cap = 'Результат векторизации границ физико-географических регионов'}
knitr::include_graphics('images/Ex05/image22.png')
```
<kbd>**Снимок экрана №3**. Векторный слой физико-географических регионов</kbd>
## Атрибутирование регионов {#map-ref-general-attributes}
[В начало упражнения ⇡](#map-ref-general)
1. Уберите заливку регионов, линии сделайте толщиной 1.5-2 пиксела (Рис. \@ref(fig:mrg-out)):
```{r mrg-out, fig.cap = 'Оформление границ регионов'}
knitr::include_graphics('images/Ex05/image23.png')
```
1. Откройте атрибутивную таблицу слоя *Regions*.
1. Поочередно выделяя каждый объект в таблице или на карте, заполните его атрибуты в соответствии с легендой (Рис. \@ref(fig:mrg-att)):
```{r mrg-att, fig.cap = 'Заполнение атрибутов объектов'}
knitr::include_graphics('images/Ex05/image24.png')
```
1. Сохраните изменения и завершите сеанс редактирования.
<kbd>**Снимок экрана №4**. Атрибутированные регионы</kbd>
## Цифрование маршрутов и точек интереса {#map-ref-general-routes-poi}
[В начало упражнения ⇡](#map-ref-general)
1. Выключите слои *Regions* и *SwissRegions.gif*.
1. Включите слои *WinSafariRoute*, *Routes* и *Places*.
1. Оцифруйте объекты слоев *Places* и *Routes*, используя инструменты панели **Сreate Features**:
- Начните с расстановки точек населённых пунктов (Рис. \@ref(fig:mrg-pop)):
```{r mrg-pop, fig.cap = 'Расстановка точек населенных пунктов'}
knitr::include_graphics('images/Ex05/image25.png')
```
- Увеличьте масштаб, чтобы были хорошо видны изгибы линий (Рис. \@ref(fig:mrg-bds)):
```{r mrg-bds, fig.cap = 'Линии маршрутов при увеличенном масштабе'}
knitr::include_graphics('images/Ex05/image26.png')
```
- Проведите линии через получившиеся точки, повторяя контур исходной линии на растровой подложке. Каждую линию начинайте в точке и завершайте двойным щелчком в перекрестке (Рис. \@ref(fig:mrg-rts)):
```{r mrg-rts, fig.cap = 'Векторизация линий маршрутов'}
knitr::include_graphics('images/Ex05/image27.png')
```
После выполнения ручной векторизации всех маршрутов изображение должно принять примерно следующий вид (Рис. \@ref(fig:mrg-vrts)):
```{r mrg-vrts, fig.cap = 'Векторизованные линии маршрутов'}
knitr::include_graphics('images/Ex05/image28.png')
```
1. Заполните названия городов в слое *Places* (Рис. \@ref(fig:mrg-popn)).
```{r mrg-popn, fig.cap = 'Заполнение названий городов в атрибутах точек'}
knitr::include_graphics('images/Ex05/image29.png')
```
1. Сохраните изменения и завершите сеанс редактирования.
<kbd>**Снимок экрана №5**. Слои маршрута и пунктов назначения</kbd>
## Оформление карты {#map-ref-general-design}
[В начало упражнения ⇡](#map-ref-general)
1. Оставьте включенными слои *Regions*, *Routes*, *Places* и *Countries*. Остальные слои выключите.
1. Уберите заливку у слоя *Countries*.
1. Оформите слой *Regions* методом категорий по полю *NAME* (Рис. \@ref(fig:mrg-symreg)):
```{r mrg-symreg, fig.cap = 'Настройка визуализации слоя Regions'}
knitr::include_graphics('images/Ex05/image30.png')
```
1. Оформите слои *Routes* и *Places* по аналогии с нижеприведенным фрагментом (Рис. \@ref(fig:mrg-sympop)):
```{r mrg-sympop, fig.cap = 'Образец оформления слоёв Routes и Places'}
knitr::include_graphics('images/Ex05/image31.png')
```
1. Откройте панель **Labeling** и включите **Maplex** для размещения подписей.
1. Включите подписи для слоя *Places* со следующими настройками:
Параметр Значение
----------------------- ---------
*Поле для подписей* NAME
*Шрифт* Tahoma
*Кегль (размер)* 12
*Цвет* Черный
*Начертание* Обычное
После настройки подписей картографическое изображение должно принять приблизительно следующий вид (Рис. \@ref(fig:mrg-labpop)):
```{r mrg-labpop, fig.cap = 'Подписи населенных пунктов'}
knitr::include_graphics('images/Ex05/image32.png')
```
Некоторые подписи могут быть размещены не очень удачно. Чтобы они не перекрывали линии маршрута и значки выполните следующие действия:
1. Откройте *настройки весов подписей* **Label Weight Ranking** на панели **Labeling**
1. Установите вес равным *1000* слоям *Places* и *Routes* (Рис. \@ref(fig:mrg-labwgt)):
```{r mrg-labwgt, fig.cap = 'Редактирование весов для слоёв карты'}
knitr::include_graphics('images/Ex05/image33.png')
```
После настройки весов слоев количество графических конфликтов должно существенно уменьшиться (Рис. \@ref(fig:mrg-labres)):
```{r mrg-labres, fig.cap = 'Отображение подписей после настройки весов слоёв'}
knitr::include_graphics('images/Ex05/image34.png')
```
1. Добавьте на карту слой аналитической отмывки рельефа *Hillshade* из базы данных упражнения 3, разместите его над слоем Regions и установите прозрачность _80%_ (Рис. \@ref(fig:mrg-hill)):
```{r mrg-hill, fig.cap = 'Карта со слоем аналитической отмывки'}
knitr::include_graphics('images/Ex05/image35.png')
```
1. Добавьте на карту слой *Lakes* и присвойте ему символ полигона с голубой заливкой без обводки (Рис. \@ref(fig:mrg-lakes)).
```{r mrg-lakes, fig.cap = 'Карта со слоем озёр'}
knitr::include_graphics('images/Ex05/image36.png')
```
<kbd>**Снимок экрана №6**. Оформление карты</kbd>
## Компоновка карты {#map-ref-general-layout}
[В начало упражнения ⇡](#map-ref-general)
1. Переключитесь в **режим компоновки**.
1. Установите альбомную ориентировку листа.
1. Оформите компоновку в соответствии с нижеприведенным образцом (Рис. \@ref(fig:mrg-lay)):
```{r mrg-lay, fig.cap = 'Образец компоновки карты'}
knitr::include_graphics('images/Ex05/image37.png')
```
<kbd>**Снимок экрана №7**. Компоновка карты</kbd>
1. Экспортируйте карту в формат <kbd>PNG</kbd> с разрешением *300 dpi*.
1. Сохраните документ карты.
## Контрольные вопросы {#map-ref-general-questions}
[В начало упражнения ⇡](#map-ref-general)
1. Какова последовательность действий при создании каждой контрольной точки? Каково оптимальное расположение контрольных точек?
1. Какой метод трансформирования изображения вы использовали в работе?
1. Как пристыковать один полигон к другому, не оцифровывая их общую границу? Опишите последовательность действий.