Основы топологии
Эта тема относится только к ArcGIS for Desktop Standard и ArcGIS for Desktop Advanced.
Топология - это набор правил, которые вместе с инструментами и технологиями редактирования позволяют более точно моделировать геометрические отношения в базе геоданных. В ArcGIS топология обеспечивается через набор правил, которые определяют, как пространственные объекты взаморасполагаются в географическом пространстве, а также через набор инструментов редактирования, одинаковым образом применяющиеся к объектам с общей геометрией. Топология хранится в базе геоданных как одно или несколько отношений, определяющих, как пространственные объекты одного или нескольких классов пространственных объектов используют общую геометрию. Участвующие в топологии пространственные объекты относятся к простым классам пространственных объектов — топология не изменяет определение класса пространственных объектов, а сама служит описанием пространственных отношений этих объектов.
Зачем нужна топология?
В течение долгого времени, топология была ключевым элементом ГИС, служащим для управления данными и контролем над их целостностью. В целом, модель топологических данных управляет пространственными отношениями путём представления пространственных объектов (точечных, линейных и площадных объектов) в виде схем топологических примитивов — узлов, граней и рёбер. Эти примитивы, взаимоотношения между ними, а также с объектами, чьи границы они представляют, определяются отображением геометрии пространственных объектов в графе топологических элементов.
Топология используется в основном для контроля качества данных с пространственными отношениями, а также помогает при их компиляции. Во многих случаях, топология также применяется для анализа пространственных взаимоотношений - например, чтобы убрать границы между соседними полигонами, имеющими одинаковые атрибутивные значения, или для прокладывания пути по сети элементов топологического графа.
Топология также используется для моделирования интеграции геометрии между несколькими различными классами пространственных объектов. Иногда это называют вертикальной интеграцией классов пространственных объектов.
Каким образом объекты в топологии используют общую геометрию
Пространственные объекты могут совместно использовать геометрию внутри топологии. Ниже приведены примеры смежных пространственных объектов:
- Площадные объекты могут использовать общие границы (полигональная топология).
- Линейные объекты могут использовать общие конечные точки (топология ребер и узлов).
Кроме того, общая геометрия может использоваться между классами пространственных объектов с помощью топологии базы геоданных. Например:
- Линейные пространственные объекты могут иметь общие сегменты.
- Площадные объекты могут совмещаться с другими площадными объектами. Например, земельные участки могут складываться в блоки.
- Линейные пространственные объекты могут иметь вершины, совпадающие с точечными объектами (узловая топология).
- Точечные объекты могут совмещаться с линейными (точечные события).
Земельные участки часто управляются с помощью простых классов пространственных объектов и топологии базы геоданных, так как там набор классов пространственных объектов, необходимых для моделирования земельных участков, границ, угловых точек и контрольных точек следуют правилам совпадения. Еще одним способом управления земельными участками является использование набора данных участков, который автоматически обеспечивает наличие этих слоев. Набор данных участков управляет своей внутренней топологией, так что нет необходимости поддерживать топологию базы геоданных или выполнять какое-либо топологическое редактирование для используемый участками слоёв.
Ключевое отличие между моделируемыми в качестве простых объектов участками и участками в наборе данных участков заключается в том, что в наборе границы участков («линии») не являются общими — у каждого земельного участка там есть полный набор линий границ, и эти линии накладываются друг на друга и совпадают.
При этом наборы данных участков могут участвовать в топологии базы геоданных; там накладывающиеся линии границ обладают разной геометрией, линии разбиваются и граф топологии строится как обычно.
Два вида: объекты и элементы топологии
Полигональный слой может быть описан и использован:
- Как набора географических пространственных объектов (точек, линий и полигонов)
- Как графа топологических элементов (узлов, ребер, граней и их взаимоотношений).
Это означает, что существуют два варианта работы с пространственными объектами:в одном случае вы работаете с пространственными объектами, имеющие заданные координаты, а в другом - с объектами, представленными в виде упорядоченного графа топологических элементов.
Эволюция топологии базы геоданных по сравнению с покрытиями ArcInfo
Прочтение этого раздела не является необходимым для работы с топологией базы геоданных. Однако прочитайте этот раздел, если вас интересует история появления и развития топологии в базах геоданных.
Происхождение терминов «дуга-узел» и «геореляционный»
Покрытия ArcInfo Workstation имеют долгую историю и играют заметную роль в обеспечении пространственной целостности данных, достигаемой с помощью топологии.
Ниже показаны элементы модели данных покрытия ArcInfo.
В покрытии границы пространственных объектов и точки хранились в нескольких основных файлах, которые обрабатывались с помощью ArcInfo Workstation. Файл "ARC" содержал линейную или полигональную геометрию границ в виде топологических ребер, которые назывались "дугами". Файл "LAB" содержал точечные объекты, которые использовались как отправные точки для построения полигонов или как отдельные точечные объекты, например скважины. Другие файлы использовались для определения и сохранения топологических отношений между ребрами полигонов.
Например, файл "PAL" ("Polygon-arc list") содержал порядок и направление дуг каждого полигона. Программная логика ArcInfo Workstation использовалась для сборки координат каждого полигона, что позволяло отображать и анализировать их, а также выполнять к ним запросы. Упорядоченный список, содержащийся в файле PAL, использовался для поиска и сборки координат ребер, которые хранились в файле ARC. Сборка полигонов происходила по мере необходимости во время работы.
Модель покрытий имела несколько преимуществ:
- Она использовала простую структуру для хранения топологии.
- Она позволяла один раз оцифровывать и сохранять дуги, которые затем использовались несколькими пространственными объектами.
- Она могла отображать полигоны очень большого размера (с тысячами координатных точек), т.к. они были представлены в виде набора ребер (т.е. "дуг")
- Структура хранения топологии покрытия была интуитивно понятна. Топологическая структура файлов была простой для освоения пользователями ArcInfo Workstation.
Интересный исторический факт: «Arc» вместе с менеджером обработки таблиц, который назывался «Info», лег в основу названия продукта ArcInfo Workstation, а также всех последующих продуктов Arc в семействе Esri — ArcInfo, ArcIMS, ArcGIS и т.д.
Покрытия также имели несколько недостатков:
- Некоторые операции выполнялись медленно из-за необходимости сборки "на лету" большого количества объектов. Сюда относятся все полигоны и составные объекты, такие как регионы (термин, означающий полигоны, состоящие из нескольких частей) и маршруты (составные линейные объекты).
- Топологические пространственные объекты (такие как полигоны, регионы и маршруты) были не готовы к использованию, пока не была построена топология покрытия. Если редактировались ребра, вся топология требовала перестроения. (Примечание: в конечном итоге была использована частичная обработка, что позволяло перестраивать только измененные части топологии покрытия). В основном, при редактировании пространственных объектов топологии, необходимо было задействовать алгоритм геометрического анализа для перестроения топологических отношений, независимо от использованной модели хранения данных.
- Покрытия не позволяли использовать многопользовательское редактирование. Поскольку существовала необходимость обеспечить синхронизацию графа топологии с геометрией пространственных объектов, только один пользователь мог одновременно редактировать топологию. Пользователям приходилось разбивать покрытие на части для одновременного редактирования. Это давало возможность отдельным пользователям "закрывать" и редактировать свою часть данных. Для использования всего массива данных, пользователи должны были скопировать свои части в составной слой данных. Другими словами, разделенные на части наборы данных, которые они редактировали, нельзя было сразу использовать в совместном доступе. Сначала, их было необходимо конвертировать, что означало дополнительные затраты времени и труда.
Шейп-файлы и хранение простой геометрии
В начале 1980-х покрытия рассматривались как существенное усовершенствование устаревших полигональных и линейных систем, в которых полигоны хранились в виде замкнутых петель. В этих устаревших системах, все координаты пространственных объектов хранились вместе с геометрией этих объектов. До появления покрытий и ArcInfo Workstation использовались такие простые полигональные и линейные структуры. Эта структура данных была проста, но имела существенный недостаток "дважды оцифрованных границ". Т.е. в геометрии каждого полигона, имеющего общие грани, хранились две копии координат для соседних участков. Основной недостаток состоял в том, что программное обеспечение ГИС того времени не могло управлять целостностью общих ребер. Кроме того, стоимость хранения информации была очень велика, экономить приходилось каждый байт. В начале 80-х годов жесткий диск емкостью 300 МБ был размером со стиральную машину и стоил 30 000 долларов. Хранение двух и более наборов координат было дорогостоящим, а вычисления занимали немало машинного времени. Таким образом, использование топологии покрытия имело реальные преимущества.
В середине 1990-х, на фоне уменьшения стоимости дискового пространства и увеличения вычислительной мощности, усиливался интерес к простым геометрическим структурам. В это же время, наборы ГИС данных становились все доступнее, и пользователи ГИС стали переходить от первичной компиляции данных к их обработке и анализу.
Пользователи хотели повышения быстродействия при работе с данными (например, не ждать вычисления геометрии полигона, который потребовался в данный момент, а просто получить координаты полигонов как можно быстрее). Доступность полной геометрии пространственных объектов оказалась более эффективной. Тысячи пользователей ГИС создали огромное количество доступных наборов данных.
Примерно в это же время в Esri разработали формат шейп-файлов (ESRI Shapefile). Шейп-файлы использовали очень простую модель хранения координат пространственных объектов. Каждый шейп-файл представлял один класс пространственных объектов (точечных, линейных или полигональных) и использовал простую модель хранения координат пространственных объектов. Шейп-файлы можно было легко создать из покрытий ArcInfo, а также из форматов других ГИС. Они быстро стали форматом "де-факто", широко распространились и используются по сей день.
Несколько лет спустя, ArcSDE предложил простую модель хранения данных в таблицах реляционных баз данных. Таблица пространственных объектов может хранить один объект в виде строки, вместе с информацией о его геометрии, а также атрибуты.
Пример такой таблицы, содержащей полигоны штатов, показан ниже. Каждая строка представляет один штат. Соответствующий столбец содержит полигональную геометрию каждого штата.
Эта простая модель пространственных объектов хорошо подходит для механизма обработки SQL. Благодаря использованию реляционных баз данных, увеличение объема данных и количества пользователей не приводило к снижению производительности. Мы начали использовать РСУБД для управления данными ГИС.
Шейп-файлы стали использоваться повсеместно и, благодаря ArcSDE, этот простой механизм стал фундаментальным способом хранения пространственных объектов в РСУБД. (Для поддержки совместимости Esri стал основным разработчиком спецификаций OGC и ISO).
Хранение простых объектов имело явные преимущества:
- Полная геометрия каждого пространственного объекта содержится в одной строке. Сборка не требуется.
- Структура данных (физическая схема) очень проста, кроме того, она не только быстрая, но и масштабируемая.
- Легкость написания интерфейса.
- Легкость взаимодействия. Позволяет без труда создавать конвертеры для переноса данных в формат простой геометрии из большого количества других форматов, и наоборот. Шейп-файлы широко применялись как формат хранения данных, так и их обмена.
Одним из их недостатков являлась невозможность использования топологии для поддержания целостности данных при работе с простыми объектами. Как следствие, пользователи использовали одну модель данных для редактирования и хранения (покрытия), а вторую для обработки (шейп-файлы или слои ArcSDE).
Пользователи стали применять такой гибридный подход для редактирования и работы с данными. Например, пользователи могли редактировать данные в покрытиях, файлах САПР или в других форматах. Затем, они могли конвертировать данные в шейп-файлы для картографического использования. Таким образом, несмотря на то, что структура простых объектов стала удобным форматом прямого использования, она не поддерживала топологическое редактирование и управление совместно используемой геометрией. Базы данных прямого пользования могли использовать простую структуру, но для редактирования использовалась иная топологическая форма. Это давало преимущества при работе с данными. Но, при этом данные устаревали, их требовалось обновлять. Эта схема работала, но при этом появлялась задержка обновления информации. Нижняя линия — топология отсутствует.
ГИС требовали механизма хранения пространственных объектов, использующего простую геометрию объектов, и позволяющего использовать топологию вместе с этой структурой данных.Это стало возможным благодаря появлению модели топологии базы геоданных. Это означало, что пользователи, наконец, смогут совместить преимущества обоих подходов - транзакционной модели данных, которая позволяет выполнять запросы к топологии, совместное редактирование и контроль над целостностью данных, и простого, хорошо масштабируемого механизма хранения данных, основанного на использовании геометрии простых объектов.
Эта модель данных оказалась простой, быстрой и эффективной. Она позволяет прямое редактирование и одновременную работу любого числа пользователей.
Рабочая среда топологии в ArcGIS
Фактически, топология предполагает нечто большее, чем только модель хранения данных. Топология включает:
- Полная модель данных (объекты, правила целостности, инструменты редактирования и проверки, топологически-геометрический механизм, позволяющий обрабатывать наборы данных любого размера и сложности, а также набор топологических операторов, способов отображения и инструментов построения запросов).
- Открытый формат хранения использует набор типовых записей для обозначения простых объектов и топологический интерфейс для построения запросов, поиска элементов топологии и обработки пространственных отношений между ними (т.е., поиск смежных областей и их общих ребер, перемещение вдоль соединенных линий).
- Возможность взаимодействия пространственных объектов (точки, линии и полигоны), топологических элементов (узлы, ребра, грани) и их отношений.
- Механизм, который может поддерживать:
- Очень большие наборы данных, содержащие миллионы пространственных объектов.
- Одновременное редактирование и обработку несколькими пользователями.
- Готовую к использованию, всегда доступную геометрию пространственных объектов.
- Поддержку топологической целостности и поведения.
- Быстродействующую систему, масштабируемую в зависимости от числа пользователей и редакторов.
- Гибкую и простую систему.
- Систему, использующую преимущества механизма SQL реляционной СУБД и среду транзакций.
- Систему, поддерживающую многопользовательское редактирование, длинные транзакции, историческое архивирование и репликацию.
В топологии базы геоданных, процесс проверки определяет общие координаты пространственных объектов (как в пределах одного класса пространственных объектов, так и между классами). Алгоритм кластеризации обеспечивает точное совпадение общих координат. Общие координаты хранятся как часть простой геометрии каждого пространственного объекта.
Это обеспечивает быстрый и масштабируемый поиск топологических элементов (узлов, ребер и граней). Дополнительным преимуществом является работа с механизмом SQL РСУБД и управление транзакциями.
При редактировании или обновлении данных, новые пространственные объекты можно использовать сразу после добавления. Обновленные области карты, так называемые "измененные области", маркируются в каждом классе пространственных объектов. В любое время, пользователи могут выполнить топологический анализ и проверку измененных областей. Перестройка требуется только для топологии измененных областей, что сокращает время, требующееся на обработку.
В результате, топологические примитивы (узлы, ребра и грани), их взаимоотношения и образующие их пространственные объекты быстро обрабатываются и собираются. Такая топология имеет следующие преимущества:
- Для хранения пространственных объектов используется простая геометрия. Модель хранения является открытой, эффективной, и масштабируется под большие объемы и многочисленных пользователей.
- Модель данных простых объектов является транзакционной и многопользовательской. Предыдущие топологические модели данных не масштабировались и имели серьезные ограничения при многопользовательской работе.
- Топология базы геоданных полностью поддерживает все возможности длинных транзакций и версионных данных базы геоданных. Топологию базы геоданных не нужно разбивать для многопользовательской работы, пользователи могут одновременно редактировать базу топологических данных — даже свои собственные версии одних и тех же пространственных объектов.
- Классы пространственных объектов могут содержать очень большое количество объектов (сотни миллионов), при этом их производительность не снижается.
- Такое решение топологии является аддитивным. Как правило, вы можете добавить топологию к существующей схеме пространственно связанных классов объектов. Или, вам придется заново создать схему, имеющею возможность использования топологических примитивов, и загрузить в нее имеющиеся пространственные данные.
- Для редактирования геометрии и работы с данными, как правило, достаточно одной модели.
- Это стало возможным благодаря использованию спецификаций Открытого геопространственного консорциума и ISO для хранения геометрии всех пространственных объектов.
- Моделирование данных более естественно, т.к. оно основано на пользовательских пространственных объектах (таких как земельные участки, улицы, типы почв и водоразделы) вместо топологических примитивов (узлах, ребрах и гранях). Пользователи начинают оперировать категориями целостности данных относительно реальных объектов, а не следить за целостностью топологических примитивов. Например, как должны себя вести эти земельные участки? Такой подход упрощает моделирование всех типов географических объектов. Он упрощает представление о реальных объектах:улицах, типах почв, районах переписи, железнодорожных путях, лесах, ландшафтах и т.д.
- Топология базы геоданных обеспечивает то же информационное наполнение, что и предыдущие версии топологии - вне зависимости от того, храните ли вы топологический линейный граф и рассчитываете геометрию пространственных объектов (как в покрытиях ArcInfo) или храните геометрию объектов и вычисляете элементы топологии и связи (как в базах геоданных).
В тех случаях, когда пользователи предпочитают хранить топологические примитивы, они могут создавать таблицы и размещать в них топологию и связи для различных аналитических операций и для обмена данными (например, если необходимо разместить информацию в Oracle Spatial, который хранит таблицы топологических примитивов).
С практической точки зрения, топологическое решение ArcGIS работает. Оно масштабируется без потери производительности, как по объему данных, так и по количеству пользователей. Оно позволяет использовать широкий набор инструментов проверки и редактирования для построения и обработки топологии в базе геоданных. Оно включает мощные и гибкие инструменты моделирования данных, которые позволяют пользователям создавать удобные системы, работающие как на файловом уровне, так и на уровне реляционных баз данных, и использующие любое количество схем.