Геопространственная топология — это изучение и применение качественных пространственных отношений между географическими объектами или между представлениями таких объектов в географической информации , например, в географических информационных системах (ГИС). [1] Например, тот факт, что два региона перекрываются или один содержит другой, является примером топологических отношений. Таким образом, это применение математики топологии к ГИС, и оно отличается от многих аспектов географической информации, которые основаны на количественных пространственных измерениях посредством координатной геометрии , но дополняет их . Топология появляется во многих аспектах географической информационной науки и практики ГИС, включая обнаружение неотъемлемых отношений посредством пространственного запроса , векторного наложения и алгебры карт ; обеспечение ожидаемых отношений в качестве правил проверки, хранящихся в геопространственных данных; и использование сохраненных топологических отношений в таких приложениях, как сетевой анализ . [2] [3] [4] Пространственная топология — это обобщение геопространственной топологии для негеографических областей, например, программного обеспечения САПР .
В соответствии с определением топологии , топологическая связь между двумя географическими явлениями — это любая пространственная связь, которая не чувствительна к измеримым аспектам пространства, включая преобразования пространства (например, проекция карты ). Таким образом, она включает в себя большинство качественных пространственных связей, таких как два объекта, являющиеся «смежными», «перекрывающимися», «непересекающимися» или один из которых находится «внутри» другого; и наоборот, один объект, находящийся «в 5 км от» другого, или один объект, находящийся «прямо к северу» от другого, являются метрическими связями . Одним из первых достижений географической информатики в начале 1990-х годов была работа Макса Эгенхофера, Элисео Клементини, Питера ди Феличе и других по разработке краткой теории таких связей, обычно называемой моделью 9-пересечений , которая характеризует диапазон топологических связей, основанных на связях между внутренними частями, внешними частями и границами объектов. [5] [6] [7] [8]
Эти отношения также можно классифицировать семантически:
Топология была очень ранней проблемой для ГИС. Самые ранние векторные системы, такие как Канадская географическая информационная система , не управляли топологическими отношениями, и такие проблемы, как узкие полигоны, быстро распространялись, особенно в таких операциях, как наложение векторов . [9] В ответ были разработаны топологические векторные модели данных , такие как GBF/DIME (Бюро переписи населения США, 1967) и POLYVRT ( Гарвардский университет , 1976). [10] Стратегия топологической модели данных заключается в хранении топологических отношений (в первую очередь смежности) между объектами и использовании этой информации для построения более сложных объектов. Узлы (точки) создаются там, где пересекаются линии, и приписываются списку соединительных линий. Полигоны строятся из любой последовательности линий, которая образует замкнутый контур. Эти структуры имели три преимущества по сравнению с нетопологическими векторными данными (часто называемыми «спагетти-данными»): во-первых, они были эффективны (важнейший фактор, учитывая возможности хранения и обработки данных в 1970-х годах), поскольку общая граница между двумя соседними полигонами сохранялась только один раз; во-вторых, они облегчали обеспечение целостности данных, предотвращая или выделяя топологические ошибки , такие как перекрывающиеся полигоны, висячие узлы (линия, не соединенная должным образом с другими линиями) и узкие полигоны (небольшие ложные полигоны, созданные там, где две линии должны совпадать, но не совпадают); и в-третьих, они упрощали алгоритмы для таких операций, как наложение векторов . [11] Их основным недостатком была их сложность, трудность для понимания многими пользователями и необходимость особой осторожности при вводе данных. Они стали доминирующей моделью векторных данных в 1980-х годах.
К 1990-м годам сочетание более дешевого хранения и новых пользователей, не беспокоившихся о топологии, привело к возрождению спагетти-структур данных, таких как шейп-файл . Однако потребность в сохраненных топологических связях и обеспечении целостности все еще существует. Распространенным подходом в текущих данных является хранение, например, расширенного слоя поверх данных, которые по своей сути не являются топологическими. Например, база геоданных Esri хранит векторные данные («классы объектов») как спагетти-данные, но может построить структуру «сетевого набора данных» соединений поверх линейного класса объектов. База геоданных также может хранить список топологических правил, ограничений на топологические связи внутри и между слоями (например, округа не могут иметь пробелов, границы штатов должны совпадать с границами округов, округа должны совместно охватывать штаты), которые можно проверить и исправить. [12] Другие системы, такие как PostGIS , используют аналогичный подход. Совершенно иной подход заключается в том, чтобы вообще не хранить топологическую информацию в данных, а конструировать ее динамически, обычно в процессе редактирования, чтобы выделять и исправлять возможные ошибки; это функция программного обеспечения ГИС, такого как ArcGIS Pro и QGIS . [13]
Несколько инструментов пространственного анализа в конечном итоге основаны на обнаружении топологических связей между объектами:
Oracle и PostGIS предоставляют фундаментальные топологические операторы, позволяющие приложениям проверять «такие отношения, как содержит, внутри, покрывает, покрывается, касается и перекрывается с пересекающимися границами». [14] [15] В отличие от документации PostGIS, документация Oracle проводит различие между «топологическими отношениями, [которые] остаются постоянными при деформации координатного пространства, например, при скручивании или растяжении» и «отношениями, которые не являются топологическими, [которые] включают длину, расстояние между и площадь». Эти операторы используются приложениями для обеспечения того, чтобы наборы данных хранились и обрабатывались топологически правильным образом. Однако топологические операторы по своей сути сложны, и их реализация требует осторожности с точки зрения удобства использования и соответствия стандартам. [16]