Оформление данных в QGIS. Картографический анализ структуры землепользования
Материалы занятия составлены на основе практикума «Основы геоинформатики: практикум в QGIS» А. Энтина, Т. Самсонова и А. Карпачевского и дополнены.
- О чём это занятие
- Пространственный анализ на векторных данных: оверлей слоёв землепользования с регулярной сеткой, расчёт долей площадей каждого типа покрытия в ячейках и визуализация структуры территории круговыми диаграммами.
- Аннотация
- Занятие начинается с визуальной оценки четырёх слоёв базы LandCover.gpkg — застройки, зелёных насаждений, воды и промзон — и построения регулярной сетки с шагом 1000 м. Затем выполняется главная операция занятия — оверлей: пересечение сетки с каждым слоем покрытий, объединение фрагментов по идентификатору ячейки (Dissolve) и расчёт площадей через калькулятор полей. Интерактивная модель на странице показывает механику оверлея вживую: клик по ячейке сетки вычисляет пересечения и строит диаграмму долей. Дальше — соединение таблиц по ключевому полю, замена NULL на нули функцией if и вычисление непокрытой площади. Завершает занятие теория способа локализованных значков — от геометрических и буквенных значков до принципов построения ступенчатых шкал — и настройка круговых диаграмм по ячейкам сетки с компоновкой итоговой карты.
- Пререквизиты
- Практика 9 — стили слоёв, классификация, макеты. Понятие соединения таблиц — лекция 2 и экспресс-занятие 3.
- Материалы к занятию
-
- В директории Student создайте папку Группа_ФИО и разархивируйте скачанные материалы.
- Презентация к практике
- Архив данных
1. Постановка задачи
Задание посвящено знакомству с пространственным анализом на основе векторных данных. Векторная модель представляет объекты в виде отдельных геометрических фигур с набором атрибутов. Она является объектно-ориентированной и удобна для анализа формы, размеров объектов, их взаимной конфигурации в пространстве. Один из широко используемых методов анализа на основе векторных данных — оверлей.
При оверлее происходит наложение двух или более слоёв, в результате чего образуется их геометрическая (пространственная) композиция. Полученные участки наследуют атрибуты от каждого слоя. Операция базируется на стандартных отношениях множеств: пересечении, объединении и симметрической разности.
С помощью оверлея можно, например, установить, как соотносятся площади объектов разных типов в пределах ячеек регулярной сетки. Это важно при моделировании локальных климатических зон или анализе экологической ситуации.
2. Визуальный анализ векторных слоёв
В первую очередь при анализе данных следует провести их визуальную оценку — она может натолкнуть на отыскание закономерностей во взаимном расположении объектов.
- Распакуйте архив с материалами упражнения в свою рабочую директорию. Создайте проект QGIS в папке с распакованными материалами.
- Добавьте на карту слои Industrial, Hydro,
Green, Buildings из базы данных
LandCover.gpkg. Присвойте слоям разные цвета (ПКМ по названию слоя → Свойства → Стили):- Buildings — gray 2 fill;
- Green — topo forest;
- Hydro — topo water;
- Industrial — simple brown fill.
Пример корректно оформленной карты:
- Создайте регулярную сетку квадратов инструментом Вектор → Анализ → Создать сетку… (реже — Вектор → Исследование → Создать сетку…).
В окне параметров инструмента:
- выберите прямоугольный тип сетки;
- укажите вертикальный и горизонтальный шаг сетки — 1000 м;
- в качестве экстента (охвата) задайте существующий слой проекта Buildings.
Сохраните сетку в отдельный файл GeoPackage в вашей рабочей директории.
- Измените стиль слоя сетки так, чтобы отображались только границы полигонов; толщина линии границы — 0,26 мм. Переместите слой наверх таблицы слоёв. В стилях слоя используйте outline black.
Затем выделите «Простая линия» в верхнем меню и настройте ширину линии:
Результат должен выглядеть аналогично рисунку ниже:
2.1. Расчёт площадей ячеек
Для расчёта доли площади каждого типа объекта в пределах ячейки необходимо знать площадь самой ячейки. Для этого:
- Выделите слой регулярной сетки в таблице слоёв QGIS.
- Откройте таблицу атрибутов выбранного слоя (ПКМ по названию слоя → «Открыть таблицу атрибутов»).
- Нажмите кнопку Калькулятор полей
—
она расположена на панели инструментов таблицы, в верхней части окна.
- В интерфейсе калькулятора укажите, что создаёте новое поле.
- Введите имя поля —
CellArea— и выберите подходящий тип поля (числовой, с плавающей точкой). - В поле выражения введите функцию
$areaи выполните расчёт.
area() — системная функция QGIS, возвращающая площадь объекта. Значок
$ указывает, что функция применяется к текущему объекту. Площадь
вычисляется в единицах измерения системы координат источника данных; для прямоугольных
систем это, как правило, метры.
- При использовании калькулятора полей автоматически включается режим редактирования.
- После расчёта сохраните изменения и выключите режим редактирования.
3. Оверлей векторных наборов данных
Оверлейный анализ (overlay analysis) — метод ГИС, который предполагает объединение нескольких слоёв пространственных данных для создания составной карты, показывающей пространственные отношения между объектами. Процесс включает наложение одного слоя на другой, в результате чего создаётся новый слой, в котором выделяются области пересечения исходных слоёв.
Чтобы рассчитать площади каждого типа объекта в пределах ячеек регулярной сетки, выполните операцию пересечения слоёв:
- Откройте инструмент Вектор → Геообработка → Пересечение.
- В поле Входной слой (Input layer) выберите регулярную сетку.
- В поле Пересекающий слой (Overlay layer) укажите слой растительности (Green).
- Результат сохраните во временный слой.
Результирующий слой будет называться «Пересечение» или «Intersect». Переименуйте его
так, чтобы было ясно, какие данные пересекались (например,
grid_green_intersect). Изучите, чем полученный слой отличается от исходных
по геометрии и атрибутам. Повторите операцию для остальных трёх слоёв
(Buildings, Hydro, Industrial).
Для вычисления общей площади в пределах ячейки нужно объединить все попадающие в неё объекты в единый полигон — операцией объединения по признаку (Dissolve). Она объединяет все геометрии с совпадающими значениями одного или нескольких атрибутов. После оверлея у каждого объекта растительности появился уникальный идентификатор ячейки регулярной сетки (id) — именно его следует использовать как признак объединения.
- Запустите инструмент Вектор → Геообработка → Объединение по признаку…
В параметрах инструмента укажите:
- Исходный слой — результат пересечения сетки и растительности;
- Поле классификации — столбец таблицы атрибутов, по которому
выполняется объединение (в данном случае
id).
Результат сохраните в тот же файл GeoPackage, где хранится регулярная сетка,
и задайте имя новой таблицы green_intersect_dissolve.
Результирующий временный слой будет называться «Объединённый слой» или «Dissolved».
Переименуйте его по типу объектов (например, Green_dissolved).
- Повторите операцию объединения по признаку для оставшихся трёх слоёв. Подсказка: не закрывайте окно инструмента — достаточно изменить параметры входных данных и нажать «Выполнить».
После получения всех объединённых слоёв рассчитайте площади объектов калькулятором
полей. Для каждого набора данных используйте осмысленные имена полей, отличающиеся друг
от друга: green_area, buildings_area, hydro_area,
industrial_area. Пример для green_area:
4. Тренажёр: оверлей вживую
Как именно «Пересечение» + «Dissolve» + калькулятор полей дают долю покрытий в ячейке? Модель ниже повторяет весь конвейер на игрушечном городе: сетка 4 × 4 км наложена на четыре типа покрытий. Щёлкните по любой ячейке — тренажёр честно вычислит пересечение каждого полигона с ячейкой, сложит площади фрагментов (это и есть Dissolve по id ячейки) и построит круговую диаграмму долей, включая непокрытую площадь other_area.
Полигоны условного города; площади вычисляются алгоритмом отсечения полигонов (тем же принципом пользуется инструмент «Пересечение» QGIS). Ячейка 1 × 1 км = 1 000 000 м².
5. Соединение таблиц по ключевому полю
На данном этапе у вас должны быть четыре слоя с известными площадями объектов в пределах ячеек, а также слой ячеек с рассчитанной площадью. Для дальнейшего анализа необходимо соединить атрибутивные таблицы всех этих слоёв.
Соединение таблиц (table join) — операция, при которой к одной таблице временно добавляются столбцы из другой. Чтобы установить соответствие между строками целевой и присоединяемой таблиц, в каждой из них должны быть поля с одинаковыми значениями — ключевые поля: числовой идентификатор объекта (как в нашем случае) или короткий текстовый код (например, трёхбуквенный код административной единицы по ISO).
Во время соединения QGIS сопоставляет значения в этих полях. Если найдено совпадение, строка из присоединяемой таблицы добавляется к атрибутам соответствующего объекта целевой таблицы. Если совпадения нет, столбцы всё равно создаются, но значения остаются пустыми (NULL).
Соединение в QGIS реализовано по схеме M:1: одна строка присоединяемой таблицы может быть добавлена к нескольким строкам целевой, а вот к одной строке целевой таблицы может быть присоединена только одна строка из другой. Ключевое поле присоединяемой таблицы называется первичным ключом, целевой — внешним ключом; для первичного действует требование уникальности значений, для внешнего — нет.
С помощью настроек, показанных на скриншоте, выполняются действия:
- Связанный слой — таблица, атрибуты которой присоединяются к выбранному слою;
- Связываемое поле — поле из таблицы со значениями, по которым выполняется соединение;
- Целевое поле — поле из слоя с соответствующими значениями для установления связи;
- Редактируемый связанный слой и Изменения или вставка при редактировании позволяют при изменении данных в таблице автоматически обновлять значения в связанном слое — удобно, чтобы проверить, для скольких объектов данные успешно привязаны;
- Присоединённые поля — список колонок, добавляемых из таблицы к слою;
- Пользовательский префикс имени поля — текст, добавляемый к названию присоединённого поля; если удалить префикс, новые колонки появятся с исходными именами.
5.1. Практика соединения таблиц
- Откройте свойства слоя регулярной сетки и перейдите на вкладку Связи (Joins).
- Чтобы добавить новое соединение, нажмите кнопку «+» внизу окна. В появившемся
диалоге укажите: слой для соединения (таблицу с площадями) и ключевые поля с общими
значениями — в нашем случае поле
id. - Отметьте флажок Присоединённые поля (Joined fields) и выберите только нужные столбцы — нас интересует поле с площадью объектов. Дополнительно можно активировать «Пользовательский префикс имени поля» и очистить форму, чтобы имена присоединённых полей сохранились без приставок.
Что такое «поле для объединения» и «целевое поле» в QGIS? Как правильно называются эти поля в процедуре соединения таблиц? К каким таблицам (слоям) относится каждое из них?
показать ответ
Поле для объединения — поле присоединяемой таблицы (в терминах соединения — первичный ключ, требуется уникальность значений); целевое поле — поле целевого слоя (внешний ключ, уникальность не требуется). Соединение M:1 сопоставляет строки по совпадению значений этих полей.
6. Расчёт площадей, не покрытых объектами
Четыре типа объектов охватывают не всю территорию: существуют и другие категории землепользования, не рассматриваемые в этом задании. Для корректного анализа и визуализации необходимо рассчитать оставшуюся площадь каждой ячейки — вычесть из площади ячейки площади всех типов объектов.
Проще всего сделать это калькулятором полей, однако возникает проблема: в таблице атрибутов встречаются пустые значения (NULL) в полях площадей — они означают отсутствие объектов соответствующего типа в ячейке. Вычисления с NULL дадут некорректный результат, поэтому сначала NULL заменяется на 0.
- Сохраните слой регулярной сетки с присоединёнными полями как новый набор объектов (GeoPackage): ПКМ по слою → соответствующий пункт контекстного меню. Это позволит не изменять исходные данные.
- Запустите калькулятор полей для вновь сохранённого слоя.
- Выберите опцию обновить существующее поле и укажите одно из полей
площадей (например,
buildings_area). - В левой панели калькулятора раскройте раздел «Условные» и найдите функцию if; изучите краткую справку к ней.
- Составьте выражение, заменяющее пустые значения нулями:
if("buildings_area" IS NULL, 0, "buildings_area")
Функция if проверяет, является ли значение поля NULL: если да — возвращает 0, иначе оставляет исходное значение.
"поле" = NULL в QGIS не возвращает корректный результат. Чтобы добавить
имя поля в выражение, дважды щёлкните по его названию в разделе «Поля и значения»
в средней панели окна калькулятора.
- Проделайте аналогичную последовательность действий для остальных трёх типов объектов — замените NULL на 0 в соответствующих полях площадей.
После этого используйте калькулятор полей, чтобы рассчитать площадь ячейки,
не покрытую ни одним из типов объектов. Создайте новое поле other_area
с выражением:
"CellArea" - ("buildings_area" + "green_area" + "hydro_area" + "industrial_area")
Выражение вычисляет остаток площади в пределах каждой ячейки, вычитая из общей площади ячейки (CellArea) площади всех типов покрытий. Результат отражает непокрытую площадь — часть территории, не относящуюся ни к одному из четырёх классов объектов.
- Выключите режим редактирования.
Пример таблицы атрибутов после редактирования:
7. Способ локализованных значков
Локализованные значки — особый способ картографического изображения, применяемый для обозначения местоположения объектов, не выражающихся в масштабе карты или занимающих площадь меньшую, чем сам картографический знак. Такие значки используются для показа явлений, локализованных в конкретных пунктах.
На топографических картах с их помощью обозначают местные предметы: указатели дорог, радиомачты, отдельно стоящие деревья и другие ориентиры. На тематических и общегеографических картах мелкого масштаба значки могут не только указывать местоположение, но и характеризовать величину, значение или динамику объектов: значок населённого пункта может передавать тип поселения (город, посёлок городского типа, сельское поселение), его численность или административное значение. Значки широко применяются также для отображения промышленных и сельскохозяйственных предприятий, месторождений полезных ископаемых и других объектов.
По форме значки подразделяются на абстрактные, буквенные и наглядные. Среди абстрактных наиболее распространены геометрические фигуры — круги, квадраты, треугольники, прямоугольники, ромбы. Такие значки просты в исполнении, хорошо различаются по легенде, занимают немного места, точно указывают положение объекта и легко сопоставимы по размеру. Хотя количество элементарных геометрических фигур ограничено, их разнообразие можно увеличить разными цветами и вариациями внутреннего рисунка.
Буквенные значки — одна или две начальные буквы названия изображаемого явления, например Р и Fe для месторождений фосфора и железа. Их применение сравнительно ограничено: они делают карту излишне пёстрой, не указывают точное положение объектов и плохо сопоставимы по размеру, особенно при буквах разной ширины и плотности штриха (например, I и W). Обычно буквенные значки применяются, когда требуется чётко выделить определённую категорию объектов — например, месторождения среди промышленных пунктов, отображаемых геометрическими символами. Сравнение и локализация упрощаются, если буквы вписаны в геометрическую фигуру (например, квадрат) — сочетаются преимущества обоих типов значков.
Наглядные значки напоминают изображаемые объекты. Различают символические, форма которых вызывает ассоциацию с объектом (маска для театра на плане города), и натуралистические, передающие облик объекта прямо (изображение трактора для тракторных заводов).
Такие значки менее удобны для сравнения и локализации объектов, однако встречаются на массовых картах-плакатах, где должны бросаться в глаза, быть доходчивыми и восприниматься с большого расстояния.
Передача количественных соотношений размером значков может осуществляться на разных основаниях. Нередко площадь значка принимают строго пропорциональной величине объекта (например, числу рабочих при картографировании предприятий) — тогда линейный размер значка пропорционален квадратному корню из показателя. Шкалы строятся различно: при равноделенном основании горизонтальной шкалы величин по вертикалям откладывают линейные размеры значков, пропорциональные корню квадратному из соответствующих величин, соединяют их плавной кривой и вписывают значки.
Соизмеримость («масштабность») значков, точно пропорциональная величине объектов, называется абсолютной. Она наглядна, но неудобна, когда крайние величины сильно различаются (население больших, средних и малых городов): приходится либо принимать чрезмерно большие значки для крупных объектов, либо микроскопические для малых. И то и другое нежелательно. Поэтому при значительных различиях либо прибегают к рисункам объёмных фигур в перспективе (шары с диаметром, пропорциональным кубическому корню из показателя), либо используют условную соизмеримость в порядке убывающей прогрессии или произвольную, отражающую лишь общую тенденцию изменения величин. Объёмные фигуры употребляются редко: как показывает опыт, даже зрительное сопоставление площадных знаков приводит к недооценке действительной величины крупных знаков, а при объёмных недооценка проявляется ещё сильнее.
Как при абсолютной, так и при условной соизмеримости шкала значков может быть непрерывной либо ступенчатой, т. е. разбитой на интервалы. При непрерывной шкале размер знаков изменяется непрерывно вслед за изменением величины объекта; при ступенчатой размер, постоянный в пределах каждого интервала и определяемый по среднему значению интервала, возрастает скачком при переходе к следующей ступени. Ступенчатые шкалы предпочтительны при изображении и группировке объектов по разрядам (классам) величин.
Принципы построения ступенчатых шкал. Удобство запоминания и пользования шкалой, а также лёгкость распознавания значков выдвигают два условия, общие для любых шкал: во-первых, разграничение ступеней круглыми числами; во-вторых, сокращение числа ступеней до 5–7, максимум до 10–12. Эти требования не предопределяют величины интервалов — их устанавливают, руководствуясь особенностями картографируемого явления и назначением карты.
Простейший приём — выбор равных интервалов, т. е. построение шкалы по принципу арифметической прогрессии: a, a+b, a+2b, a+3b и т. д. Он пригоден для характеристики однокачественных величин, изменяющихся в относительно ограниченных пределах. Когда же пределы широки и для малых величин существенны небольшие изменения, мало влияющие на крупные величины, предпочтительна шкала с кратными интервалами по принципу геометрической прогрессии: a, ak, ak², ak³. Числовая интерпретация такой шкалы — например: менее 100; от 100 до 1 000; от 1 000 до 10 000; от 10 000 до 100 000; от 100 000 до 1 000 000; свыше 1 000 000 — дифференцирует и малые, и крупные величины при ограниченном числе ступеней.
При разработке шкал учитывают также качественные различия картографируемых явлений (для населённых пунктов — подразделение на городские и сельские) и их особенности на конкретной территории (крайние значения величин, распределение объектов по ступеням шкалы). Ступенчатая шкала не так определённа, как непрерывная, но легче воспринимается и позволяет обойтись без циркуля, линейки и арифметических подсчётов: принадлежность значка к ступени устанавливается на глаз. Основание шкалы значков (число единиц на 1 мм² площади значка) выбирается так, чтобы обеспечить читаемость малых значков и не перегрузить карту крупными.
Значки как внемасштабные изображения (размер которых может передавать непространственные характеристики) не выражают площадь, занимаемую объектами на карте, но позволяют определять их положение — для правильных геометрических значков оно обычно совпадает с центром. В этом случае даже перекрывающиеся значки не вызывают сомнений в действительном размещении объектов.
Различные виды суммарных (структурных) значков: каждый значок изображает пункт с предприятиями трёх отраслей промышленности — 1 текстильной (10 %), 2 пищевой (30 %), 3 машиностроительной (60 %):
8. Визуализация долей покрытий локализованными значками
Для отображения соотношения площадей различных типов землепользования в пределах ячеек регулярной сетки удобно использовать круговые диаграммы. Такой способ визуализации наглядно представляет структуру покрытия каждой ячейки, сохраняя её пространственное положение.
- Настройка диаграмм. Щёлкните ПКМ по слою с сеткой и выберите «Свойства»; в открывшемся окне перейдите на вкладку Диаграммы.
- Выбор типа диаграммы. В разделе «Тип диаграммы» установите Круговая диаграмма — она лучше всего подходит для долей категориальных данных.
- Настройка размера. В поле «Размер» установите фиксированное значение 3 мм — это обеспечит читаемость диаграмм и позволит избежать их перекрытия.
- Выбор атрибутов. В блоке «Атрибуты» отметьте поля площадей:
buildings_area— застроенные территории;green_area— зелёные насаждения;hydro_area— водные объекты;industrial_area— промышленные зоны;other_area— прочие типы территорий.
- Проверка отображения. После применения настроек на карте появятся диаграммы структуры покрытий в каждой ячейке:
- Оформление карты. Откройте компоновщик макета:
- добавьте два элемента «Карта» — один для основной части Москвы, второй для Зеленограда;
- разместите их так, чтобы оба фрагмента были читаемы и сопоставимы;
- добавьте легенду, масштабную линейку и при необходимости заголовок карты.
В результате получится наглядная тематическая карта, где каждая ячейка регулярной сетки отображает структуру землепользования круговой диаграммой, а карта в целом отражает пространственное распределение разных типов покрытий.
Контрольные вопросы
-
Оверлей — наложение двух и более слоёв пространственных данных с образованием их геометрической композиции; полученные участки наследуют атрибуты от каждого слоя. Основан на отношениях множеств: пересечении, объединении и симметрической разности.
-
После пересечения внутри одной ячейки сетки остаётся несколько фрагментов покрытия, а для анализа нужна суммарная площадь. Dissolve (объединение по признаку) сливает все фрагменты с одинаковым идентификатором ячейки (поле id, унаследованное от сетки при оверлее) в один полигон.
-
Функцией $area: area() — системная функция площади, а знак $ указывает, что она применяется к текущему объекту. Результат — в единицах системы координат данных (для прямоугольных систем обычно метры).
-
NULL означает отсутствие объектов типа в ячейке; арифметика с NULL даёт некорректный (пустой) результат, поэтому NULL заменяют нулём: if("поле" IS NULL, 0, "поле"). Проверять нужно оператором IS — выражение "поле" = NULL в QGIS корректный результат не возвращает.
-
Соединение M:1: одна строка присоединяемой таблицы может достаться нескольким строкам целевой, но не наоборот. Ключевое поле присоединяемой таблицы — первичный ключ (требуется уникальность), поле целевого слоя — внешний ключ (уникальность не требуется). При отсутствии совпадения присоединённые поля заполняются NULL.
-
Абстрактные (геометрические) — просты, точно локализуют, сопоставимы по размеру; буквенные — выделяют категорию, но пестрят, плохо локализуются и сравниваются; наглядные (символические и натуралистические) — доходчивы на картах-плакатах, но неудобны для сравнения и точной локализации.
-
В непрерывной шкале размер значка меняется непрерывно вслед за величиной объекта; в ступенчатой размер постоянен внутри интервала и растёт скачком. Общие требования: границы ступеней — круглые числа; число ступеней — 5–7, максимум 10–12. При широких пределах величин применяется шкала геометрической прогрессии.
-
Круговая диаграмма показывает доли категориальных данных, сохраняя пространственное положение ячейки. Атрибуты: buildings_area, green_area, hydro_area, industrial_area и other_area (непокрытая площадь) — каждому назначается свой цвет; фиксированный размер 3 мм предотвращает перекрытия.
Источники
- Энтин, А. Л. Основы геоинформатики: практикум в QGIS / А. Л. Энтин, Т. Е. Самсонов, А. А. Карпачевский. — М. : МГУ, 2020. — URL: https://aentin.github.io/qgis-course/ (дата обращения: 18.08.2026).
- Салищев, К. А. Картоведение : учебник / К. А. Салищев. — 3-е изд. — М. : Изд-во МГУ, 1990. — 400 с.
- QGIS Documentation. Vector geoprocessing tools : [сайт]. — URL: https://docs.qgis.org/3.34/ru/docs/user_manual/processing_algs/qgis/vectoroverlay.html (дата обращения: 18.08.2026).