
- •13. Пространственный анализ векторных моделей
- •1.Алгоритмы вычислительной геометрии
- •1.1. Пересечение линий
- •1.2. Определение площади полигона
- •1.3. Определение принадлежности точки к полигону
- •1.4. Определение центральной, репрезентативной точки полигона
- •2. Базовые группы операций пространственного анализа векторных моделей
- •3. Топологическое наложение векторных моделей
- •3.1. Концепция топологическое наложение карт
- •3.2. Булева алгебра в топологическом наложении
- •3.3. Классификация векторных оверлейных операций
- •3.4. Алгоритмы векторных оверлейных операций (Обработка "точка в полигоне")
- •3.5. Типы оверлейных операций (Объединение, Пересечение, Включение, Исключение)
- •4. Генерирование буферов
- •4.1.Определение и назначение буферов
- •4.2. Буферизация точечных пространственных объектов
- •4.3. Буферизация линейных пространственных объектов
- •4.4. Буферизация полигональных пространственных объектов
- •5. Этапы пространственного анализа
- •14. Пространственный анализ растровых моделей
- •1. Типы цифровых данных
- •2. Пространственная перевыборка: Метод ближайшего соседа, Метод билинейной интерполяции, Метод кубической интерполяции
- •3. Мозаичный монтаж
- •4. Реклассификация
- •5. Операции окрестности. Статистический анализ окрестности
13. Пространственный анализ векторных моделей
1.Алгоритмы вычислительной геометрии
1.1. Пересечение линий
Операция нахождения точки пересечения линий является одной из базовых в ГИС–анализе, так как она используется в ряде операций геопроцессинга и в оверлейных операциях.
Исходным является уравнение прямой, известное из аналитической геометрии:
y = kx + b ( 5.2.1) где:
b – отрезок, отсекаемый прямой на оси OY;
k – угловой коэффициент прямой k = tgb;
β – угол между положительным направлением оси OХ и прямой.
Рис. 5.2.1 – Точка пересечения: а) внутри отрезков прямых; б) снаружи
отрезков прямых.
Две линии задаются уравнениями
Совместное решение этих двух уравнений позволяет найти координаты точки пересечения этих двух линий:
В оверлейных операциях при определении принадлежности точки полигону учитывается специальный случай, когда одна линия параллельна выбранной оси, например, оси ОХ. В этом случае k = 0, а координаты точки пересечения таких двух линий будут равны:
Для определения пересечения двух полилиний с n1 и n2 сегментами разработано несколько способов. Самым простым способом нахождения их точек пересечения
является последовательная проверка пересечения каждого сегмента первой линии с каждым сегментом второй линии. Сложность э того алгоритма пропорциональна произведению n1 * n2. Она может быть уменьшена, если предварительно проверять на пересечение экстенты (Extent – минимальный ограничивающий прямоугольник) сегментов и полилиний, представленные на рис.5.2.2.
Рис. 5.2.2 - Экстенты сегментов и полилинии
Второй метод, использованный в ГИС ArcInfo, основан на разбиении полилинии на секции, в которых линия монотонно возрастает или убывает по x и по y. Разбиение происходит в точках локального минимума или максимума по x или по y. Горизонтальная или вертикальная линия пересекает такую секцию только в одной точке.
1.2. Определение площади полигона
Для определения площади полигона, заданного последовательностью вершин, чаще всего применяется алгоритм Симпсона (Simpson Thomas), основанный на разбиении многоугольника на трапеции, ограниченные линейными сегментами
границы полигона, перпендикулярами, опущенными из вершин сегмента на ось x, и осью x (Рис. ). Для сегмента, соединяющего вершины (xi ,yi) и (xi+1,y i+1), площадь такой трапеции равна
Площадь полигона равна сумме площадей трапеций для всех сегментов полигона.
Для сегментов, у которых xi > xi+1, площадь получается отрицательной. Следует заметить, что полигон – замкнутая фигура, поэтому нужно учитывать сегмент, соединяющий последнюю вершину с первой.
Рис. 5.2.4 - Вычисление площади полигона путем разбиения на
трапеции.
Формула вычисления площади полигона может быть преобразована к следующему виду:
Формула вычисления площади полигона представлена для правой системы координат и нумерации вершин полигона по ходу часовой стрелки. Для полигонов, оцифрованных против часовой стрелки, площадь получается отрицательной. Этим способом можно вычислить площади не только для выпуклых многоугольников, но и для вогнутых, а также для полигонов, имеющих дыры. Алгоритм непригоден для вычисления площадей полигонов, имеющих
самопересечения границ.