Оформление данных в QGIS. Картографический анализ структуры землепользования#
Все материалы были скопированы Основы геоинформатики: практикум в QGIS Андрей Энтин, Тимофей Самсонов, Андрей Карпачевский и доплнены
Материалы к практическому занятию#
В директории Student создайте папку Группа_ФИО. Разархивируйте скаченные материалы
Аннотация#
Задание посвящено знакомству с пространственным анализом на основе векторных данных.
Векторная модель представляет объекты в виде отдельных геометрических фигур с набором атрибутов.
Она является объектно-ориентированной и удобна для анализа формы, размеров объектов, их взаимной конфигурации в пространстве.
Одним из широко используемых методов анализа на основе векторных данных является оверлей.
При оверлее происходит наложение двух или более слоёв, в результате чего образуется их геометрическая (пространственная) композиция.
Полученные участки наследуют атрибуты от каждого слоя.
Эта операция базируется на стандартных отношениях множеств, таких как пересечение, объединение и симметрическая разность.
С помощью оверлея можно, например, установить, как соотносятся площади объектов разных типов в пределах ячеек регулярной сетки.
Это может быть важно при моделировании, например, локальных климатических зон или анализе экологической ситуации.
Визуальный анализ векторных слоев#
В первую очередь при анализе данных следует провести их визуальную оценку,
которая может натолкнуть на отыскание закономерностей во взаимном расположении объектов.
-
Распакуйте архив с материалами упражнения в свою рабочую директорию.
Создайте проект QGIS в папке с распакованными материалами. -
Добавьте на карту слои Industrial, Hydro, Green, Buildings
из базы данныхLandCover.gpkg.
Присвойте этим слоям разные цвета для лучшего восприятия данных (Нажмите по названию слоя ПКМ, свойства, стили). - Buildings - gray 2 fill
- Green - topo forest
- Hydro - topo water
- wkt_geom fid FID_Industrial OSM_ID LANDUSE RSDNTL - simple brown fill

Пример корретно оформленной карты

- Создайте регулярную сетку квадратов с помощью инструмента
Вектор → Анализ → Создать сетку… (Реже Вектор → Исследование → Создать сетку… )

В открывшемся окне параметров инструмента:
- выберите прямоугольный тип сетки;
- укажите вертикальный и горизонтальный шаг сетки — 1000 м;
- в качестве экстента (охвата) слоя задайте существующий слой проекта Buildings.
Сохраните сетку в отдельный файл GeoPackage в вашей рабочей директории.

- Измените стиль слоя сетки таким образом, чтобы отображались только границы полигонов. Установите толщину линии границы равной 0,26 мм. Переместите слой на верх таблицы слоёв.
Чтобы это выполнить используйте в стилях слояoutline black

Затем выделите Простая линия в верхнем меню. Настройте ширину линии.

Результат должен выглядеть аналогично рисунку ниже.

Расчёт площадей объектов#
Для расчёта доли площади каждого типа объекта в пределах ячейки необходимо знать площадь самой ячейки.
Для этого:
1. Выделите слой регулярной сетки в таблице слоёв QGIS.
2. Откройте таблицу атрибутов выбранного слоя (ПКМ по названию слоя -> Открыть таблицу атрибутов).
3. В окне таблицы атрибутов нажмите кнопку Калькулятор полей
— она расположена на панели инструментов таблицы, в верхней части окна.

- В интерфейсе Калькулятора полей укажите, что создаёте новое поле.
-
Введите имя поля —
CellArea— и выберите подходящий тип поля (числовой, с плавающей точкой). -
В поле выражения введите функцию
$areaи выполните расчёт.
Примечание:
area()— системная функция QGIS, возвращающая площадь объекта.
Значок$указывает, что функция применяется к текущему объекту.
Площадь вычисляется в единицах измерения, установленных для системы координат источника данных.
Для прямоугольных систем координат, как правило, это метры.
- При использовании Калькулятора полей автоматически включается режим редактирования.
- После выполнения расчёта сохраните изменения и выключите режим редактирования.
Оверлей векторных наборов данных#
Note
Оверлейный анализ (overlay analysis) — метод геоинформационных систем (ГИС), который предполагает объединение нескольких слоёв пространственных данных для создания составной карты, показывающей пространственные отношения между различными объектами.
Процесс включает наложение одного слоя на другой, в результате чего создаётся новый слой, в котором выделяются области пересечения двух слоёв
Для того чтобы рассчитать площади каждого типа объекта в пределах ячеек регулярной сетки,
необходимо выполнить операцию пересечения слоёв (оверлея).
- Откройте инструмент Вектор → Геообработка → Пересечение.
- В поле Входной слой (Input layer) выберите регулярную сетку.
- В поле Пересекающий слой (Overlay layer) укажите слой растительности (Green).
- Результат сохраните во временный слой.

Примечание:
Временные слои в QGIS хранятся во внутренней системной директории.
Если их не сохранить явно, они будут удалены после закрытия проекта.
В таблице слоёв такие слои отмечены значком часов справа от имени.
Результирующий слой будет называться Пересечение или Intersect.
Переименуйте его так, чтобы было ясно, какие данные пересекались (например, grid_green_intersect).
Изучите, чем полученный слой отличается от исходных по геометрии и атрибутам.
Повторите аналогичную операцию для остальных трёх слоёв (Buildings, Hydro, Industrial).

Обратите внимание:
в полученных слоях внутри каждой ячейки сетки обычно содержится несколько объектов.
Можно вычислить площадь каждого из них отдельно,
однако для анализа требуется суммарная площадь всех объектов в пределах ячейки.

Для вычисления общей площади в пределах ячейки необходимо объединить все объекты, которые в неё попадают, в единый полигон.
Это можно сделать с помощью операции объединения по признаку (англ. Dissolve).
Операция объединяет все геометрии, у которых совпадают значения одного или нескольких атрибутов.
После выполнения оверлея у каждого объекта растительности появился уникальный идентификатор ячейки регулярной сетки (id) — именно его следует использовать в качестве признака для объединения.
- Запустите инструмент Вектор – Геообработка – Объединение по признаку….

В параметрах инструмента укажите:
- Исходный слой — результат пересечения сетки и растительности.
- Поле классификации — столбец таблицы атрибутов, по которому выполняется объединение (в данном случае
id).
Результат сохраните в тот же файл GeoPackage, где хранится регулярная сетка,
и задайте имя новой таблицы green_intersect_dissolve.



Результирующий временный слой будет называться Объединённый слой или Dissolved.
Переименуйте его так, чтобы из названия было ясно, к какому типу объектов он относится (например, Green_dissolved для растительности).
- Повторите аналогичную операцию объединения по признаку для оставшихся трёх слоёв.
Подсказка: не закрывайте окно инструмента «Объединение по признаку» — достаточно изменить параметры входных данных и нажать «Выполнить».
Примечание: в некоторых версиях QGIS операция объединения может выполняться некорректно — в целевой слой не записываются объекты, и таблица атрибутов остаётся пустой.
Если такое произойдёт, сохраните объединённый слой в новый файл GeoPackage или во временный слой.
После получения всех объединённых слоёв рассчитайте площади объектов с помощью Калькулятора полей.
Для каждого набора данных используйте осмысленные имена полей, отличающиеся друг от друга (например, Green_area, buildings_area, hydro_area, industrial_area).
Пример для Green_area

Warning
Не забывайте выходить из редима редактирования !
Соединение таблиц по ключевому полю#
На данном этапе у вас должны быть четыре слоя с известными площадями объектов в пределах ячеек,
а также слой ячеек, для которых рассчитана площадь.
Для дальнейшего анализа необходимо соединить атрибутивные таблицы всех этих слоёв.
Соединение таблиц (table join) — операция, при которой к одной таблице временно добавляются столбцы из другой таблицы.
Чтобы установить соответствие между строками целевой и присоединяемой таблиц, в каждой из них должны быть поля с одинаковыми значениями, называемые ключевыми полями.
Например, это может быть числовой идентификатор объекта (как в нашем случае) или короткий текстовый код (например, трёхбуквенный код административной единицы по ISO).
Во время соединения QGIS сопоставляет значения в этих полях. Если найдено совпадение, строка из присоединяемой таблицы добавляется к атрибутам соответствующего объекта в целевой таблице.
Если совпадения нет, столбцы из присоединяемой таблицы всё равно создаются, но их значения остаются пустыми (NULL).
Соединение в QGIS реализовано по схеме M:1. Это означает, что одна строка присоединяемой таблицы может быть добавлена
к нескольким строкам целевой таблицы, а вот к одной строке целевой таблицы может быть присоединена только одна строка из другой таблицы.
Ключевое поле из присоединяемой таблицы называется первичным ключом, а ключевое поле из целевой таблицы — внешним ключом.
Для первичного ключа действует требование уникальности значений, в то время как для внешнего ключа это ограничение не применяется.

С помощью настроек, показанных на скриншоте, выполняются следующие действия:
- Связанный слой — таблица, атрибуты которой присоединяются к выбранному слою.
- Связываемое поле — поле из таблицы, содержащее значения, по которым выполняется соединение.
- Целевое поле — поле из слоя, содержащее соответствующие значения для установления связи.
- Редактируемый связанный слой и Изменения или вставка при редактировании
позволяют при изменении данных в таблице автоматически обновлять значения в связанном слое.
Это удобно, если нужно проверить, для скольких объектов слоя данные были успешно привязаны. - Присоединённые поля — список колонок, которые необходимо добавить из таблицы к слою.
- Пользовательский префикс имени поля — текст, добавляемый к названию присоединённого поля.
Если удалить этот префикс, в таблице атрибутов слоя появятся новые колонки
с исходными именами из таблицы, выбранными в пункте «Присоединённые поля».
Практика соединения таблиц#
-
Откройте свойства слоя регулярной сетки и перейдите на вкладку Связи (Joins).
-
Чтобы добавить новое соединение, нажмите кнопку «+» в нижней части окна.
Появится диалог, в котором необходимо указать: - Слой для соединения — таблицу, атрибуты которой требуется присоединить;
-
Ключевые поля, содержащие общие значения — в нашем случае это поле
id. -
Отметьте флажок «Присоединённые поля (Joined fields)», чтобы выбрать только нужные столбцы из присоединяемой таблицы. Нас интересует только поле, содержащее площадь объектов.
Дополнительно можно активировать опцию «Пользовательский префикс имени поля» и удалить все символы из формы, чтобы имена присоединённых полей сохранились без лишних приставок.
Question
Что такое «поле для объединения» и «целевое поле» в QGIS? Как правильно называются эти поля в процедуре соединения таблиц? К каким таблицам (слоям) относится каждое из них?
Расчёт площадей, не покрытых объектами#
Четыре типа объектов охватывают не всю территорию, так как существуют и другие категории землепользования, которые в данном случае не рассматриваются.
Для корректного анализа и визуализации необходимо рассчитать оставшуюся площадь каждой ячейки.
Это можно сделать, вычтя из площади ячейки площади всех типов объектов.
Проще всего выполнить такую операцию с помощью Калькулятора полей,однако возникает проблема: в таблице атрибутов встречаются пустые значения (NULL) в полях площадей. Они означают отсутствие объектов соответствующего типа в ячейке. Если попытаться выполнить вычисления с такими значениями, результат будет некорректным. Поэтому необходимо заменить NULL на 0.
Для этого воспользуйтесь запросами к таблице атрибутов и Калькулятором полей.
-
Сохраните слой регулярной сетки с присоединёнными полями как новый набор объектов (GeoPackage).
Для этого щёлкните по нему правой кнопкой мыши и выберите соответствующий пункт контекстного меню.
Это позволит избежать изменения исходных данных. -
Запустите Калькулятор полей для вновь сохранённого слоя.
-
В открывшемся окне выберите опцию обновить существующее поле,
затем укажите одно из полей, где хранятся площади покрытий (например,buildings_area). -
В левой панели калькулятора раскройте раздел «Условные»
и найдите функциюif. Изучите краткую справку к ней. -
Составьте выражение, которое заменяет пустые значения на нули:
if("buildings_area" IS NULL, 0, "buildings_area")
Здесь функция if проверяет, является ли значение поля NULL.
Если да — возвращает 0, иначе оставляет исходное значение.

Примечание:
Для проверки наNULLиспользуйте оператор IS,
поскольку выражение"поле" = NULLв QGIS не возвращает корректный результат.
Чтобы добавить имя поля в выражение, дважды щёлкните по его названию
в разделе «Поля и значения» в средней панели окна калькулятора.
- Проделайте аналогичную последовательность действий с выборкой и Калькулятором полей для остальных трёх типов объектов — замените
NULLна0в соответствующих полях площадей.
После этого используйте Калькулятор полей, чтобы рассчитать площадь ячейки, не покрытую ни одним из типов объектов. Для этого создайте новое поле, например other_area, и составьте выражение, аналогичное представленному на скриншоте:
"CellArea" - ("buildings_area" + "green_area" + "hydro_area" + "industrial_area")
Это выражение вычисляет остаток площади в пределах каждой ячейки, вычитая из общей площади ячейки (CellArea) площади всех типов покрытий. Результат отразит непокрытую площадь — ту часть территории, которая не относится ни к одному из четырёх указанных классов объектов.
- Выключите режим редактирования
Пример таблицы атрибутов после редактирвоания:

Способ локализованных значков#
Локализованные значки — это особый способ картографического изображения,применяемый для обозначения местоположения объектов, не выражающихся в масштабе карты или занимающих площадь меньшую,
чем сам картографический знак. Такие значки используются для показа явлений, локализованных в конкретных пунктах.
На топографических картах с их помощью обозначают местные предметы: указатели дорог, радиомачты, отдельно стоящие деревья и другие ориентиры.
На тематических и общегеографических картах мелкого масштаба значки могут выполнять не только функцию указания местоположения, но и характеризовать величину, значение или динамику объектов.
Так, значок населённого пункта может передавать тип поселения (город, посёлок городского типа, сельское поселение), его численность или административное значение.
Значки широко применяются также для отображения промышленных и сельскохозяйственных предприятий, месторождений полезных ископаемых и других объектов.
По своей форме значки подразделяются на абстрактные, буквенные и наглядные.
Среди абстрактных наиболее распространены геометрические фигуры — круги, квадраты, треугольники, прямоугольники, ромбы и др.
Такие значки просты в исполнении, хорошо различаются по легенде, занимают немного места, точно указывают положение объекта и легко сопоставимы по размеру.
Хотя количество элементарных геометрических фигур ограничено, их разнообразие можно увеличить, применяя разные цвета и вариации внутреннего рисунка, что позволяет расширить
систему условных обозначений.

Буквенные значки представляют собой одну или две начальные буквы названия изображаемого явления, например Р и Fe — для обозначения месторождений фосфора и железа. Применение таких значков сравнительно ограничено: они делают карту излишне пёстрой, не указывают точное положение объектов и плохо сопоставимы по размеру, особенно если используются буквы разной ширины и плотности штриха (например, I и W).
Обычно буквенные значки применяются, когда требуется чётко выделить определённую категорию объектов, например месторождения полезных ископаемых, среди других, отображаемых геометрическими символами, таких как промышленные пункты. Сравнение и локализация буквенных значков становятся проще, если буквы вписаны в геометрическую фигуру (например, квадрат). В этом случае сочетаются преимущества обоих типов значков — геометрических и буквенных.
Наглядные значки по своему рисунку напоминают изображаемые объекты. Среди них различают:
- Символические, форма которых вызывает ассоциацию с объектом (например, маска для обозначения театра на плане города);
- Натуралистические, передающие облик объекта более прямо (например, изображение трактора для указания тракторных заводов).

Такие значки менее удобны для сравнения и локализации объектов. Однако они встречаются на массовых картах-плакатах, где они должны бросаться в глаза, быть доходчивыми и восприниматься с большого расстояния.
Передача количественных соотношений посредством размера значков может осуществляться на разных основаниях. Нередко принимают площадь значков строго пропорциональной количественной характеристике (величине) соответствующих объектов (например, числу рабочих при картографировании промышленных предприятий). Тогда линейный размер значка пропорционален квадратному корню из числа, характеризующего величину объекта.
Шкалы таких значков можно строить различно. При равноделенном основании горизонтальной шкалы величин откладывают по вертикалям линейные размеры значков, пропорциональные корню квадратному из соответствующих величин, соединяют их плавной кривой и вписывают значки. Другой вариант той же шкалы также возможен.
Соизмеримость значков (или «масштабность» значков), точно пропорциональная величине объектов, называется абсолютной. Она наглядна, но неудобна, когда крайние величины картографируемых объектов сильно различаются между собой (например, население в больших, средних и малых городах). В этом случае приходится либо принять для крупных объектов чрезмерно большие значки, либо для малых брать совсем микроскопические.

И то и другое нежелательно. Поэтому при значительных различиях между крайними величинами картографируемых объектов либо прибегают к рисункам объемных фигур в виде изображенных в перспективе геометрических тел (например, в виде шаров, диаметр которых пропорционален кубическому корню из показателя величины объекта), либо используют условную соизмеримость в порядке убывающей прогрессии или произвольную, отражающую лишь общую тенденцию в изменении величин. Однако объемные фигуры употребляются редко. Как показывает опыт, даже в отношении площадных знаков их зрительное сопоставление обычно приводит к недооценке действительной величины крупных знаков. При объемных знаках глазомерная недооценка крупных величин проявляется еще сильнее.
Как при абсолютной, так и при условной соизмеримости значков их шкала может быть непрерывной либо ступенчатой, т. е. разбитой на интервалы. При непрерывной шкале размер знаков изменяется непрерывно вслед за изменением величины объекта. При ступенчатой шкале размер значков, постоянный в пределах каждого интервала и определяемый по среднему значению интервала, возрастает скачком при переходе к следующей ступени. Ступенчатые шкалы предпочтительны при изображении и группировке объектов по разрядам (классам) величин.
Рассмотрим некоторые принципы построения ступенчатых шкал. Удобство запоминания и пользования шкалой, а также легкость распознавания значков выдвигают два условия, общие для любых шкал:
во-первых, разграничение ступеней круглыми числами;
во-вторых, сокращение числа ступеней до 5–7, максимум до 10–12.
Осуществление этих требований не предопределяет величины интервалов. Последние устанавливают, руководствуясь особенностями картографируемого явления и назначением карты.
Простейший прием — выбор равных интервалов, т. е. построение шкалы по принципу арифметической прогрессии: a, a+b, a+b+b, a+b+b+b и т. д., — пригоден для характеристики однокачественных величин, изменяющихся в относительно ограниченных пределах.
Когда же эти пределы широки и для характеристики малых величин существенны сравнительно небольшие изменения, мало влияющие на крупные величины, тогда предпочтительна шкала с кратными интервалами, которая строится по принципу геометрической прогрессии: a, ak, ak², ak³ и т. д.
Числовая интерпретация такой шкалы, например: менее 100; от 100 до 1 000; от 1 000 до 10 000; от 10 000 до 100 000; от 100 000 до 1 000 000; свыше 1 000 000, показывает, что она дифференцирует и малые, и крупные величины (например, населённые пункты по их людности) при ограниченном числе ступеней.
При разработке шкал учитывают также качественные различия картографируемых явлений (например, для населённых пунктов подразделение на городские и сельские) и их особенности на конкретной территории (например, крайние значения величин, распределение объектов по намеченным ступеням шкалы и т. п.). Этот вопрос рассматривается в общей форме в § 3.4.
Ступенчатая шкала не так определенна, как непрерывная, но легче воспринимается и позволяет при работе над картой обойтись без циркуля и линейки и без арифметических подсчётов. Принадлежность значка к той или иной ступени может быть установлена на глаз.
Основание шкалы значков (т. е. число единиц или другая величина, соответствующая 1 мм² площади значка) выбирается так, чтобы обеспечить читаемость малых и не перегрузить карту изображениями крупных знаков.

Значки как внемасштабные изображения (размер которых может передавать непространственные характеристики) не выражают площадь, занимаемую на карте соответствующими объектами, но позволяют определять их положение. Для правильных геометрических значков оно обычно совпадает с их центром.
В этом случае даже перекрывающиеся значки не вызывают сомнений в действительном размещении объектов.
Различные виды суммарных (структурных) значков. Каждый значок изображает пункт с предприятиями трех отраслей промышленности: 1 - текстильной (10%); 2 - пищевой (30%); 3 - машиностроительной (60%):

Визуализируйте доли покрытий с помощью локализованных значков#
Для отображения соотношения площадей различных типов землепользования в пределах ячеек регулярной сетки удобно использовать круговые диаграммы. Такой способ визуализации позволяет наглядно представить структуру покрытия каждой ячейки, сохраняя при этом её пространственное положение.
1. Настройка диаграмм
Щёлкните правой кнопкой мыши по слою с сеткой и выберите пункт Свойства.
В открывшемся окне перейдите на вкладку Диаграммы.

2. Выбор типа диаграммы
В разделе Тип диаграммы установите параметр Круговая диаграмма.
Такой тип лучше всего подходит для отображения долей категориальных данных.
3. Настройка размера
В поле Размер установите фиксированное значение 3 мм — это обеспечит читаемость диаграмм на карте и позволит избежать их перекрытия.
4. Выбор атрибутов
В блоке Атрибуты отметьте поля, отражающие площади различных категорий покрытий:
buildings_area— застроенные территорииgreen_area— зелёные насажденияhydro_area— водные объектыindustrial_area— промышленные зоныother_area— прочие типы территорий
Каждому типу покрытия можно назначить собственный цвет, чтобы различать их на карте.
5. Проверка отображения
После применения настроек на карте появятся диаграммы, показывающие структуру покрытий в каждой ячейке.
Итоговая схема может выглядеть, например, следующим образом:

6. Оформление карты
Для подготовки картографического изображения откройте Компоновщик макета:
- Добавьте два элемента "Карта" — один для основной части Москвы, второй для города Зеленограда.
- Разместите их так, чтобы оба фрагмента были читаемы и сопоставимы.
- Добавьте легенду, масштабную линейку и при необходимости — заголовок карты.

В результате получится наглядная тематическая карта, где каждая ячейка регулярной сетки отображает структуру землепользования в виде круговой диаграммы, а карта в целом отражает пространственное распределение разных типов покрытий.