Время прочтения: 6 минут
Версия QGIS: 3.42
Уровень владения QGIS: начинающий
Уровень владения QGIS: начинающий
Генерализация — важный и иногда безальтернативный этап в подготовке карт на основе данных, которые часто приходится приводить в порядок, чтобы создавать карты для различных задач и масштабов. В прошлой статье на тему генерализации я кратко рассказал теоретические аспекты генерализации в картографии. В этой статье я покажу, как можно на практике использовать некоторые методы генерализации в части обобщения геометрии, используя QGIS. Статья в первую очередь рассчитана на новичков, поэтому и инструменты будут самые простые.

Отбор
Отбор — в первую очередь, фильтрация данных, которые мы отображаем и которую можно применить ко всем типам слоев: линиям, точкам и полигонам. Делать отбор можно радикально, удалив все ненужные объекты слоя, либо можно настроить правила отображения объектов так, чтобы отображались только нужные. Сейчас я покажу по одному способу, как можно сделать и то, и другое.
Удалить ненужные объекты можно, выделив их с помощью инструментов выделения на карте и нажав клавишу «Del». Это довольно долгий и не самый эффективный способ, поэтому, если у вас есть данные с атрибутами и вы хотите удалить ненужные объекты по их свойствам, поможет инструмент «Выбрать объекты по значению» (горячая клавиша F3)

Найти инструмент можно на главной панели QGIS. Сначала на панели слоев выберите слой, в котором вы хотите выделить объекты, а потом нажмите на значок нужного нам инструмента. С помощью него вы сможете, например, выделять здания, которые выше трех этажей (в примере на скрине у слоя есть поле «r_floors», в котором содержится информация об этажности зданий), либо о которых имеется информация об архитекторе (в примере на скрине есть поле «r_architect», в котором записано имя архитектора). Также можно выделять значения, которые содержат определенные буквосочетания.
Выделив нужные значения, можете удалить ненужные объекты, но обязательно проверяйте, как сработало ваше выделение, и на всякий случай делайте копии слоев, чтобы не удалить ничего лишнего.
Важно! Не забывайте, что от типа поля в таблице атрибутов слоя зависит то, как вы можете фильтровать данные. Если тип слоя текстовый (string), но в нем написаны числовые значения, то операцию по выделению значений больше определенного числа вы провести не сможете.

Чтобы не удалять объекты, а отобразить только нужные, вам потребуется использовать «Стиль слоя». Его можно найти, щелкнув правой клавишей мыши на слой и выбрав «Свойства слоя», там вы найдете «Стиль слоя». Можно быстро установить отображение объектов с помощью символизации по диапазонам или уникальным значениям, потом покопаться с видом отображения и убрать галочку с тех значений, которые вы не хотите отображать. Если же у вас несколько условий для отображения объекта, то лучше использовать стилизацию слоя через настройку «Стилизация на основе правил».
Отбор значений, выделение, фильтр и настройку отображения можно делать и более эффективными способами, например, с помощью калькулятора значений или генератора геометрий. О том, как их использовать, а также совершать манипуляции с геоданными, вы можете подробнее узнать на курсах «Введение в QGIS» и «Продвинутый QGIS».
Упрощение и сглаживание
Упростить геометрию полигонов и линий в QGIS можно с помощью инструмента «Упростить» («Simplify»), который скрывается на панели «Инструменты анализа».
Он предлагает нам на выбор три алгоритма:
- алгоритм Дугласа-Пекера удаляет точки таким образом, чтобы расстояние между соседними точками было больше заданного инструментом порогом (устанавливается настройкой «допуск»);
- алгоритм «Прилипать к сетке» округляет значения до определенного значения координат, но делает это очень странно. На практике похож на то, что делает алгоритм Дугласа-Пекера, но при работе с полигонами стремится к превращению их в прямоугольники при увеличении «допуска»;
- алгоритм площадной Висвалингама удаляет точки так, чтобы площади треугольников между соседними точками не были больше значения «допуска».
Если у вас нет панели «Инструменты анализа» справа, то ее можно включить выбрав на самой верхней панели вкладку «Анализ», а затем нажав на «Панель инструментов», либо просто использовав сочетание клавиш «Ctrl + Alt + T».


Для сглаживания используется инструмент «Сглаживание» (Smoothing), который можно найти на панели «Инструменты анализа». Он позволяет превратить остроугольную геометрию в плавные линии. Чем больше значение в поле «Итераций» в инструменте, тем более сглаженная будет геометрия, но тем дольше будут вычисления. «Смещение» означает, насколько сглаженная геометрия отличается от исходной: если значение 0,5, то значит различия могут быть до 50 %, если 0,25, то различия могут составлять 25 %.

Смещение
Смещение — это вид генерализации скорее косметического характера. Самый простой способ сделать смещение — воспользоваться инструментом «Переместить объект», который прекрасно работает, когда объектов немного, что бывает в большинстве случаев. Используется для слоев всех типов геометрий: точки, линии, полигоны.

Детализация
Детализация изображения — процесс, основанный на актуальных данных, например, космических снимков. Самый простой способ детализировать слой — использовать инструменты оцифровки, но часто они могут занимать огромное количество времени. Более массовые и сложные пути — углубиться в пучины машинного обучения и дешифровки спутниковых снимков, что никак не уместится в объем данной статьи.

Объединение и преобразование
Объединение — очень разнообразная задача в QGIS, у которой не так много простых решений и простых инструментов. Можно ее решать вручную инструментами оцифровки, а можно более элегантно с помощью генератора геометрии, скриптов на питоне или иными способами, комбинирующими различные инструменты.

Можно объединять полигоны между собой вручную с помощью инструмента «Слияние объектов», он находится все на той же панели дополнительных инструментов оцифровки и работает только для линейных и полигональных слоев.
Если же вам нужно объединить множество объектов в зависимости от какого-то значения атрибута, например, объединить все полигоны административных районов в полигоны областей по соответствующей колонке, то можно воспользоваться инструментом «Слияние по признаку» (Dissolve):

Если же вам нужно преобразовать информацию из полигонов в точки, то для этого в QGIS есть два отличных инструмента: «Центроиды» и «Полюс недоступности». Найти их можно на панели «Инструменты анализа», которая расположена в правой части экрана.

Вместо заключения
В этой статье я кратко рассказал о самых простых инструментах генерализации, которые вы можете применить на практике в QGIS. Несмотря на свою простоту, они помогут начинающему картографу. Будучи не самыми элегантными или неэффективными в некоторых случаях, они помогут выполнить свои задачи и набраться опыта перед тем, как идти к более сложным в использовании, но более эффективным инструментам генерализации, используя калькулятор значений, генератор геометрии или языки программирования.
Материал подготовил Александр Зуев