Операции с объектами векторных ГИС
Ключевые тезисы
- Векторная модель данных (объектно-реляционная, топологическая) позволяет выполнять широкий спектр операций для анализа и подготовки пространственных данных.
- Основные группы операций: геообработка (подготовка данных), поиск информации и пространственный анализ.
- Многие операции основаны на геометрических вычислениях (пересечение отрезков, векторное произведение) и теории множеств.
Вспомним векторную модель данных
- Типы объектов: точечные (0D), линейные (1D), полигональные (2D).
- Хранение: точки хранятся как узлы с координатами; линии (дуги) задаются начальным и конечным узлами; полигоны собираются из дуг.
- Топология: для дуг может храниться информация о том, какой полигон находится слева и справа. Полигоны могут иметь внутренние "дырки".
Операции геообработки
Сборка полигона из линейных границ
- Позволяет создавать топологически корректные карты, рисуя только общие границы между смежными полигонами.
- Алгоритм: линейные границы разрываются в узлах ветвления. Полигон определяется как конкатенация (соединение) списков дуг, образующих его контур.
- Важно: направление обхода дуг должно быть согласованным (например, по часовой стрелке для внешнего контура). Конечные точки близлежащих дуг "схлопываются" с заданным допуском (эпсилон).
Классификация и агрегация объектов по атрибутам
- Визуализация (раскраска) объектов на карте часто основана на значениях в атрибутивной таблице.
- Агрегация: можно объединить геометрии смежных полигонов, имеющих одинаковое значение атрибута. Внутренняя общая граница при этом удаляется.
Объединение и разрезание объектов
- Объединение: позволяет "сшить" фрагменты карт или объектов, удалив внутренние границы.
- Разрезание: обратная операция. Позволяет вырезать часть полигона или разделить его вдоль линии.
Наложение слоёв (Overlay)
- Пример: наложение слоя дорог (линейный) на слой видов земель (полигональный).
- Результат: исходные линейные объекты разрезаются в местах пересечения с границами полигонов. Для каждого получившегося сегмента можно определить атрибуты обоих исходных слоёв (например, "асфальт" + "лес") и посчитать статистику (длину, проценты).
- Аналогично работает комбинирование слоя точек и полигонов (точке присваиваются атрибуты полигона, в который она попадает).
Алгоритмическая основа Overlay
- Сводится к поиску пересечений отрезков, из которых состоят полилинии.
- Проверка пересечения двух отрезков: вычисляется, лежат ли концы одного отрезка по разные стороны от прямой, содержащей другой отрезок (и наоборот). Используется знак векторного произведения.
- Вычисление точки пересечения: решается система уравнений прямых, содержащих отрезки.
- Оптимизация: для ускорения используются пространственные индексы (например, разбиение на квадраты), чтобы не проверять заведомо непересекающиеся пары объектов.
Построение буферных зон
- Буфер — область, все точки которой удалены от исходного геометрического объекта не более чем на заданное расстояние (радиус).
- Для точки: окружность.
- Для линии: полоса заданной ширины вдоль линии, с закруглениями на концах.
- Для полигона: расширение (или сужение) границы.
- Важно: для корректного построения в метрических единицах данные должны быть в проекции, а не в географических координатах (широта/долгота).
- Применение: анализ транспортной доступности (построение концентрических буферов разной ширины), создание охранных зон (например, водоохранных полос переменной ширины).
Анализ близости и упрощение геометрии
Расстояние от точки до полилинии
- Вычисляется как минимальное из расстояний от точки до всех отрезков, составляющих ломаную.
- Расстояние до отрезка — это либо длина перпендикуляра (если проекция точки попадает на отрезок), либо расстояние до ближайшего конца отрезка.
Центроид полигона
- Точка, представляющая геометрический центр полигона. Вычисляется по формулам с использованием координат вершин и площади.
- Позволяет заменить сложный полигон точкой для упрощения расчётов расстояний между объектами.
Выпуклая оболочка
- Минимальный выпуклый многоугольник, содержащий все точки заданного множества.
- Алгоритм построения (заворачивания подарка):
- Точки сортируются лексикографически (по X, затем по Y).
- Строится верхняя граница: точки последовательно добавляются, при образовании "правого" поворота предыдущие точки отбрасываются.
- Аналогично строится нижняя граница, обходя точки в обратном порядке.
- Использование: упрощение формы объектов для более быстрых вычислений.
Полигоны Вороного
- Разбиение плоскости на зоны, где каждая точка области находится ближе к "своей" порождающей точке (например, магазину), чем к любой другой.
- Построение: для каждой пары точек строится серединный перпендикуляр к отрезку, их соединяющему. Пересечение этих линий формирует многоугольники.
- Применение: моделирование зон обслуживания, анализ ближайшего соседа.
Поиск информации на карте
- Интерактивный: выделение объектов мышкой, прямоугольником, полигоном или окружностью.
- По атрибутам: выделение с помощью выражений на основе значений в таблице (с возможностью использования функций).
- Пространственные запросы: поиск объектов, попадающих в заданную область. Для эффективности используются пространственные индексы.
Растеризация и выборка
- Растеризация по регулярной сетке: представление векторного объекта в виде растровой матрицы (пикселей). Упрощает анализ с использованием матричной алгебры.
- Выборка по случайной сетке: генерация случайных точек внутри полигонов для статистического анализа (проверки гипотез, построения моделей).
Операции теории множеств с полигонами
Полигоны можно рассматривать как множества точек. Для них определены стандартные операции:
- Объединение (Union): точки, принадлежащие хотя бы одному полигону.
- Пересечение (Intersection): точки, принадлежащие обоим полигонам.
- Разность (Difference): точки первого полигона, не принадлежащие второму.
- Симметрическая разность (Symmetrical Difference): точки, принадлежащие только одному из полигонов.
- Применение: устранение расщеплённых полигонов (sliver polygons) путём построения буфера и операции разности, удобное редактирование карт.
Зональная статистика
- Суть: расчёт статистических показателей (среднее, медиана, сумма, стандартное отклонение и т.д.) для значений одного слоя (часто растрового) в пределах зон, заданных другим слоем (полигональным).
- Пример: расчёт средней температуры (растр) по административным районам (полигоны).
- С точечными данными: статистика вычисляется по точкам, попавшим внутрь каждого полигона.
Выводы
- Операции векторной геообработки являются фундаментом для анализа пространственных данных.
- Они позволяют редактировать, подготавливать, агрегировать и анализировать данные, решая практические задачи от картографирования до сложного пространственного моделирования.
- Многие операции имеют чёткую математическую и алгоритмическую основу (геометрия, теория графов, теория множеств).