Как найти площадь в qgis

В статье описываются особенности получения основных пространственных характеристик объектов (координат, длин, площадей) хранящихся в shape-файлах при использовании свободной ГИС QGIS.

При написании использована версия QGIS 1.9.90-Alpha ad955e2 [1]

Содержание

  • 1 Вводные замечания
  • 2 Использование fTools (инструмент «Добавить поле геометрии»)
    • 2.1 Пример 1. Вычисление координат точек в СК слоя
    • 2.2 Пример 2. Вычисление координат точек в СК вида
    • 2.3 Пример 3. Вычисление координат точек на эллипсоиде
  • 3 Использование калькулятора полей
    • 3.1 Пример 4. Расчет площади с помощью калькулятора полей
  • 4 Заключение
  • 5 Ссылки
  • 6 Примечания

[править] Вводные замечания

Технически, получить координаты, длины или площади пространственных объектов в современных ГИС достаточно просто. Гораздо сложнее понять насколько точны значения которые мы получили, и что можно сделать для улучшения точности полученных величин.

В зависимости от используемой для расчета системы координат (СК) и метода расчет пространственных характеристик объекта можно осуществить тремя способами:

  1. Расчет в СК слоя (Layer CRS) — для расчетов используется собственная система координат слоя. Поскольку векторные слои чаще всего хранят в не-спроецированном виде (в географической системе координат, например WGS1984 или Pulkovo 1942), все пространственные характеристики будут рассчитаны в десятичных градусах. Результаты таких расчетов имеют смысл только для координат точек и не имеют смысла для длин и площадей, так как единицы в таких системах угловые, а не линейные. Для расчетов площадей и длин, нужно предварительно перепроецировать слой в одну из прямоугольных систем координат. Если данные уже перепроецированы, этот способ вполне корректен.
  2. Расчет в текущей СК (Project CRS) — большинство ГИС позволяет настроить отображение объектов на экране в системе координат, отличной от исходной системы координат данных, при этом данные будут автоматически переведены в текущую систему (т.н. «перепроецирование на лету»). Для расчета можно использовать именно ее. Это удобно тем, что для расчетов длин и площадей нам не нужно предварительно перепроецировать хранящиеся в географической СК слои в новую, расчетную СК (создавая таким образом копию данных). Недостаток данного способа в том, что расчеты идут не на реальной поверхности геоида, а на приближенной к нему спроецированной плоскости и чтобы получить точные результаты, мы должны для каждого отдельного случая правильно выбрать проекцию и задать ее параметры. Кроме того, в случае, если мы имеем дело с крупными географическими объектами, такими как континенты или земной шар в целом, для расчетов длин и площадей приходится использовать разные проекции. Подробнее о проекциях и их использовании для конкретных нужд можно почитать в пособии по картографическим проекциям.
  3. Расчет на эллипсоиде (Ellipsoid) — расчет пространственных характеристик объектов осуществляется на сфере или эллипсоиде. Использование данного метода позволяет получать наиболее точные результаты и не требует предварительных действий по перепроецированию или выбору проекции и подходит для всех типов геометрии (точек, линий и полигонов). Фактически, проекция данных игнорируется. В общем случае, рекомендуется использовать именно расчет на эллипсоиде.

На данный момент в QGIS реализовано два инструмента для расчета площадей:

  1. Инструмент «Экспорт/Добавить поле геометрии (входит в состав модуля fTools). Данный инструмент поддерживает все три способа расчета площадей (в СК слоя, в СК вида и на эллипсоиде).
  2. Набор функций для расчета пространственных характеристик в калькуляторе полей (Field Calculator), тут на настоящий момент реализована поддержка расчетов только в СК слоя.

Рассмотрим использование различных инструментов QGIS для расчетов пространственных характеристик. В расчетах, для проверки сходимости результатов, будем использовать Geosample: Открытый набор геоданных для различного ПО ГИС. Готовый проект для QGIS, включающий все необходимые для данной статьи слои, можно скачать здесь.

[править] Использование fTools (инструмент «Добавить поле геометрии»)

Последовательность действий такова.

Инструмент доступен из меню ВекторОбработка геометрииЭкспортировать/Добавить поле геометрии
После запуска инструмента открывается диалоговое меню предоставляющее следующие возможности:

Диалоговое окно инструмента «Экспортировать/Добавить поле геометрии»: 1) выпадающий список для выбора слоя; 2) выбор способа расчетов; 3) выбор способа сохранения результатов.

  1. Выбор слоя для расчетов из списка
  2. Выбор способа расчета (подробнее). Здесь возможны три варианта:
    • В СК слоя (Layer CRS)
    • В текущей СК проекта (Project CRS)
    • На эллипсоиде (Ellipsoid)
  3. Выбор способа сохранения результата:
    • Установка галочки «Save to new shapefile» (Сохранить в новый Shape-файл) приведет к созданию нового слоя к которому будут добавлены дополнительные колонки с результатами расчетов.
    • Если галочка не установлена (по умолчанию это так), то соответствующие поля с результатами расчетов создаются в текущем слое.
  4. По окончании расчетов автоматически создаются колонки с результатами. Единицы измерения зависят от способа расчетов (в географической системе координат — это десятичные градусы; при расчетах в проекциях и эллипсоидальные — это метры).
  5. Для разных типов геометрии создаются следующие поля:
    • Для точечных слоев: XCOORD (долгота), YCOORD (широта)
    • Для линейных: LENGTH (длина)
    • Для полигональных: AREA (площадь), PERIMETER (периметр)

[править] Пример 1. Вычисление координат точек в СК слоя

1. Загрузим в QGIS слой poi-osm.shp (точечные объекты OSM) из геосэмпла.
Проверим в какой СК находится данный слой. Для этого в менеджере слоев щелкнем по нему правой кнопкой мыши и в выпадающем меню выберем пункт «Свойства». В открывшемся диалоговом окне выберем вкладку «Метаданные».

Запись

Layer Spatial Reference System:
+proj=longlat +datum=WGS84 +no_defs

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

2. Выполним VectorОбработка геометрииЭкспортировать/Добавить поле геометрии

Add-geometry-column.png

3. Следующее диалоговое окно предлагает выбрать слой для которого необходимо рассчитать пространственные характеристики.

Calculation-3.png

  • Из выпадающего списка выберем poi-osm.shp.
  • В качестве способа расчета выберем СК слоя (Layer CRS)
  • Сохраним результаты расчета в том же файле
  • Нажмем «ОК».
  • После пересчета координат появится сообщение, что слой обновлен. Жмем «ОК».

Проверим результат:

Откроем таблицу атрибутов нового слоя: СлойОткрыть таблицу атрибутов
Появилось две новых колонки XCOORD (долгота) и YCOORD (широта) выраженные в десятичных градусах.

New-latlon-column.png

[править] Пример 2. Вычисление координат точек в СК вида

Для того, чтобы получить координаты точек в метрической системе, можно либо перепроецировать имеющийся точечный слой в какую-нибудь прямоугольную СК и произвести расчеты, как показано в примере 1, либо задать необходимую СК проекту и рассчитать пространственные характеристики в ней, не перепроецируя при этом слой.

1. Зададим СК проекта: WGS 84, UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную). Для этого выполним:

УстановкиСвойства проекта и откроем вкладку Система координат.

Установим галочку «Включить преобразование координат на лету»

В графе «Filter» наберем

UTM zone 44N

или код EPSG проекции:

32644

В результате останутся только те СК, которые содержат в названии это сочетание букв.

В меню «Coordinate reference systems of the world» Выберем «WGS 84 zone 44N».

Жмем «ОК».

Все слои вида отображаются теперь в выбранной нами проекции.

Change-coord-system.png

2. Теперь рассчитаем координаты точек в установленной нами СК проекта (вида):

Выполним VectorОбработка геометрииЭкспортировать/Добавить поле геометрии

Из выпадающего списка выберем poi-osm.shp.

В качестве способа расчета выберем СК проекта (Project CRS)

Сохраним результаты расчета в том же файле (галочка «Save to New shapefile» не установлена).

Нажмем «ОК».

После пересчета координат появится сообщение, что слой обновлен. Жмем «ОК».

Calculation-4.png

3. Проверим результат:
Откроем таблицу атрибутов нового слоя: СлойОткрыть таблицу атрибутов

Добавились новые поля геометрии: XCOORD (долгота) и YCOORD (широта), причем, координаты выражены в метрах в установленной нами СК (WGS84/UTM zone 44N).

результат расчета

Аналогичным образом в СК вида рассчитываются пространственные характеристики линейных и полигональных слоев.

[править] Пример 3. Вычисление координат точек на эллипсоиде

Как уже было сказано, в большинстве случаев, предпочтительным (дающим наиболее точные результаты) является расчет пространственных характеристик объектов на эллипсоиде. Получить представление насколько могут отличаться результаты расчетов на эллипсоиде от результатов расчетов в различных СК можно из статьи «Сравнение разных способов вычисления длин и азимутов».

Важно: следует учитывать, что при расчете на эллипсоиде, координаты точек по умолчанию возвращаются в десятичных градусах, а длины и площади — в метрах независимо от СК вида или слоя.

Перед тем, как производить расчеты на эллипсоиде необходимо его выбрать, для этого выполним: УстановкиПараметры. На вкладке «Инструменты» выбрать из выпадающего списка «Эллипсоид для вычисления расстояний». По умолчанию это универсальный эллипсоид WGS 84.

Choose-ellipsoid.png

После выбора эллипсоида для расчетов, рассчитаем координаты точек:

1. Выполним VectorОбработка геометрииЭкспортировать/Добавить поле геометрии.

2. Из выпадающего списка выберем poi-osm.shp.

3. В качестве способа расчета выберем расчет на эллипсоиде (Ellipsoid).

4. Сохраним результаты расчета в том же файле (галочка «Save to New shapefile» не установлена).

5. Нажмем «ОК».

6. После пересчета координат появится сообщение, что слой обновлен. Жмем «ОК».

Calculation-5.png

7. Проверим результат: откроем таблицу атрибутов нового слоя: СлойОткрыть таблицу атрибутов. Добавились новые поля геометрии — XCOORD (долгота) и YCOORD (широта), выраженные в десятичных градусах.

Имеем следующий результат:

LCS-ell-coord.png

Обратите внимание, что координаты точек рассчитанные в СК слоя (географической СК на эллипсоиде WGS-84 — поля COORD_GCS) полностью совпадают с координатами рассчитанными непосредственно на эллипсоиде WGS-84 (COORD_el).

Аналогичным образом на эллипсоиде рассчитываются пространственные характеристики линейных и полигональных слоев.

[править] Использование калькулятора полей

При расчете пространственных характеристик с помощью калькулятора полей (Field Calculator) следует помнить, что все расчеты производятся в единицах измерения слоя, т.е. чтобы получить результаты в градусах, исходный слой должен находиться в географической СК, а чтобы получить результаты в метрах — необходимо использовать спроецированный слой.

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

  1. Сохранение слоя в прямоугольной проекции
  2. Создание и определение параметров поля для расчетов
  3. Применение одной из расчетных функций, полный список которых таков:
Функция Тип геометрии Описание
$x точка Возвращает координату X (долготу) точки.
$y точка Возвращает координату Y (широту) точки.
$length линия Возвращает длину линии.
xat линия Возвращает координату X (долготу) n-ой точки линии (индекс начинается с 0; отрицательные значения отсчитываются от последнего значения индекса).
yat линия Возвращает координату Y (долготу) n-ой точки линии (индекс начинается с 0; отрицательные значения отсчитываются от последнего значения индекса).
$perimeter полигон Возвращает периметр полигона.
$area полигон Возвращает площадь полигона.

[править] Пример 4. Расчет площади с помощью калькулятора полей

Рассчитаем площади объектов в полигональном слое admin геосемпла (слой с административными границами областей) с помощью калькулятора полей.

Как уже было сказано, калькулятор полей производит расчеты только в СК слоя. По этому, для расчетов длин и площадей, а также координат точек в метрах, нам необходимо иметь слои в прямоугольных СК. Слой admin находится в географической СК, по этому нам предварительно необходимо перепроецировать его в прямоугольную СК, для этого выполняем:

  1. СлойСохранить как
  2. В открывшемся диалоговом окне выбираем формат для нового слоя (Shape-файл ESRI)
  3. Кодировка (System — кодировка установленная в вашей системе по умолчанию, в Windows — это CP-1251, в Linux — UTF-8).
  4. Выберем СК для создаваемого файла, выберем Selected CRS, это даст нам возможность выбрать необходимую систему координат. Жмем Обзор. Зададим проекцию для нового слоя WGS 84, UTM zone 44N (данные геосемпла лежат в трех зонах UTM, с 43N по 45N, для уменьшения искажений расчетов мы возьмем центральную)
  5. В открывшемся окне выбора системы координат в графе «Filter» наберем
    UTM zone 44N

    или код EPSG проекции:

    32644

    . В результате останутся только те СК, которые содержат в названии это сочетание букв.

  6. В меню «Coordinate reference systems of the world» Выберем «WGS 84 zone 44N».
  7. Жмем «ОК».

Project layer.png

8. Добавляем вновь созданный shape-файл в проект.

9. Открываем атрибутивную таблицу.

10. Переводим слой в режим редактирования MActionToggleEditing.png, при этом становится активной кнопка запуска калькулятора полей.

11. Запускаем калькулятор полей, нажав на кнопку MActionCalculateField.png. Открывается диалоговое окно калькулятора полей, состоящее из меню параметров создания новых полей, списка функций и подсказок по ним, а также результирующей командной строки (Expression) куда будут внесены все требуемые команды для вычислений.

Далее возможно два варианта действий, в зависимости от того, имеется ли у вас в атрибутивной таблице требуемое поле.

  • Если поле отсутствует, необходимо его создать — поставить галочку «Создать новое поле» (Create New Field).
  • Если поле уже присутствует и необходимо только осуществить пересчет пространственных характеристик (например, после редактирования слоя, т.к. автоматически, при изменении пространственных объектов, их пространственные характеристики не пересчитываются), необходимо поставить галочку «Обновить существующее поле» и выбрать необходимое поле из выпадающего списка.

12. Создадим новое поле для записи результатов расчета площади.
В случае, если в атрибутивной таблице файла еще нет специальных колонок для отображения информации о пространственных характеристиках, ставим галочку «Create new field» (Создать новое поле).

13. Далее необходимо указать параметры для создаваемого слоя (тип, размер и точность). Тип поля можно задать любой, но следует учитывать, что в случае, если будет задано текстовое поле, то в дальнейшем, данное поле невозможно будет вставлять в формулы для расчетов.
В общем случае для расчетов пространственных характеристик объектов лучше использовать десятичное число (real). При этом нужно учитывать, что задавая его Размер мы указываем общее количество знаков до и после запятой, а указывая Точность — количество знаков после запятой.

Зададим параметры поля для расчета площади:

  • Зададим имя поля, например, «AREA»
  • Зададим тип поля: Десятичное число (Real)
  • Зададим размер поля: будем исходить из следующих соображений — площадь Земного шара — 510 072 000 000 000 м2, т.е. 15 значащих чисел необходимо для расчетов объектов площадь которых равна площади всего Земного шара. Добавляем значащее число на разделитель целой и дробной части и хотя бы одно значащее число на десятичный разряд (в случае использования типа «десятичное число» нельзя задать точность равную 0). Итого 17 значащих чисел должно хватить для расчетов на любых территориях.
  • Зададим точность: если нам достаточно точности в 1/10 метра, то ставим точность = 1, если нет, указываем количество знаков после запятой, не забывая прибавить их количество в графе «размер».

14. Далее, необходимо выбрать необходимую расчетную функцию из списка. Все функции для расчета пространственных характеристик объектов находятся в группе «Геометрия». Добавить функцию в командную строку можно либо прописав ее вручную, либо двойным щелчком мыши по необходимой функции из списка.

15. После всех манипуляций окно должно приобрести вид:

Column-definition.png

16. Жмем «ОК» и смотрим на атрибутивную таблицу. В новой колонке «AREA» отображаются предварительные результаты расчетов (не усеченные до 1-го знака после запятой. Нажимаем кнопку «Сохранить изменения» MActionFileSave.png. После этой операции данные записываются согласно настроенным нами параметрам поля: т.к. мы установили точность 1 знак после запятой, данные были округлены до 1-го знака после запятой. В случае, если результаты стали отрицательными, это означает, что недостаточно значащих знаков и нужно создать новое поле с большим количеством значащих знаков.

[править] Заключение

В заключение, сделаем важное замечание: правилом хорошего тона считается документирование, какое ПО (версия) и какой инструмент использовались для расчета пространственных характеристик объектов. Дело в том, что в разном ПО используются отличающиеся алгоритмы расчетов, параметры (точность назначения) СК и эллипсоидов, что приводит к тому, что для одних и тех же данных рассчитанные пространственные характеристики несколько отличаются. В научном мире приоритет отдается алгоритмам имеющим открытый исходный код, чтобы каждый мог воспроизвести расчеты и найти ошибки алгоритмов. В связи с этим QGIS как инструмент в руках ученого предстает в более выгодном свете.

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

[править] Ссылки

  1. Geosample: Открытый набор геоданных для различного ПО ГИС
  2. Получение основных пространственных характеристик объектов в Arcview GIS
  3. Получение основных пространственных характеристик объектов в ArcGIS
  4. О.А. Лебедева. Картографические проекции. Методическое пособие. Новосибирский учебно-методический центр по ГИС и ДЗ. Новосибирск, 2000 Скачать
  5. Часто задаваемые вопросы по координатам, проекциям, системам координат
  6. Сравнение разных способов вычисления длин и азимутов
  7. Описание проекций используемых GIS-Lab
  8. Ведение в ГИС на основе бесплатного ПО с открытым исходным кодом (проекциям посвящена 7-я глава): A Gentle GIS Introduction

[править] Примечания

  1. ↑ Установка QGIS/GRASS с помощью OSGEO4W.

How do I calculate areas of an area shapefile in square meters (m²) or in acres (ha)?

I didn’t find that functionality in the Vector Tools.

PolyGeo's user avatar

PolyGeo

64.6k28 gold badges105 silver badges327 bronze badges

asked Apr 12, 2012 at 19:05

desputin's user avatar

0

Make the layer editable, then use the field calculator (Layer > Open attribute table > Field Calculator/Ctrl+I or right mouse click shapefile > Open attribute table > Field Calculator/Ctrl+I).

There is an operator $area that will calculate the area of each row in the table. All units will be calculated in the units of the projection, so you probably want to project it to a projection that uses feet or meters before doing that, rather than lat/lon.

Note the differences between $area and area($geometry):

About $area from the QGIS Documentation

Returns the area of the current feature. The area calculated by this
function respects both the current project’s ellipsoid setting and
area unit settings. For example, if an ellipsoid has been set for the
project then the calculated area will be ellipsoidal, and if no
ellipsoid is set then the calculated area will be planimetric.

About area($geometry) from the QGIS Documentation:

Returns the area of a geometry polygon object. Calculations are always
planimetric in the Spatial Reference System (SRS) of this geometry,
and the units of the returned area will match the units for the SRS.
This differs from the calculations performed by the $area function,
which will perform ellipsoidal calculations based on the project’s
ellipsoid and area unit settings.

Taras's user avatar

Taras

28.8k4 gold badges51 silver badges121 bronze badges

answered Apr 12, 2012 at 19:11

Stev_k's user avatar

Stev_kStev_k

6,5962 gold badges33 silver badges45 bronze badges

5

This can also be done with Vector|Geometry Tools|Add/export geometry columns, which creates a new shapefile with area and perimeter (or length) columns added.

Edit: (using the tool above, you can also unselect «save as new shape-file» in V1.8, the shapefile is now only updated!)

Using the field calculator is probably a better idea, though, as it doesn’t require the creation of a new shapefile.

Community's user avatar

answered May 6, 2012 at 16:17

Simbamangu's user avatar

SimbamanguSimbamangu

14.8k5 gold badges57 silver badges92 bronze badges

0

If not getting very accurate area calculations does not bother you (or if you do not want to play with different options in the field calculator as mentioned by some of the answers and comments above), in the current version of QGIS (i.e., QGIS 3.12) there is an easy way to deal with this. Go to «Project >> Properties >> General» and change the units for distance and area measurements. Now $area in the field calculator automatically transform the CRS for area (and for other geometric calculations if that matters).

However, I personally recommend doing the method by @Alexandre as it will give you more accurate results. Though you have to do a little search that what will be the 3rd parameter of transform function, i.e., most suitable CRS for your area of interest and its units.

enter image description here

answered Mar 7, 2020 at 5:05

datakeen's user avatar

datakeendatakeen

4633 silver badges12 bronze badges

1

Try using the icon«Identify Features» tool (Ctrl+Shift+I) from the Attributes Toolbar.

result

There will be two attributes: "Area (Cartesian)" and "Area (Ellipsoidal - EPSG:7019)"

Before starting, make sure that the Hide Derived Attributes from Results option is unchecked.

enter image description here

Comrade Che's user avatar

answered Nov 12, 2021 at 11:45

Taras's user avatar

TarasTaras

28.8k4 gold badges51 silver badges121 bronze badges

1

I wrote a script specifically for this. If you don’t want to reproject your data, you can compute the area using ellipsoidal math.

Processing Toolbox -> Tools -> Get scripts from on-line scripts collection -> Ellipsoidal Area

You will find the script installed in
Processing Toolbox -> Utils -> Ellipsoidal area

The tool should be self explanatory and will allow you to calculate area in units of your choice regardless of projection.

answered Mar 8, 2016 at 17:48

spatialthoughts's user avatar

1

If the areas you are looking at are liable to change, such as looking at infrastructure layouts, catchment areas, study areas etc, I find it useful to simply label the areas, instead of adding them as attributes.

Label-> round($area/10000,2)||' ha'

This way you don’t need to remember to update the catchment areas in the attribute tables as often.

answered Mar 28, 2019 at 1:09

Gordon Huang's user avatar

1

Search in the Processing Toolbox for the Field Calculator.
Select your input layer, give the field a proper name (area for example). Select a datatype (i.e. float)
Scroll down to Expression and either click Geometry -> $area or type in $area into the left box. Click Run.
Now there is a new (temporary) Layer created. If you look at the Attribute Table you will find a column with the name you gave it ( i.e. area).

If you are interested in the whole area of every feature in the Layer, search for Basic statistics for fields. If you run this, you get statistics like mean, sum, std etc.

answered Feb 10, 2022 at 13:48

four-eyes's user avatar

four-eyesfour-eyes

3,2984 gold badges30 silver badges57 bronze badges

I would implement the solution described at
Geometry based automatic fill of fields in attribute table

The solution is essentially a trigger that will update the field automatically when ever a transaction occurs.

This way, the data will not only populate the field upon data creation, but also if geometry changes.

PolyGeo's user avatar

PolyGeo

64.6k28 gold badges105 silver badges327 bronze badges

answered May 10, 2021 at 3:30

nr_aus's user avatar

nr_ausnr_aus

3,2605 silver badges24 bronze badges

Архив с исходными данными

Контрольный лист

Введение

Цель задания — научиться рассчитывать соотношение различных явлений на регулярной сетке с использованием векторного оверлея.

Необходимая теоретическая подготовка: Оверлей пространственных объектов, геометрическое определение вероятности как отношения мер (площадей), соединение таблиц в реляционных базах данных, внешний и внутренний ключ соединения.

Необходимая практическая подготовка: Знание основных компонент интерфейса QGIS (менеджер источников данных, таблица слоёв, фрейм карты, менеджер компоновок). Работа с различными форматами источников пространственных данных . Настройка символики и подписей объектов. Владение базовыми ГИС-технологиями.

Исходные данные: Векторные контура типов земельного покрова, полученные на основе данных OpenStreetMap.

Результат: карта соотношения различных типов земельного покрова.

Контрольный лист

  • Добавить на карту слои типов объектов и регулярную сетку, оформить их
  • Произвести оверлей и слияние объектов в пределах ячеек
  • Рассчитать площадь объектов
  • Присоединить поля площади к таблице регулярной сетки и рассчитать площадь оставшихся объектов
  • Визуализировать результат

Аннотация

Задание посвящено знакомству с пространственным анализом на основе векторных данных. Векторная модель представляет объекты в виде отдельных геометрических фигур с набором атрибутов. Она является объектно-ориентированной и удобна для анализа формы, размеров объектов, их взаимной конфигурации в пространстве. Одним из широко используемых методов анализа на основе векторных данных является оверлей.

При оверлее происходит наложение двух или более слоев, в результате чего образуется их геометрическая (пространственная) композиция. Полученные участки наследуют атрибуты от каждого слоя. Эта операция базируется на стандартных отношениях множеств, таких как пересечение, объединение и симметрическая разность.

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

Визуальный анализ векторных слоев

В начало упражнения ⇡

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

  1. Распакуйте архив с материалами упражнения в свою рабочую директорию. Создайте проект QGIS в папке с распакованными материалами.

  2. Добавьте на карту слои Industrial, Hydro, Green, Buildings из базы данных LandCover.gpkg. Присвойте этим слоям разные цвета для лучшего восприятия данных.

  3. Создайте регулярную сетку квадратов с помощью инструмента Вектор – Анализ – Создать сетку…. В открывшемся окне параметров инструмента выберите прямоугольный тип сетки, укажите вертикальный и горизонтальный шаг сетки в 1000 м, а в качестве экстента (охвата) слоя укажите существующий слой проекта Buildings. Сохраните сетку в отдельный файл Geopackage в вашей рабочей директории.

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

    Снимок экрана 1: Визуализация исходных данных

Расчёт площадей и оверлей

В начало упражнения ⇡

  1. Для расчёта доли площади каждого типа объекта в пределах ячейки необходимо знать площадь самой ячейки. Для этого выберите слой в таблице слоёв, а затем нажмите кнопку Калькулятор полей . Эту кнопку можно найти на панели атрибутов либо непосредственно в таблице атрибутов.

  2. В интерфейсе калькулятора полей укажите, что вы создаёте новое поле, введите имя поля CellArea и выберите подходящий тип поля.

  3. Введите в форму выражения функцию $area и выполните расчёт.

    Примечание: area() — системная функция QGIS, возвращающая площадь объекта. Значок $ означает, что функция будет применена к текущему объекту. Площадь вычисляется в единицах измерения площади, предусмотренных для системы координат источника данных. Для проецированных систем координат это, как правило, метры, реже – футы.

Вопрос 1: Почему площади разных ячеек различаются? Почему рассчитанная площадь не равна 1 000 000?

  1. При использовании Калькулятора полей автоматически включается режим редактирования. После расчёта площади сохраните изменения и выключите режим редактирования.

  2. Для того чтобы рассчитать площади каждого типа объекта в пределах ячеек регулярной сетки, необходимо выполнить операцию пересечения (оверлея) слоев. Для этого воспользуйтесь инструментом Вектор — Геообработка — Пересечение. В качестве входного набора данных (Input layer) укажите регулярную сетку, а в качестве пересекающего набора данных (Overlay layer) — слой с растительностью. Результат сохраните во временный слой.

    Временный слой в QGIS хранится в выделенной директории среди системных файлов. Если не сохранять временные файлы, они будут удалены после закрытия окна QGIS. Временные слои обозначаются значком справа от названия в таблице слоёв.

  3. Результирующий слой будет называться Пересечение или Intersect. Переименуйте его так, чтобы было понятно, в результате пересечения каких именно слоев он получился.

Вопрос 2: Чем отличается (визуально) полученный слой от исходного слоя растительности?

Вопрос 3: Чем отличается (по структуре таблицы атрибутов) полученный слой от исходного слоя растительности?

  1. Повторите аналогичную операцию для оставшихся трёх слоёв.

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

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

  1. Запустите инструмент Вектор – Геообработка – Объединение по признаку…. В качестве параметров инструмента необходимо указать исходный слой (возьмите пересечение сетки и растительности), а также столбец (или столбцы) таблицы атрибутов, по которому будет осуществляться слияние («поле классификации»). Результат сохраните в тот же файл GeoPackage, в который записана регулярная сетка; задайте имя таблицы green_intersect_dissolve

Результирующий временный слой будет называться Объединенный слой или Dissolved – переименуйте его так, чтобы было понятно, о каком типе объектов идёт речь.

  1. Повторите аналогичную операцию для оставшихся трёх слоёв.

    Подсказка: можно не закрывать интерфейс инструмента объединения по признаку, а просто менять необходимые параметры и нажимать «Выполнить»

    Примечание: из-за ошибок в коде QGIS в некоторых случаях объединение по признаку может срабатывать некорректно: в целевой набор не записываются объекты, и таблица атрибутов не содержит записей. Если вы столкнётесь с такой проблемой, сохраните объединенный слой в новый файл GeoPackage или во временный слой.

  2. Рассчитайте площади всех объектов в каждом объединённом слое с помощью калькулятора полей. Используйте осмысленные имена полей, различные для разных наборов данных (например, buildings_area).

Соединение таблиц по ключевому полю

В начало упражнения ⇡

На данном этапе у вас должны быть 4 слоя с известными площадями объектов в ячейках и собственно слой ячеек, для которых рассчитана площадь. Для дальнейшего анализа нам необходимо соединить атрибутивные таблицы всех этих слоёв.

Соединение таблиц (table join) — операция, в результате которой к одной таблице временно добавляются столбцы из другой таблицы. Чтобы установить соответствие между строками исходной и присоединяемой таблицы, необходимо иметь в каждой таблице поле с общими для них значениями. Например, это может быть числовой код объекта.

  1. Откройте свойства слоя регулярной сетки. Перейдите на вкладку Связи (Joins). Чтобы добавить новое соединение, нужно нажать кнопку «+» внизу. Откроется окно, в котором нужно выбрать слой, атрибутивную таблицу которого мы хотим присоединить, а также ключевые поля, хранящие общие значения – в нашем случае это поля id. Установите галочку напротив опции Присоединенные поля (Joined fields), чтобы выбрать поля, которые нужно присоединить. Нам нужна только площадь объектов. Кроме того, можно включить Пользовательский префикс имени поля и удалить все символы из формы.

  2. Проделайте аналогичную операцию для остальных трёх слоёв.

Расчёт площадей, не покрытых объектами

В начало упражнения ⇡

Четыре типа объектов покрывают далеко не всю территорию, поскольку есть и иные объекты, которые в нашем случае не берутся в расчёт. Для корректного анализа и визуализации необходимо рассчитать оставшуюся площадь для каждой ячейки. Это можно сделать, отняв из площади ячейки площади всех объектов каждого типа. Проще всего для такой задачи воспользоваться калькулятором поля. Однако здесь возникает проблема: в атрибутивной таблице встречаются пустые значения (NULL) в полях площадей, которые обозначают отсутствие данных. Такое значение получается в случае, если в ячейке регулярной сетки отсутствует соответствующий тип объектов. Со значением NULL мы не сможем корректно рассчитать оставшуюся площадь, поэтому необходимо заменить его на (0). Для этого воспользуемся запросами к атрибутивной таблице и калькулятором полей.

  1. Сохраните слой регулярной сетки с присоединенными полями как новый набор объектов (GeoPackage), щёлкнув правой кнопкой мыши по нему и выбрав соответствующий пункт меню. Это нужно, чтобы вы могли редактировать присоединённые столбцы и при этом не изменяли данные в исходных слоях.

  2. Запустите калькулятор полей для вновь созданного слоя.

  3. В открывшемся окне укажите, что нужно не создавать новое поле, а обновить существующее. Выберите одно из полей, содержащих сведения о площади покрытий (зданиями, растительностью и др.)

  4. В калькуляторе полей разверните блок Условные и найдите функцию if. Изучите справку к этой функции.

  5. Составьте выражение, которое будет выдавать значение 0, если исходное значение поля — NULL, и исходное значение во всех остальных случаях. Важно: вы не можете использовать оператор = вместе со значением NULL, вместо = используйте оператор IS. Чтобы использовать названия полей в выражении, найдите в средней панели группу «Поля и значения». Добавляйте поля в выражение, кликая по их названиям дважды левой кнопкой мыши.

Если выражение составлено корректно, значения NULL будут заменены на 0

  1. Проделайте аналогичную последовательность действий с выборкой и калькулятором полей для оставшихся трёх типов объектов.

  2. Теперь используйте калькулятор полей, чтобы рассчитать площадь ячейки, не покрытую ни одним из типов объектов. Составьте выражение самостоятельно аналогично представленному на скриншоте ниже.

Настройка символики

В начало упражнения ⇡

  1. Визуализируйте доли покрытий с помощью картодиаграмм.

  2. Оформите фрагмент вашего набора данных в виде картографического изображения. Вставьте полученную карту в отчётный файл.

    Снимок экрана 2: Визуализация результата

  3. Сохраните документ карты.

  4. Ответьте на контрольные вопросы в отчётном файле.

Hello everyone, in this article, I am going to show you how to calculate area of a polygon using QGIS. In some cases, you may want to know how many hectares of an area in a layer. If you have one polygon, this would not be a problem. But what if you have many polygons/areas in the layer? To calculate each area one by one is almost impossible. So, I hope this tutorial will help you solve this problem.

So let’s assume we have a layer with many polygons in it. And then, we are going to calculate the area for each polygons using automated way.

As you can see above, I have a layer with so many polygon in it. If we open the attribute layer, it showing like this

OK, lets do it.

First, we need to make sure the measurement unit for our QGIS project. Go to File >> Properties to change the measurement unit. For example, you can change the ellipsoid for the distance and area calculation. In this example, I use none/planimetric. This means the area calculation will use the planimetric method. And then, change the units for the area measurement. In this case, I use Hectares.

Next, open the “Field Calculator”. Here I want to create a new virtual field to store the area calculation for each polygon. I choose Decimal number (double) on the output field type.

To calculate the area, use the $area expression. You can find this expression under Geometry. See the picture above. Click OK and it will automatically calculate the area for each polygon. Once done, open the attribute table to see the result.

Now I have a new column called Area_calculation which contains total area for each polygon.

Get it on Apple Store

Get it on Google Play

Public user contributions licensed under
cc-wiki license with attribution required

Skolkovo resident

Понравилась статья? Поделить с друзьями:
  • Как исправить плохое качество фотографии на телефоне
  • Как найти девушку в волгодонске
  • Как найти проекцию начальной скорости движения тела
  • Как найти в телефоне siri
  • Как найти человека если знаешь его почту