3.7. Работа с векторными данными

Векторные операции можно запускать двумя способами:

  • Старый способ: через меню Вектор.
  • Новый способ: через модуль Processing (Инструменты анализа) –> Геоалгоритмы QGIS.

Этим способом пользоваться удобнее. Некоторые инструменты доступны только в нём.

../../_images/vectortools_processing.png

Рис. 3.104. Инструменты работы с векторными данными в панели «Инструменты анализа».

Операции, запускаемые через меню Вектор, как правило, генерируют новый Shape-файл на диске. А если их запускать через «Инструменты анализа», то они будут генерировать временные слои. Это удобнее.

Примечание

В «Инструментах анализа» так же доступно огромное количество операций gdal, ogr, GRASS, SAGA, и из других источников, но они могут не запускаться. Операции из раздела «QGIS» работают надёжнее.

3.7.1. Инструменты анализа векторных данных

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

Анализ близости

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

../../_images/vectortools_nearest.png

Рис. 3.105. Результаты инструмента «Анализ близости».

Пример:

Наблюдаемое среднее расстояние:28208.9420739. Ожидаемое среднее расстояние:18389.4264553. Индекс ближайших соседей:1.53397617606. N:9. Z-показатель:3.06460156144.

Матрица расстояний

Измеряет расстояние между точками двух точечных слоёв и выдает результат в виде:

  1. Квадратной матрицы расстояний.
  2. Линейной матрицы расстояний.
  3. Суммы расстояний.

Можно ограничить расчет только для k ближайших точек. Создаёт таблицу в формате CSV.

Сумма расстояний

Сумма расстояний в полигонах.

Рассчитывает сумму расстояний для линий линейного слоя в пределах каждого полигона другого (векторного полигонального) слоя. Создаёт новый полигональный слой с добавленным полем.

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

Количество точек в полигонах

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

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

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

Список уникальных значений

Задаётся векторный слой и поле в нём.

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

Базовая статистика

Задаётся векторный слой и поле в нём. Можно указать режим «Только выделенные объекты».

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

Средние координаты

Задаётся векторный слой любого типа. Поле взвешивания (числовое), необязательно. Поле признака классификации (любого типа), необязательно.

Рассчитывает среднеарифметические или средневзвешенные координаты центра для целого векторного слоя или для набора объектов, выбранного на основе уникальные значения из указанного поля.

Создаёт новый точечный слой.

Пересечения линий

Задаётся исходный векторный слой (линейный). Исходный признак классификации. Слой пересечений (линейный). Признак классификации пересечений.

Рассчитывает местонахождения пересечений линий, создавая точечный шейп-файл с точками пересечений. Полезен для определения мест пересечений дорог или водотоков. Игнорирует пересечения линий с длиной > 0.

Создаёт новый точечный слой.

3.7.2. Выборка

Эти инструменты выделяют объекты в заданном слое по разным алгоритмам или создают новый Shapefile с сгенерированными объектами.

Случайная выборка

Задаётся исходный векторный слой (любого типа).

Случайно выбирает заданное число объектов слоя или заданный процент объектов слоя.

Случайная выборка в подмножествах

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

Случайные точки

Задаётся исходный векторный слой (полигональный).

Cоздает псевдослучайные точки в пределах границ указанного слоя.

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

Создаёт новый точечный слой.

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

Регулярные точки

Создаёт регулярную сетку точек в пределах указаной области и экспортирует их в точечный шейп-файл. Создаёт новый точечный слой. Слой генерируется в системе координат карты, будьте внимательны с преобразованием координат на лету. Если вам нужно генерировать объекты с шагом заданных в метрах, используйте соответствующие системы координат. См. так же http://docs.nextgis.ru/docs_howto/source/grid_vertex_extract.html

Векторная сетка

Создаёт регулярную сетку из линий или полигонов в пределах указанной области. Создаёт новый слой. Слой генерируется в системе координат карты, будьте внимательны с преобразованием координат на лету. Если вам нужно генерировать объекты с шагом заданных в метрах, используйте соответствующие системы координат. См. так же http://docs.nextgis.ru/docs_howto/source/grid_vertex_extract.html

Пространственная выборка

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

Выделение по районам

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

Полигон из границ слоя

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

3.7.3. Геообработка

Выпуклые оболочки

Создает минимально возможные выпуклые оболочки или выпуклые оболочки на основе указанного поля. Создаёт новый слой.

../../_images/vectortools_convex_hull_layer1.png

Рис. 3.106. Исходный слой.

../../_images/vectortools_convex_hull.png

Рис. 3.107. Выпуклая оболочка, сгенерированная для полигонального слоя.

Буферные зоны

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

Если создать очень маленький буфер для полигонального слоя, то можно таким образом убрать в нём ошибки геометрии.

../../_images/vectortools_buffers_source1.png

Рис. 3.108. Исходный точечный слой, для которого строятся буферные зоны.

../../_images/vectortools_buffers_result1.png

Рис. 3.109. Буферные зоны.

../../_images/vectortools_buffers_result2.png

Рис. 3.110. Буферные зоны - объединение по признаку - объединение по признаку.

Пересечение

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

../../_images/vectortools_intersect.png

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

Инструмент «Пересечение» в результирующем слое создаёт атрибуты из обоих исходных слоёв.

Объединение

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

../../_images/vectortools_union.png

Рис. 3.112. Результат объединения Рыбинского водохранилища и Ярославской области - территория и области, и всего водохранилища.

Отсечение

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

Обрезка

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

../../_images/vectortools_clip.png

Рис. 3.113. Результат обрезки.

Инструмент Clip в результирующем слое создаёт атрибуты только из второго исходного слоя.

Разность

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

../../_images/vectortools_difference.png

Рис. 3.114. Результат разности.

Симметричная разность

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

../../_images/vectortools_symmetrical_difference.png

Рис. 3.115. Результат симметричной разности.

Объединение по признаку

Объединяет объекты на основе значения указанного поля. Все объекты с одинаковым значением поля будут объединены в один объект. Создаёт новый слой.

Удалить осколочные полигоны

Объединяет выделенные объекты с соседним полигоном, площадь или длина общей границы которого наибольшая. Создаёт новый слой.

3.7.4. Обработка геометрии

Проверка геометрии

Проверяет полигоны на наличие пересечений, «островов» и неправильного порядка нумерации узлов.

Экспортировать / добавить поле геометрии

Добавляет к слою поле(я) с информацией о геометрии: (XCOORD, YCOORD) для точечного слоя, (LENGTH) для линейного и (AREA, PERIMETER) для полигонального. Длины и площади будут рассчитаны в единицах координат слоя.

Центроиды полигонов

Вычисляет истинные центроиды для каждого полигона исходного полигонального слоя.

../../_images/vectortools_centroids.png

Рис. 3.116. Результат генерации центроидов для 4 полигонов.

Триангуляция Делоне

Рассчитывает и строит (как полигональный слой) триангуляцию Делоне для исходного точечного слоя. Создаёт новый слой.

Полигоны Вороного

Генерирует полигоны Вороного для исходного точечного слоя. Создаёт новый слой.

Упростить геометрию

Упрощает линии или полигоны при помощи модифицированного алгоритма Дугласа – Пойкера. Создаёт новый слой.

Добавить вершины

Добавляет дополнительные вершины к объектам линейного или полиногнального слоя.

Разбить составные объекты

Преобразует составные объекты (мульти-полигоны или мульти-полилинии) в несколько простых объектов (полигонов или полилиний).

Объединить объекты в составные

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

Преобразовать полигоны в линии

Преобразует полигоны в линии, составные полигоны преобразует в несколько простых полилиний.

Преобразовать линии в полигоны

Преобразует линии в полигоны, составные линии преобразует в несколько простых полигонов.

Извлечение узлов

Извлекает узлы из линий или полигонов, создавая точечный слой.

3.7.5. Общие инструменты для работы с векторами

Задать текущую проекцию

Задает проекцию для шейп-файла, если ранее она не была задана.

Объединение атрибутов по районам

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

Разбить векторный слой

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

Объединение shape-файлов

Объединяет несколько шейп-файлов, находящихся в одной директории, в новый шейп-файл, основываясь на типе слоя (точечный, линейный, полигональный).

Создать пространственный индекс

Создать пространственный индекс для форматов, поддерживаемых OGR. Он сохраняется посредством OGR.

Ориентированный охватывающий прямоугольник

Oriented minimum bounding box

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

  • площадь,
  • угол,
  • периметр,
  • длина,
  • ширина.
../../_images/vectortools_Oriented_MBBox.png

Рис. 3.117. Ориентированные охватывающие прямоугольники, построенные для слоя территорий городов.

Плагин processing

Это более новый способ запуска операций геообработки. Он сейчас не поддерживается компанией NextGIS, но этот плагин вы можете установить и запустить в программе NextGIS QGIS.

Отличительные особенности processing:

  • Результат работы модулей - временные слои. Это удобно тем, что у вас не появляются кучи файлов. Так же можно сохранять результат в файлы.
  • Можно обрабатывать данные, содержащиеся во временных слоях.
  • Текстовый поиск названий модулей.
  • В одном месте видны так же и модули из пакетов Saga, GDAL, и других дополнительных плагинов.
  • Модели - сохранение последовательности операций.

При идентификации, если включён режим «открывать форму», то при нажатии на несколько объектов по очереди выделение может не сниматься. Это не является ошибкой: где-то на дисплее остаются открытые окна идентификации, вот они и остаются красные.