6 Пространственные операции
Для выполнения заданий из раздела “Запросы” загрузите файлы по ссылке 1 или ссылке 2 и создайте новый проект:
- Создайте новую папку проекта под названием “Раздел 6” а так же новый проект в QGIS;
- Загрузите файлы в QGIS;
- Задайте систему координат проекта EPSG:32646;
- Сохраните файл проекта в папку проекта.
Панель меню “Вектор” > “Геообработка” содержит основные инстументы для изменения векторных объектов (Рисунок 7.4).
Результатом применения каждого инструмента является временный векторный слой с измененной геометрией. Временные слои помечены иконкой справа от названия (см. Рисунок 6.2).
Если требуется сделать временный слой постоянным, в контекстном меню слоя выберите пункт “Сохранить на диск…” и задайте параметры сохранения, в противном случае, после закрытия проекта данные слоя будут потеряны. При попытке закрытия проекта с несохраненными временными слоями появится соответствующее предупреждение (Рисунок 6.3).
6.1 Изменение системы координат слоя
В некоторых случаях требуется изменить систему координат слоя. Например, для построения буфера (см. Глава 6.2) в метрах (а не градусах) тебуется спроецированная (плоская) система координат. Изменить систему координат векторного слоя возможно при помощи инструмента “Вектор” > “Управление данными” > “Перепроецировать слой…”. В пункте “Исходный слой” задается слой, проекцию которого необходимо изменить. Пункт “Целевая система координат” определяет новую систему координат. По умолчанию инстумент создает временный слой (Рисунок 6.4).
Перепроецируйте слой “rivers” в систему координат “EPSG:32646 - WGS84 / UTM zone 46N”. Переименуйте появившийся временный слой из “Перепроецировано” в “rivers UTM” и сохраните в папку проекта.
6.2 Создание буферной зоны
Инструмент “Вектор” > “Геообработка” > “Буферизация…” создает область заданного радиуса вокруг каждой геометрии слоя (буферная зона или буфер). Единицы измерения радиуса (задается в пункте “Расстояние”) будут зависить от системы координат слоя. В географической системе координат радиус задается в угловой мере (градусах), что не очень удобно. Поэтому для построения буфера в линейной мере (метрах, километрах и т.д.), сначала проводят перепроецирование в “плоскую” (спроецированную) систему координат (это действие было выполнено в предыдущем Задание 6.1), после чего строят буфер заданного радиуса. Чек-бокс “Результат объединения…” определяет будет результат представлен объединенной геометрией или отдельными геометриями для каждого объекта (Рисунок 6.5).
Постройте буферы радиусом 100 метров вокруг рек (слой “rivers UTM”). Слою буферных зон задайте название “буфер рек 100 м”. Результат выполнения задания изображен на рисунке ниже (Рисунок 6.6).
6.3 Инструменты геообработки
Часто требуется обрезать один слой по границам другого. Для выполнения такой операции применяется инструмент “Вектор” > “Геообработка” > “Обрезать…”. Алгоритм обрезает “Исходный слой” по границам “Слоя наложения”. В результате будут сохранены только те части исходного слоя, которые пересекаются со слоем наложения (Рисунок 6.7).
Создайте слой частей выделов, которые попадают в стометровые буферные зоны вокруг рек. Для этого, по примеру выше, примените инструмент “Обрезать…” к слоям “videl” и “буфер рек 100 м”. Сохраните временный слой на диск под названием “Части выделов в водоохранной зоне”. Результат выполнения задания приведен на рисунке ниже (Рисунок 6.8).
Похожим на инструмент “Обрезать” функционалом обладает инструмент “Вектор” > “Геообработка” > “Пересечение…”. Однако, если первый просто обрезает по границе, инструмент пересечение так же копирует атрибуты слоя наложения в исходный слой. Воспользуемся инструментом “Пересечение” что бы определить к водоохранным зонам каких рек принадлежит та или иная часть выдела. На данный момент в проект имеется слой “Буфер рек 100 м” в атрибутах которого присутствует поле “name”, определяющее к какой реке относится тот или иной буфер (это поле было наследовано из слоя rivers) (Рисунок 6.9 (a)). Используем слои “videl” и слой “Буфер рек 100 м” в инструменте “Пересечение” (Рисунок 6.9 (b)). В настройках инструмента возможно задать поля исходного слоя и слоя наложения, которые останутся в результирующем слое (по умолчанию выбраны все поля). В исходном слое выберем поля: “fid”, “kvartal”, “videl”, “zapax_1_ha” (Рисунок 6.9 (c)). В слое наложения выберем поле “name” (Рисунок 6.9 (d)). В результате применения инструмента в панеле слоев появится новый временный слой “Пересечение”. Результат будет идентичен применению инструмента “Обрезать”, за исключением таблицы атрибутов, которая будет содержать выбранные поля одного и другого слоя.
- По примеру выше, примените инструмент “Пересечение” к слоям “videl” и “Буфер рек 100 м”.
- Полученный векторный слой сохраните на диск под названием “Результат пересечения выделов и буферных зон”.
- Задайте стиль слоя так, что бы выделить цветом выделы, принадлежащие буферным зонам разных рек. Результат выполнения задания отображен на рисунках ниже (Рисунок 6.10, Рисунок 6.11).
Инструмент “Вектор” > “Геообработка” > “Разность…” проводит обратную операцию: из исходного слоя вырезаются части, пересекающиеся со слоем наложения.
Используя инструмент “Разность”, вырежите части выделов, которые попадают в стометровые буферы вокруг рек. Для этого примените инструмент “Разность…” к слоям “videl” и “Буфер рек 100 м”. Результат выполнения задания приведен на рисунке ниже (Рисунок 6.12).
Инструмент “Вектор” > “Геообработка” > “Объединение по признаку…” позволяет объединить объекты с одинаковыми атрибутами. Например, он дает возможность создать границы лесных кварталов из слоя выделов. Для этого в качестве “Исходного слоя” выбирают слой выделов, в пункте “Поля классификации” выбирают поле для объединения объектов (“kvartal”) (Рисунок 6.13). В результате применения инструмента, границы выделов с одинаковым номером квартала будут стерты и таким образом образуют квартальную сеть.
По примеру выше, объедините выделы в слое “videl” по полю “kvartal”. В результате должен появиться новый временный слой с границами кварталов (см. Рисунок 6.14). Сохраните слой на диск под названием “kvartal”.
6.4 Подсчет длины, площади и периметра геометрий.
Программа QGIS позволяет совершить автоматический расчет площади, периметра и длины геометрий. При таком расчете важно обратить внимание на единицы измерения величин. Единицы измерения длины (так же как периметра и площади) зависят от настроек проекта. Для их изменения перейдите в пункт меню “Проект” > “Свойства” > во вкладке “Общие” найдите раздел “Измерения”. Пункты “Единицы измерения расстояния” и “Единицы измерения площади” задают соответствующие единицы измерения.
Перейдите в пункт меню “Проект” > “Свойства” > во вкладке слева “Общие” найдите раздел “Измерения” (см. Рисунок 6.15). Пункты “Единицы измерения расстояния” укажите “метры” в пункте “Единицы измерения площади” укажите “гектары”. Примените изменения.
Для подсчета длины геометрий, в таблице атрибутов создают новое поле (тип поля целое или десятичное число) и заполняют его выражением $length
которое вычисляет длину для каждой геометрии слоя.
Периметр и площадь геометрий вычисляются аналогично при помощи функций $perimeter
и $area
соответственно.
В слое “videla” создайте новое поле “perimeter_m” (тип поля десятичное число). Заполните это поле значениями периметра (в метрах) для каждого выдела. Сумма периметров выделов должна составить 335 649,9 м.
Для выполнения предыдущих заданий (Задание 6.8, Задание 6.9) использовались два действия: 1. Создавалось поле с нужным типом данных 2. Созданное поле заполнялось значениями функции ($length, $area и др.) Инструмент “Калькулятор полей” позволяет совместить эти два действия: задаются параметры поля и функция, значениями которой это поле будет заполнено.
!!! Рисунок Калькулятора полей с настройками заполнения поля area_ha
В слое “videla” при помощи калькулятора полей создайте новое поле “area_ha” (тип поля десятичное число) заполненное значением площади (в гектарах) для каждого выдела. Сумма площадей выделов должна составить 1 039,8 га.
6.5 Арифметические операции с атрибутами
После выполнения Задание 6.10 в слое “videla” будут находиться два поля с площадью. Поле “s_ha” это данные площади выдела по таксационным описаниям. Второе поле “area_ha” было создано при выполнении Задание 6.10 и содержит площади геометрий, рассчитанные автоматически. Отличаются ли эти две площади? Для сравнения двух значений создайте новое поле “diff_area” (десятичное) куда будет записана разность значений двух полей (выражение "s_ga" - "area"
). По разнице можно оценить насколько значения двух полей различаются.
- В слое “videla” создайте поле “diff_area”. Заполните это поле выражением
"s_ha" - "area"
для подсчета различий между площадями. - Создайте карту, где выделы с разностью по абсолютному значению более 0.3 га будут окрашены в красный цвет. Обртите внимание - разность может быть как положительной, так и отрицательной, для получения абсолютного значения используйте функцию
abs()
. - Создайте новый макет и сохраните карту как изображение. Результат выполнения задания приведен на рисунке ниже (Рисунок 6.16).
Более корректно использовать относительную разность (в процентах) а не абсолютные значения. Для этого создадим новое поле “diff_area_perc” (тип поля - десятичное) и заполним его выражением abs("area" * 100 / "s_ga" - 100)
. Функция abs()
возвращает абсолютное значение выражения в скобках.
- В слое “videla” создайте новое поле “diff_area_perc”. Заполните это поле относительной разностью полей
abs("area" * 100 / "s_ga" - 100)
. - Создайте карту, где выделы с разностью более 15 % (поле “diff_area_perc”) будут окрашены в красный цвет.
- Создайте новый макет и сохраните карту как изображение. Результат выполнения задания приведен на рисунке ниже (Рисунок 6.17).
6.6 Кейс 6.1
Рассчитайте запас насаждений в водоохранных зонах Караульного лесничества. Выполните следующие этапы задания:
- Постройте буферные зоны радиусом 50 метров вокруг рек (см. Задание 6.2).
- Создайте новый слой, содержащий части выделов, попадающих в водоохранные зоны (см. Задание 6.4).
- Рассчитайте площади частей выделов, попадающих в водоохранные зоны. Для этого создайте новое поле “area_buffer_ha”, заполните его площадью частей выделов (в гектарах) (см. Задание 6.10).
- Рассчитайте запас для частей выделов. Для этого создайте новое числовое поле “zapas_buffer”, заполните его произведением новой площади выдела (поле “area_buffer_ha”) и запаса на 1 га (поле “zapas_1ga”) (см. Задание 6.11).
- Сохраните таблицу с запасами в водоохранной зоне как табличный файл Excel (.xlsx). Для этого в контекстном меню слоя выберите пункт “Экспорт” > “Сохранить объекты как…”, после чего укажите необходимый формат и сохраните файл в папку проекта.
- Проведите подсчет суммарного запаса в водоохранных зонах, запас должен быть равен 15 279,11 \(м^3\).