на главную

о компании

проекты

партнёры

контакты

прайс-лист

карта сайта

     

 

Что такое "топологические" отношения в цифровой картографии или для чего топологические отношения нужны в геоинформатике? 

(В.Г.Горбачев, 1997г.)

 

 

на предыдущую страницу

 

 


   
Введение
Определение "Топологии"
Виды топологических отношений в ГИС
Узловая топология. Линейно-узловая топология
Внутренняя структура данных объектно-топологической ГИС
Межслойные топологические отношения между объектами (межообъектные топологические отношения между объектами разных слоёв)
Концептуальные топологические отношения
Гибкие топологические связи.
Автоматическое "наведение" топологии в цифровых картах
Виртуальная или процедурная топология.
Проблема обмена цифровыми картами между различными ГИС. Обменные форматы
Можно ли нетопологическую ГИС сделать топологической, путём разработки внешних программных расширений?
Задачи, в которых требуется использовать те или иные топологические отношения
Муниципальные кадастровые задачи.

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

Топологические ГИС и нетопологические ГИС.


Введение

 

Сегодня - в пору развития ГИС-технологий - самым "загадочным" термином для подавляющего числа пользователей ГИС является, пожалуй, "топология" или "топологические отношения" между картографическими объектами. Например, мне приходилось многократно на различных конференциях, организуемых ГИС-ассоциацией, участвовать в дискуссиях, где нескончаемый спор вёлся до полного изнеможения, лишь потому, что спорящие по-разному понимают проблемы, связанные с топологией в ГИС, а часто и вообще не знают, что это такое.

Вообще говоря, в таком положении дел нет ничего обидного и страшного для пользователей - геоинформатика - область новая. Плохо то, что те, кто занимаются продвижением программных ГИС-систем, не стараются рассказать пользователям значимость этого понятия (понятно, - ведь мало ГИС топологических - значит лучше умолчать), либо понимают под пространственной топологией в ГИС лишь классическую - линейно-узловую, которая поддерживается продуктами семейства ArcInfo и реализована также в отечественном продукте GeoDraw (ЦГИ ИГРАН). Однако, то что верно для ГИС, ведущих свою родословную от мелкомасштабных карт (М1:1000000 - М1:25000), для муниципальных систем совсем не верно. На крупных масштабах топологические проблемы ГИС-технологии не только не локализуются, но и, напротив, только начинаются… Многие верят в то, что, купив западные продукты, имеющие громкие названия, удастся избежать катастроф. Это вовсе не так.

Без понимания основ в области топологических структур в ГИС опасно браться за серьёзные муниципальные задачи, т.к. через некоторое время, - когда решаемые задачи выйдут за пределы одной лишь картографии, - наступает горькое похмелье, обусловленное тем, что топопланы НАРИСОВАНЫ с картографической точки зрения правильно, но кроме как любоваться на них, почти ничего больше делать нельзя. Было слышно в нескольких городах, как рушилась карьера активных людей, занявшихся геоинформатикой без должной проработки вопросов по топологии, а затем нужный результат не был получен, хотя деньги были потрачены большие.

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

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


Определение "Топологии"

 

Когда не хочется углубляться в бескрайние просторы математики и её разделов, связанных с топологическими пространствами, вполне допустимо обратиться к Большому энциклопедическому словарю - кладезю мудрости.

Итак,

"ТОПОЛОГИЯ (от греч. topos - место) - раздел математики, изучающий топологические свойства фигур, т.е. свойства, не изменяющиеся при любых деформациях, производимых без разрывов и склеиваний (точнее, при взаимно однозначных и непрерывных отображениях). Примерами топологических свойств фигур является размерность, число кривых, ограничивающих данную область, и т.д. Так, окружность, эллипс, контур квадрата имеют одни и те же топологические свойства, т.к. эти линии могут быть деформированы одна в другую описанным выше способом; в то же время кольцо и круг обладают различными топологическими свойствами: круг ограничен одним контуром, а кольцо - двумя".

Вот так написано в БЭС.

На всякий случай возьмём оттуда же понятие топологического пространства, поскольку в ГИС всё-таки мы имеем дело именно с моделями пространств.

ТОПОЛОГИЧЕСКОЕ ПРОСТРАНСТВО - математическое понятие, обобщающее понятие метрического пространства. Топологическое пространство - множество элементов любой природы, в котором тем или иным способом определены предельные соотношения.

МЕТРИЧЕСКОЕ ПРОСТРАНСТВО - множество точек (элементов), на котором задана метрика.

МЕТРИКА - математический термин, обозначающий формулу или правило для определения расстояния между любыми двумя точками (элементами) данного пространства (множества).

Как определить расстояние между двумя точками в Евклидовом метрическом пространстве, мы все знаем - в нём и живём. Хотя некоторые возразят и скажут, что мы живём немного в другом пространстве (тоже метрическом) - на поверхности шара, которому "ближе" сферическая геометрия, чем евклидова. И тоже будут правы, т.к. Евклидово пространство - это пространство на сфере бесконечно большого диаметра, - т.е. частный предельный случай сферы.

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

Картография занимается отображением (моделированием) метрических пространств. Причём выполняется это на плоскости - также метрическом пространстве. (Крупномасштабные карты, отображая плоскость, выполняют отображение "плоскость участка земной поверхности - плоскость карты", а мелкомасштабные выполняют отображение "сферическая поверхность (эллипсоид, геоид) - плоскость карты").

В картографии принципиально работают с топологическими пространствами и обойти это нет не только необходимости, но и возможности. Другим словами, изображение на карте - принципиально топологично, поскольку изображение лежит на плоскости - в топологическом пространстве. Действительно, если нарисовать карту на плоской резине, а потом растянуть её в разных направлениях, то фигуры (картографические изображения) деформируются, но отношения (связи) между их элементами останутся без изменений; смежные линии разных фигур, как бы связанные своими концами с другими элементами, так и остались в этом "виде". Лишь формы линий изменятся. Именно поэтому в БЭС и говорится, что окружность, эллипс и контур квадрата имеют одни и те же топологические свойства при деформациях; можно так растянуть участки резины, чтобы даже квадрат превратился в окружность.

Таким образом, ИЗОБРАЖЕНИЕ карты всегда топологично вследствие топологических свойств самого листа бумаги. Точно так же топологичен и экран монитора.

Резюмируем по "пространствам": мы всегда в картографии (реальной или "электронной") имеем дело только с топологическими пространствами. Значит проблема топологических ГИС и нетопологических ГИС лежит вне пределов проблем, связанных с самими пространствами. Где же тогда "прячется" эта проблема?

Попробуем рассмотреть изображение, нанесённое на карту, вне самого холста (листа бумаги). Будем говорить о топологических конструкциях, а не изображениях. Заранее скажу, что здесь собака и зарылась.

Попытаемся представить "воздушную" конструкцию, состоящую из палочек, скреплённых концами между собой (например, на концах есть крючки для сцепления). Если манипулировать ими как фокуснику, то конструкция вследствие СВЯЗАННОСТИ концов палочек остаётся целостной: форма её изменяется, но каждая палочка, если она была связана с конкретными соседями, так и осталась с ними связанной, как бы мы не подбрасывали или не сгребали в охапку такую конструкцию.

Конструкцию из связанных палочек можно разместить на плоскости. При этом тоже, - как бы мы не перемещали палочки, за ними смещаются и соседи (крючки не дают оторваться). Всё это обусловлено наличием жёстких связей между концами палочек. Здесь мы имеем дело с топологической конструкцией, топология которой явным образом не связана с топологичностью метрического пространства. Например, принципиальная электрическая схема некоторого прибора образует топологическую конструкцию, но эта топология - не метрическая (расстояние между элементами не задано, да и не имеет смысла).

Теперь приведём пример НЕтопологических конструкций. К примеру, можно взять отдельные спички и сложить из них конструкцию на плоскости. Конструкция может быть такой же по форме, как в примере со скреплёнными между собой палочками. Однако, Вы можете взять любую спичку и переместить её. И поскольку она физически не скреплена с соседями, то сделать это можно без труда, не потревожив соседние спички. В таком случае говорят, что спички не образуют топологически связанную конструкцию с другими спичками. Конструкция легко рассыпается, если Вы стукнете по плоскости, на которой разместили конструкцию. Напротив, в примере со скреплёнными между собой палочками у Вас после встряхивания, может быть, изменится форма конструкции, но связи между соседями СОХРАНЯТСЯ.

А теперь возвратимся к ГИС. Так вот, в ТОПОЛОГИЧЕСКИХ ГИС изображение образуется взаимосвязанными элементами, и разорвать между ними связи можно, только выполняя явно такие специальные операции (если Вам уж очень этого хочется). А в НЕТОПОЛОГИЧЕСКИХ ГИС конструкции действительно рассыпаются как спички; Вы можете взять объект или часть его и переместить в другое место экрана компьютера. При этом видно, что выполнить такую операцию легко, и объект с готовностью отрывается от соседей.

Конечно, в нетопологических ГИС "спичками" являются более сложные элементы, чем отрезки прямых. В строгом смысле полностью нетопологических ГИС ВООБЩЕ НЕ БЫВАЕТ. Единственным нетопологическим редактором является PaintBrush из Windows. Это всё звучит удивительно, но это так. ГИС, которую называют нетопологической, на самом деле может иметь в качестве элементарных "спичек" довольно сложные конструкции, например, многоугольники (полигоны) или полилинии (надломите спичку в нескольких местах, но не ломая окончательно, - и Вы получите более сложный - полилинейный - объект). Так вот, сама полилиния или полигон по отдельности являются топологическими конструкциями. Вся беда в том, что их ни с каким другим самостоятельными объектами на карте скрепить уже нельзя.

Такая ситуация имеет место в объектных ГИС. Так в MapInfo Вы легко можете нарисовать полигон и при этом хорошо видно, что этот полигон является топологической конструкцией; Вам ни за что не удастся "вынуть" из полигона какое-нибудь его ребро. - Значит полигон создан не из "спичек". Тогда что же - MapInfo является топологической ГИС? - Нет! Просто в геоинформатике давно уже произошло редуцирование понятий. MapInfo на самом деле поддерживает только так называемую внутриобъектную топологию (см. разд.2.3.1), - т.е. формирует и соблюдает топологические отношения в пределах тех базовых составных объектов (полилиний, полигонов), которые состоят из примитивов (узлов и отрезков прямых). Последние же являются элементарными (а потому - нетопологическими) "микроконструкциями". Однако, ГИС-специалисты не называют MapInfo топологической ГИС, поскольку внутриобъектной топологии мало для того, чтобы носить высокое звание топологической системы; нужно, чтобы топологические отношения (скрепления) можно было устанавливать не только между элементами в базовых объектах, но и между любыми отдельными объектами, - например, соседними полигонами, имеющими общие грани или вершины.

В завершение данного раздела заметим, что только лишь по СТАТИЧЕСКОМУ изображению на экране компьютера НЕТ ВОЗМОЖНОСТИ ОПРЕДЕЛИТЬ, имеете ли Вы дело с топологической конструкцией объектов, или это только уложенные рядом "спички", - пусть каждая в отдельности и сложна сама по себе. Иногда норовят выполнять следующие "проверки":

а) пытаются очень сильно увеличить общую точку двух смежных полигонов в надежде, что при ОЧЕНЬ большом увеличении обнаружится, что их "совпадающие" точки на самом деле не совпадают, а находятся рядом, хотя и очень близко, сливаясь вместе лишь на мелкомасштабном изображении. Так вот, это ничего не говорит о характере ГИС. Точки могут иметь одинаковые координаты, но не быть топологически связанными (см. раздел о псевдотопологии). И наоборот, координаты могут не совпадать, если несовпадение обусловлено содержанием самой карты. Например, это может быть в тех случаях, когда полигоны обозначают земельные участки, координаты поворотных точек у которых получались в разное время независимо от анализа, с каким соседним участком соседствует данный участок. Последнее, конечно, неправильно с точки зрения методик проведения сплошной инвентаризации земельных участков, но главное, что рассматриваемый пример с изображением ничего не говорит о топологичности или нетопологичности ГИС. У близко расположенных, но несовпадающих на изображении точек, могут быть ДЕЙСТВИТЕЛЬНО разные координаты просто от того, что сплошная инвентаризация земельных участков в данном населённом пункте не проведена, и участки естественным образом "наезжают" друг на друга или наоборот - разъезжаются, а "подравнивать" их можно только через суд.

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

Может быть и так, что некая дорога "плывёт" по морю. И такое бывает. Но, может быть, цифровую карту векторизовали по такому исходному материалу, и принять решение, как провести её на самом деле, никто не рискнул.

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

в) пытаются в операциях редактирования полигона вырвать ребро (как "спичку" в нашем примере выше). Конечно, если это удалось, то изображение явно отражает нетопологическую конструкцию. Однако, это, может быть связано с тем, что некто из людей-операторов просто создавал изображение как НЕТОПОЛОГИЧЕСКУЮ конструкцию (можно и на топологической ГИС нарисовать нетопологичное изображение). И сделал он это лишь потому, что не знал, как создать полигон явно операцией создания полигона, а не из самостоятельных отрезков. Нам удавалось видеть нарисованный склон ямы с аккуратно нарисованными сотнями самостоятельных бергштрихов!

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

Я берусь утверждать, что нет абсолютно верного способа лишь по СТАТИЧЕСКОМУ изображению выяснить имеете ли Вы дело с топологической ГИС или с нетопологической. - И с помощью топологической ГИС можно умудриться сделать нетопологическую конструкцию (вспомним пример с бергштрихами).

Правда, намёки на нетопологичность получить можно. Для этого нужно выполнить динамические операции с изображением. Например, достаточно выбрать объект (в объектных ГИС) и попытаться его перенести как целое в другое место. Если он оторвался от соседей, от которых по сути их взаимоотношений в реальном мире сделать бы не должен, то Вы точно имеете дело с нетопологической конструкцией. Но вот в отношение нетопологичности ГИС можете лишь высказывать подозрение.

Самый верный способ узнать о топологичности ГИС - почитать пользовательскую документацию. Те, кто разработали топологическую ГИС, об этом ОБЯЗАТЕЛЬНО РАСПИШУТ ПОДРОБНО (действительно важная, ведь, вещь!). Да и обязательно придётся говорить об операциях работы с топологическими конструкциями. Те, у кого ГИС -нетопологическая, всячески избегают об этом упоминать или пишут иногда фразами типа: "После этого Вы можете навести топологию на карте". Как это сделать, впрочем, не указывается.

Иногда пишется о топологических связях, хотя на самом деле это только - псевдотопология (см. раздел.2.5), и речь идёт о совпадении координат узлов соседних объектов. Дело в том, что для топологических отношений между объектами одного совпадения координат вершин соседних объектов МАЛО. Нужно, чтобы ГИС САМА "ЗНАЛА", ЧТО ЭТИ ОБЪЕКТЫ СВЯЗАНЫ МЕЖДУ СОБОЙ. Топологическая ГИС обязательно имеет в составе своих функций СПЕЦИАЛЬНЫЕ ОПЕРАЦИИ по работе с топологически связанными смежными объектами и может ОТСЛЕЖИВАТЬ топологические СВЯЗИ, запрещая их разрывать пользователю по любому поводу и без оного. Другими словами, разорвать их пользователю она может дать, но только тогда, когда это явным образом укажет сам пользователь (т.е. он указывает системе, что делает это сознательно), а в ГИС предусмотрены для пользователя операции, устанавливающие или разрывающие (снимающие) явные топологические отношения между объектами. Вспомните, как в объектной ГИС Вам не удаётся вырвать ребро из полигона, - это ГИС не даёт развернуться такому беспределу.

Далее мы будем различать два понятия - изображение карты (на бумаге ли, на экране ли) и топологические конструкции. Это необходимо делать, поскольку статичное картографическое изображение ВСЕГДА ТОПОЛОГИЧНО ПО ПОРЕДЕЛЕНИЮ, т.к. нарисовано на плоскости, являющейся моделью топологического метрического пространства. Мы с вами только ВИДИМ объекты соединёнными своими частями между собой. От этого нам КАЖЕТСЯ, что элементы изображения ещё и топологически связаны. На самом деле - совсем не обязательно. Они просто так нарисованы.

Изображение - лишь вторичная модель местности, а именно - зримая модель (проекция) цифровой модели местности, находящейся в памяти компьютера. Так вот, в топологических ГИС внутренняя цифровая модель местности представлена в компьютере в виде взаимосвязанных структур данных (топологических конструкций, - только они невидимы, так как хранятся в виде адресных ссылок). И ещё; в таких ГИС, кроме того, имеются операции, (вынесенные в интерфейс пользователя), с помощью которых топологическая ГИС может манипулировать топологическими конструкциями и эффективно решать задачи, требующих учёта топологических связей (отношений) между объектами.

В нетопологической ГИС внутренняя цифровая модель местности в памяти компьютера не содержит явно заданных связей между объектами. Каждый объект автономен от других, - т.е. из анализа внутренних структур данных нет явной возможности, "полазив" по структурам, увидеть, какой объект с каким связан. Соответственно в нетопологической ГИС и на уровне пользователя, и на уровне программном отсутствуют операции, в которых обрабатывается и анализируется непосредственное соседство объектов.

Итак, именно в памяти компьютера структуры данных могут быть связаны или не связаны между собой. В любом случае отображаются они на экране или бумаге с помощью программного обеспечения ГИС ОДИНАКОВО. В этом состоит трагедия того, что картографы пренебрегают топологическими отношениями в геоинформатике. Их задача - правильно ИЗОБРАЗИТЬ местность с использованием символьного языка. В чистой картографии отсутствуют задачи, в которых бы потребовались операции, связанные с обработкой топологических (не путать топологию с "топографией"!) связей между объектами. Таким образом, картограф НЕ РАЗЛИЧАЕТ топологию как понятие, не относящееся к изображению, поскольку это находится вне его предметных органов чувств. Для картографа топология - это топология изображения. Но мы уже говорили выше, что изображение в любом случае визуально топологично. Следовательно, ГИС, созданные в Роскартографии и ВТУ МО, вовсе и не стремятся вводить топологию в свои программные продукты, поскольку наличие или отсутствие таких средств никак не влияет на качество ИЗОБРАЖЕНИЯ карт.

Топологические отношения нужны в первую очередь тем, у кого карта - это вершина айсберга, кто использует карту только тогда, когда её действительно нужно лишь УВИДЕТЬ, возможно, вместе с аналитической информацией поверх этого изображения. А на самом деле цель этих людей - МОДЕЛИРОВАНИЕ ПРОЦЕССОВ НА ТЕРРИТОРИИ. А многие виды анализа невозможно выполнить без того, чтобы не проанализировать ТОПОЛОГИЧЕСКИЕ ОТНОШЕНИЯ между объектами на территории (местности). Если такие связи зафиксированы во внутренней (- в компьютере) модели местности, а ГИС может умело эти связи вместе с информацией о самих объектах обрабатывать, то мы можем выполнять действительно нужные и сложные аналитические операции, отображая уже затем все результаты на изображении карты.

В нетопологической ГИС многие виды анализа территории выполнить не удаётся. Назначение таких ГИС, в основном, - паспортизация объектов и возможность красиво и правильно показывать местность.

Теперь поговорим о видах топологических отношений. Методология ArcInfo и копирующая её методология GeoDraw, различают только один вид топологии - линейно-узловую. Однако, видов топологий, как минимум, ПЯТЬ. И большинство из них становится необходимым использовать именно на муниципальных объектных картах. Этот факт сильно ограничивает использование известных зарубежных топологических ГИС на муниципальном уровне. Ниже мы об этом поговорим.


Виды топологических отношений в ГИС

 

Классификация

 

Видов топологических отношений существует несколько. Приведём их список:

  • Необъектные топологии:

    • ("внутриобъектные" и "межобъектные") Линейно-узловые топологические отношения. "Объект" в линейно-узловых ГИС и в объектных ГИС - это несколько различные понятия, поэтому я взял в скобки.

  • Объектные топологии:

    • Внутриобъектные топологические отношения.

    • Межобъектные топологические отношения:

      • Узловые топологические отношения.

      • Межобъектные топологические отношения в пределах одного слоя

      • Межслойные топологические отношения между объектами

      • Топологические межобъектные ресурсные связи

  • Концептуальные топологические отношения (отношения между классами объектов, а не между экземплярами).

  • Псевдотопология

Собственно, весь сыр-бор в геоинформатике вокруг топологии связан с межобъектными топологическими отношениями. Как я уже говорил выше абсолютно нетопологических ГИС не бывает.

В основном известны линейно-узловые топологические отношения, которые реализованы в наиболее известных зарубежных ГИС.

Концептуальные топологические отношения - это новые топоотношения и этот термин введён впервые нами - тогда ещё разработчиками ГИС "Альбея" - в статье "Концептуальные топологические отношения в ГИС", напечатанной в Информационном бюллетене ГИС-ассоциации где-то в 1996г.

Однако, попробуем по порядку.

С описания какой из топологий начать? - Ясно, что полное отсутствие топологии в ГИС мы рассматривать не будем, поскольку работать с такой системой практически невозможно в картографии, а в других областях - и подавно. А в картографии невозможно работать вследствие крайней неэффективности деятельности оператора; ему придётся беспрерывно бороться с рассыпающимся изображением при выполнении различных операций редактирования. Карандашом работать много удобнее…

 

ОБЪЕКТНЫЕ ГИС: Внутриобъектные топологические отношения

 

Начнём с внутриобъектной топологии. Почему? - Потому, что с её реализации начинают все, кто впервые решается создать свою - новую - ГИС и удивить ею весь мир. Смелость эта идёт от пока ещё незнания, насколько тернистым будет путь признания созданной системы. Прозрение наступает потом…

Итак, внутриобъектная топология. Уже из названия следует, что главным понятием в такой ГИС является некий ОБЪЕКТ. Практически сразу разработчик определяет, что они должны быть

а) точечными (символы);

б) линейными (отрезок). Часто этот тип не реализуют как самостоятельный, т.к.легче сразу реализовать следующий - и более общий;

в) полилиния (связанная последовательность отрезков прямой). - Вот она связность частей, на чём базируется внутриобъектная топология! Её сразу закладывают в понятие объекта и в его создаваемую структуру.

г) полигональный объект (замкнутая полилиния - как змея, кусающая себя за хвост). Здесь тоже сразу же реализуют операции создания и редактирования полигонального объекта таким образом, что последний всегда остаётся замкнутым.

 

В принципе, других объектов в простейшей объектной ГИС и нет.
Таким образом, в объектной ГИС первичен объект, который по определению сам по себе является целостным и топологичным. Объект НЕ РАССЫПАЕТСЯ, поскольку каждый тип объекта создаётся своей специфической операцией, не допускающей, чтобы оператор коварно обманул ГИС (или ошибся); например, заставляет систему начать создавать полигон, а затем, - неожиданно передумав на полпути, - решает сделать его незамкнутым, - т.е. незамкнутой полилинией. Так вот, полилинию система ему уже не даст создать, НАСИЛЬНО ЗАМЫКАЯ голову и хвост линии, образующей границы полигона. Аналогично, если вы просите систему нарисовать линию, то ГИС принципиально её не замкнёт (точнее - не свяжет хвост и голову в одной общей точке).

Таким образом, в объектной ГИС, поддерживающей только внутриобъектную топологию, объект - это автономная топологическая конструкция, которую рассыпать невозможно при всём желании (ГИС не даёт вам "в руки" таких операций, а раз операций нет - то ничего сделать нельзя с упрямой системой). С объектом можно будет выполнять только целостные операции:

а) создать объект (такими, например, способами, как описано выше);

б) уничтожить объект (это совсем просто; нужно его указать системе и попросить сделать с ним DEL);

в) переместить объект в другое место (не меняя формы);

г) скопировать объект в другое место (не меняя формы).

 

Вот, в принципе, и всё (семантические операции рассматривать не будем).

К системам, которые поддерживают только внутриобъектную топологию, относятся:

  • MapInfo (MapInfo Corp., США);

  • AtlasGIS (ESRI, США);

  • отечественная "Панорама" for DOS (Ногинск);

  • и величайшее множество других систем, разработанных на бескрайних просторах России. Как уже говорилось, с таких систем начинают свои разработки все начинающие разработчики, поэтому и вариантов систем - множество.

Что касается MapInfo, то там, конечно, разработчики не начинающие, но они и не ставили перед собой создавать некую профессиональную ГИС для серьёзных применений. Существует много задач, где межобъектной топологии и не нужно (например, отображение на простых картах различных данных в виде графиков, диаграмм, закрасок областей и т.п. - всё, что называют тематической географией). Другими словами, MapInfo создавалась для простых применений. И только у нас в России - на безрыбье - могут использовать гвоздодёр для того, чтобы налаживать часовой механизм наручных часов. Многие предприятия Роскартографии делают на MapInfo чудеса, подтверждая, тем самым, что кроме картинки им ничего больше не нужно.

Объектные ГИС могут решать задачи паспортизации объектов, изображённых на карте и статистической обработки семантических данных с целью построения различных диаграмм.

Для множества кадастровых задач объектную ГИС с одной лишь внутриобъектной топологией использовать нерационально.

Тут же надо сказать, что определённые топологические операции могут быть реализованы не структурно, а процедурно, но об этом речь - ниже (в разделе о псевдотопологии и внешних расширениях ядра ГИС). Здесь скажем лишь, что это очень неэффективно, поскольку машине (процессору) в этом случае нужно долго "носиться по памяти", перебирая координаты объектов, чтобы определить, кто с кем находится рядом. В этом случае можно предусмотреть алгоритмы, которые хоть и таким трудоёмким способом, но могут выполнять операции, например, по поиску соседей полигона. Эта же операция в топологических ГИС выполняется так легко, как "два такта выполнить"… (процессора). Тут фокус в том, что в истинно топологической ГИС понятие близости реализовано структурно в памяти компьютера, а не определяется процедурным путём. Но об этом - в следующем разделе.

В заключение (хотя можно было бы с этого начать) посмотрим на рисунок 1, где показана внутренняя структура данных простейшей объектной ГИС для фрагмента карты, где изображены два полигональных объекта (треугольники) с одной общей гранью. Обратите внимание, что каждый объект в памяти компьютера содержит непосредственно в относящейся к нему структуре данных все координаты (х,у) вершин. И более того, - другой полигон также хранит координаты всех вершин, которые его образуют.

 

topo_r1.jpg (13774 bytes)

 

Очевиден тот факт, что в указанных структурах налицо определённая избыточность: координаты общих для полигонов точек - T2 и Т4 хранятся в двух местах - структуре данных полигона F1 и структуре данных полигона F2. Кто-то давно-давно посчитал это расточительным! Собственно говоря, это было сделано тогда, когда оперативная память была очень дорогая - 20-25 лет тому назад. Персоналок не было в природе, а в крупных машинах память была очень дорогой. Разработчики решили поэкономить…

Кстати, и быстродействие компьютеров было "не ахти…". Оказалось, что можно было при отрисовке карты на экране компьютера ещё и убыстрить работу компьютера. Из того же рисунка 1 видно, что общая для двух полигонов линия может быть нарисована один раз. А в объектной ГИС каждый объект рисуется полностью и, поскольку ГИС не знает, какими гранями какие из полигонов граничат между собой, то, естественно, что программа, перебирая список объектов, предназначенных для перерисовки, нарисует общую линию T2-T4 дважды - один раз, когда рисует полигон F1, а второй раз, - когда рисует полигон F2. Поэтому, если уж экономить, то не только память, но и время процессора - ведь слабоваты они были 20 лет назад! Так и сделали. Вот на этих "экономиях" и была создана первая серьёзная ГИС - ArcInfo. Оказывается, очень кстати это вело прямым путём к топологическим структурам данных, которые обеспечивали выполнение на модели принципа непрерывности пространства.

Но сначала коснёмся переходного вида структуры - узловой топологии.

 

Межобъектные топологические отношения

 

Здесь нужно сказать, что существует две концепции межобъектных отношений:

  • убелённая сединами линейно-узловая топология с её частным и редким случаем узловой топологии. Эта топология не может эффективно манипулировать автономными объектами и операторы всё время норовят деформировать объект при редактировании карты (см. ниже);

  • новая объектная топология, которая отражает современную концепцию объектно-ориентированного подхода к описанию моделей, завоевавшая программирование в последние пять лет. Вот только в ГИС она пришла недавно. Здесь объект принципиально автономен (как и в жизни). Однако, концепция оказалась столь продуктивна, что именно в объектных развитых ГИС (каких мало) стало возможным реализовать новейшие и очень полезные виды межобъектных топологий (см. ниже).

Начнём со старших - 25-летних…


Узловая топология. Линейно-узловая топология

 

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

Создание узловой топологии - это следующий шаг в историческом развитии тех разработчиков объектных ГИС, которые не решились реализовать после первой своей типичной объектной идеи более полезные виды топологических структур, ограничившись полумерой. А всякая полумера даёт лишь небольшой выигрыш. ГИС практически не становится в таком случае действительно топологической, т.к. солидные задачи системы только с узловой топологией решать не могут. Многие разработчики, являясь оптимистами-максималистами (в противном случае они - плохие разработчики), на самом деле перескакивают через такой этап в своём развитии и реализуют в своей новой версии ГИС сразу линейно-узловую топологию. Но для полноты изложения материала, всё-таки скажем несколько слов и об узловой топологии.

Узловая топология экономит только память, игнорируя перегрузку работящего процессора при отрисовке общих линий полигонов. Посмотрим на рисунок 2.
 

wpe6.jpg (18570 bytes)

Здесь показаны те же два полигона. Заметим, что внутренняя структура данных, описывающая объекты, несколько изменилась. Теперь все точки, которые есть на карте (безотносительно, каким объектам они принадлежат), собраны в один гигантский список, а каждый объект содержит в своей индивидуальной структуре данных только ССЫЛКИ на те точки из этого списка, которые обозначают его вершины.

Единый глобальный список координат точек позволяет сэкономить на дублях координат точек, т.к. этих дублей теперь нет. Есть всегда только один экземпляр координат каждой точки. Ссылки во внутренних структурах объектов, относящиеся к вершинам, могут адресоваться к этим общим точкам одновременно из нескольких полигонов-соседей (на карте).

Итак, память экономится, но общая грань всё равно перерисовывается дважды.

Однако, известно, что, выигрывая в чём-то, мы проигрываем в другом. Хорошо видно из приведённой структуры данных, что каждый из смежных полигонов лишается своей личной собственности - координат точек, которые теперь обобществлены в едином списке точек, и на них могут "претендовать" теперь уже несколько хозяев. Этот коммунальный список точек для всех объектов лишил объекты структурной автономности, и теперь уже вовсе непросто переместить объект как целое; общую точку передвинуть нельзя, т.к. она является собственностью и другого - смежного - полигона. Даже изменить форму объекта простым способом не очень получается, т.к. она (операция) выполняется путём перемещения общих точек с другим полигоном. Вообщем, коммуналка в памяти компьютера налицо и так же, как нельзя унести из коммунальной кухни общую и единственную кастрюлю на загородный пикник, оставив соседей умирать в безпосудной квартире, так нельзя и изменить координаты общей точки, чтобы не нарушить форму смежных объектов. Эта трагедия ГИС с узловой и линейно-узловой топологией ставит жирный крест на их применении в большинстве муниципальных задач. Действительно, для мелкомасштабных природных карт - всё хорошо, т.к. там объекты таковы, что их форма не относится к объектам с действительно автономной структурой. А вот в городе, где самостоятельных объектов - подавляющее большинство, подвигать объекты, ломая формы смежных объектов просто опасно.

Например, пусть стоят рядом два дома с общей стеной. Каждый дом имеет свою форму, которая записана в его ТЕХНИЧЕСКОМ ПАСПОРТЕ. Да и каждый дом инвентаризируется часто отдельно от других (потом пристроили к нему сарайчик - тоже со своим техпаспортом, например). И вот Вы нарисовали объект в соответствии с техпаспортом (согласовали его с наземными измерениями), а потом кто-то на цифровой карте начал корёжить форму соседнего домика, пытаясь изменить координаты вершин, относящихся и к смежному дому. Поскольку это ОБЩАЯ для обоих домов точка, то её Х и У изменятся, а потому изменится и форма смежного дома. Прощай его техпаспорт!

Хорошо, если в топологической ГИС такого типа пользователю даются средства, чтобы клонировать (создать дубль) общей точки - с целью присвоения отрываемым полигоном этой копии (она сразу же вносится в глобальный список точек).

Ещё минус: Узловая и линейно-узловая топологии в случае реализации указанных видов внутренних структур данных, НЕ ПОЗВОЛЯЮТ ГЕОИНФОРМАЦИОННОЙ СИСТЕМЕ СТАТЬ ОБЪЕКТНОЙ. Для этого нужно полностью изменить архитектуру системы (структуры внутренних данных), о чём я говорил в своём предыдущем материале по МГИС. Так что ESRI, наверное, приходится нелегко… Что-то они попытались сложить в кучу в своей ArcView GIS, но получилось именно "в кучу" - возникла и не объектная, и не линейно-узловая ГИС, а ВЬЮЕР. И действительно отображать такую структуру данных на экран можно без труда, а вот редактировать карту с линейно-узловой топологией, но как автономно-объектную структуру - хоть тресни - нелегко. Пришлось им говорить всему миру, что - дескать - ArcView читает картографические данные во внутренних форматах ArcInfo (читай: с линейно-узловой топологией), а вот рисовать что-то своё, товарищи, можете только по-объектному (как в MapInfo, т.е…). Правда, вот, не удалось эти две очень различные концепции структур данных повязать вместе; в объектных покрытиях межобъектной топологии всё равно нет, а линейно-узловые структуры не больно поредактируешь.

Сейчас что-то стало очень тихо за океаном, - видать думают разработчики-экологи из ESRI, как бы им перелопатить архитектуру своих систем для персоналок - уж больно хочется выйти на уровень муниципальных задач! Даже простенькую AtlasGIS купили вместе с компанией, чтобы хоть что-то иметь объектное и на персоналках. Разбавили, значит, свою кровь программистами с объектной идеологией. Да, торопиться и впрямь надо, а то, ведь, эти русские всю Россию объектными топологическими ГИС заполонят… На что жить бедному американцу будет? Откуда деньги качать? Может быть, в 1998г. сделают стОящее?! Поживём - увидим.

Пока мы увлеклись охаиванием узловой топологии, а потом легко и непринуждённо перенеслись в этом вопросе на линейно-узловую, забыли посмотреть на очередной рисунок - для "линейно-узловых" структур данных. А зря. Структура данных преобразовалась ещё больше и теперь экономия пошла ещё дальше, распространившись теперь на упомянутое ранее время отрисовки карты. Смотрим на рисунок 3.
 

wpe7.jpg (28022 bytes)

Опять видим те же два дежурных полигона, но теперь структуры данных полигонов ещё более перемешались между собой в группах "коммунальных" описателей. Кроме глобального списка обобществлённых точек (узлов) возник глобальный список обобществлённых (коммунизированных) линий. Следовательно, в самих "личных" структурах полигонов теперь хранятся только ССЫЛКИ на описатели линий (рёбер), из которых состоит полигон. На общее ребро двух полигонов может быть много ссылок - ровно столько, сколько полигонов граничит между собой этим ребром. А уже каждая структура, кодирующая линию, так же, как и в простой узловой топологии всё так же не содержит координат граничных точек, а опять же имеет только ССЫЛКИ НА ЗНАЧЕНИЯ С КООРДИНАТАМИ из глобального списка точек. Вот такая вот иерархия ссылок, в которой "листиками" являются координаты Х, У точек на карте!

Но, конечно же, линейно-узловая топология - это всё-таки достаточно неплохая структура, описывающая пространственные данные. Выполнению многих видов пространственного анализа на мелкомасштабных картах она очень помогает. Но вот с динамическими объектными картами работать эффективно не сможет. Объектное моделирование для неё также закрыто. Словом, на сегодня что-то она делает, но будущего у неё НЕТ. - Неандертальский, стало быть, путь.

В следующий раз разберём самое что ни на есть новое: межобъектные отношения в передовых объектных ГИС (каких, как я уже говорил, - мало. Из более-менее известных всего три. И две из них - отечественные. - Радуйтесь, россияне! По количеству объектных, но топологических ГИС мы обогнали Запад! Архитектура ArcInfo в той форме, как она существует сегодня, умрёт. Или должна быть переделана).

Развитие топологических межобъектных отношений в объектно-топологических ГИС Специалисты-картографы частенько противопоставляют друг другу топологические и объектные цифровые карты. Я здесь говорю "частенько", хотя требуется более жёсткая лексика, поскольку на самом деле такое противопоставление выполняется практически всегда. Может быть, так получилось потому, что объектные ГИС вначале появились в таких областях человеческой деятельности, которые были далеки от профессиональной картографии. Так MapInfo как наиболее яркий пример объектной, но нетопологической ГИС, по мнению грандов всегда как бы относилась к числу "слабеньких" худосочных непрофессиональных ГИС (эдакие "детские" настольные системы), а ей противостояла как бы крупная развившаяся именно на профессиональных картографических и экологических задачах система ArcInfo. Вот так и пошло, что именно "настольность" наиболее известной нетопологической ГИС и ПРИНИЗИЛА ту объектную суть, которая лежала в основе методологии MapInfo (если это можно назвать методологией). И произошло это при том, что линейно-узловая концепция - с самого своего зарождения являлась в действительности только отражением технологической слабости компьютерной техники 70-х годов. Именно отсюда архитектурно отсталые ГИС, к каковым нужно отнести системы семейства ArcInfo, поддерживают, во-первых, только пространственную топологию (без возможности строить топологические сети), а, во-вторых, из всех видов пространственных топологий поддерживает только одну - линейно-узловую, да и ту - весьма ограниченную, несущую отпечаток ограничений старых компьютерных технологий.

При этом ни объектные ГИС, ни ГИС с линейно-узловой топологией ничего не предлагают для решения задач, связанных с моделированием потоковых пространственных систем, где одной лишь пространственной топологии для адекватного моделирования совсем недостаточно (например, расчёты нестационарных процессов в трубопроводных системах выполнять не удастся). Я пока даже не говорю о том весьма, с моей точки зрения, надуманном ограничении в ArcInfo, как навязывание автору цифровой карты типа геометрии объектов, регистрируемых в одном слое. Имею ввиду то, что в системах семейства ArcInfo (отнесу сюда и отечественную систему GeoDraw) в одном слое могут быть представлены либо только точечные, либо только линейные, либо только полигональные объекты (с небольшими послаблениями). Значит, если мне захотелось в одном слое зарегистрировать (изобразить) и символьные, и полигональные объекты, то меня система заставляет создавать два слоя. Другими словами, на мои и так трудные проблемы с классификацией объектов в сложных (городских) средах, накладывается дополнительное ограничение, не имеющее никакого отношения к классификационным задачам и ничем серьёзным не обоснованное.

Таким образом, исторически сложилось, что топологическими стали называть те ГИС, которые поддерживали только линейно-узловую топологию, потому что других и не было. А ГИС, в которых была реализована объектная концепция, стали называть "объектными", а потом, поскольку объектные ГИС развивались без желания ввести в свою архитектуру топологические структуры и операции, как-то по привычке вообще приписали им неспособность работать с топологическими конструкциями. На самом же деле, объектность - значительно более продуктивная концепция, чем линейно-узловая, именно в области топологических задач, и у неё много более сильный потенциал, который сегодня - в пору развития объектно-ориентированных идей в области информатики и моделирования, начинает вставать во весь рост. Существующее положение с проблемой топологии цифровых карт только подтверждает детский возраст геоинформатики, - когда ещё много чего не устоялось, и большое число специалистов неодинаково понимают фундаментальные понятия в области, где они работают.

Уже в заголовке данного подраздела мы с вами ввели пока ещё новое понятие "объектно-топологические" ГИС (ОТГИС), чтобы подчеркнуть то свойство, которое многие вообще долгое время не относили к объектным ГИС, да и сейчас не относят. Этим свойством и является поддержка межобъектной топологии, которая в подавляющем большинстве объектных ГИС пока не реализована.

Оговорюсь, что концепцию объектно-топологических ГИС, которую я попробую скороговоркой описать ниже, почти никакая ГИС из широко представленных на рынке России, пока не может поддержать (в том числе и никакая западная). И это при том, что крайнюю потребность в ней ощущают все "наиболее прогрессивные силы" пользователей. По-моему, только производители ГИС этого почти не чувствуют. Но не следует пугаться; в России подобные интересные развитые системы уже появляются.

Поставим перед собой задачу не просто отобразить карту, а сделать ударение на моделировании жизненных циклов различных систем на территории города. Тем самым, мы уйдём от диктата ограниченного картографического подхода к подходу системному, для которого картографические произведения - частная вещь. Сначала нужно понять широкую задачу, решаемую на территориях, тем более, что ради её решения и придуманы ГИС. А уже потом можно беспокоиться о том, чтобы отобразить эту территорию так, как требует Роскартография. А у нас, как и всё в стране, оставлено с ног на голову (или телега впереди лошади - кому как нравится).

Для того, чтобы адекватно описывать реальность, одних картографических подходов со своим приматом изобразительности явно недостаточно. В сферу более широкого обзора нужно включить не просто пространственные топологические отношения между объектами. Традиционное манипулирование термином "топоотношения" позволяет нам манипулировать только СТАТИЧЕСКИМИ бинарными отношениями соседства, вложенности, примыкания к границе и т.п. Т.е. это банальная статическая картинка, свойственная мелкомасштабным картам, где, если что и меняется, то в таком масштабе времени, что человеку можно редактировать изменения на карте даже не каждый день; так редко это происходит в расчёте на 1 кв.км. А вот как же быть с динамикой?

  • когда достаточно большое количество объектов на карте могут перемещаться и менять форму достаточно часто? При этом нужно, чтобы топологическая корректность картографических конструкций СОХРАНЯЛАСЬ непременно, иначе начнут появляться "дырки" в пространстве, никому не принадлежащие и о балансе площадей можно будет только мечтать.

  • когда нужно анализировать не только пространственное распределение некоторых характеристик (та же статика), но и движение ресурсных потоков через объекты, которые нарисованы на карте: транспортные, вода по трубам, газ, электроэнергия по проводам, канализация и др.?

Тут одними традиционными топологическими пространственными отношениями обойтись невозможно. Нужно вводить понятие топологической ресурсной связи. Собственно, прилагательное "топологическая" в последнем случае - это масло масляное. Понятие связи часто предполагает топологичность, хотя и не всегда. Однако, чтобы показать некоторую родственность между указанными двумя понятиями, оставим, всё как есть.

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

  • Уже известные Топологические пространственные отношения [ТПО] (для того, чтобы помечать чисто традиционные пространственные отношения между представленными на карте объектами, а также сохранить некоторую преемственность с такими архитектурно старенькими ГИС, как ArcInfo, MGE, GeoDraw и т.д.). Только статические топоотношения, с которыми работают указанные системы, нам нужно сделать ещё и динамическими, а то как-то странно рассматривать только частный случай топоотношений. (И не знаю, право, как в ESRI обходятся для ArcInfo только одной такой узостью, как статическая линейно-узловая топология!? И на этом много денег зарабатывают! - Прямо кудесники! Или шарлатаны, пользующиеся доверчивостью пользователей. Или это только в России себя так ведут их дилеры.

  • Топологические пространственные ресурсные связи [ТПС] - они тоже обязательно "пространственные" и нужны для того, чтобы дать возможность представлять на территории объекты, связанные в топологические ресурсные сети, по каналам которых текут различные ресурсы (например, в инженерных коммуникациях).

  • Уже известные Объекты - ну, это понятно! Я уже много страниц написал по поводу этого понятия. Без автономного объекта мы так далеко уходим от системного подхода, что это кажется пугающим, как перемещение Парк юрского периода. Каждый в своей жизни имеет дело с относительно автономными объектами, сохраняющими свою определённую независимость от окружения. Таковы хотя бы мы с вами, дома, в которых мы живём, машины, в которых ездим, трубы, по которым текут наши … хм!

Попробуем немного формализовать понятие объекта (для строгости изложения). А то, ведь, что только объектом не называют у нас в информатике!

Однако, формального определения понятия "объект" на все случаи жизни нет. Тогда приходится определять понятие через перечисление свойств, которыми мы наделяем сущность, обозначаемую этим понятием.

Итак, у нас объект - это средство структурирования реальности, обладающее следующими свойствами:

  • объект состоит из взаимосвязанных элементов (или частей). Связи частей объекта между собой сильнее связей с другими объектами, - внешними по отношению к данному;

  • элементы объекта не могут иметь независимое друг от друга "время жизни", т.е. они создаются и уничтожаются одновременно кроме случаев реструктуризации объекта в результате действия законов его формообразования, не нарушающих целостности (это требование делает понятие "объекта" Уже, чем понятие "система");

  • к объекту адресуются как к единому целому, а не путём индивидуальной адресации его отдельных частей;

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

Мы выше говорили не только о топоотношениях, но и о топологических ресурсных связях. Дадим определения ТПО и ТПС поточнее:

ТПО - это пространственные топологические отношения в рамках традиционных ГИС-технологий. ТПО в ГИС могут устанавливаться автоматически системой или явным образом самим оператором. ТПО отражают лишь пространственные отношения близости и взаиморасположения в пространстве объектов или их частей (слева, справа, внутри, близко, далеко и т.д.)

ТПС - это такие ТПО, которые кроме обозначения пространственных топоотношений несут дополнительную функциональную "нагрузку" - отражают расположение в пространстве реальных физических каналов передачи вещественных, энергетических и информационных ресурсов через границы объектов, отражаемых на цифровой карте. Другими словами, ТПС отражают ресурсные потоки на территории города и являются основой, например, для представления топологии моделей сетевых коммуникаций, в которых протекают физические процессы. ТПС устанавливаются, разрываются или преобразуются в ТПО либо явным образом самим оператором, либо динамически моделирующими программами, работающими среде ГИС.

ТПО могут преобразовываться в ТПС и наоборот, если иметь в виду только пространственный аспект этих связей. Исключением являются внутренние ТПО объекта, которые в общем случае не преобразуются в ТПС, т.к. почти всегда обозначают только границы объекта, ортогональные потокам ресурсов из\в объект.

Чтобы немного поразвлечься (а то нам далее придётся погрузиться в философию), покритикуем хвалёные рыночные ГИС:

  • ГИС с линейно-узловой топологией бесполезны при создании топопланов городов, на которых пользователям захочется помоделировать физические процессы, протекающие в инженерных коммуникациях. Они крайне неэффективны и для работы со сложными объектными и динамическими картами (муниципальные карты), т.к. редактирование в таких ГИС - очень неудобная операция; работать здесь приходится только на "микроуровне" - с точками (узлами) - и при этом невозможно не затронуть как сам редактируемый объект, так и соседние, топологически с ним связанные.

  • Для инженерных коммуникаций нужно, чтобы система поддерживала кроме ТПО ещё и ТПС. А для удобства редактирования объектных карт требуется развитая объектная (и топологическая) ГИС со способностью сохранять ТПО и ТПС во время редактирования карт (не заниматься же всё время разрыванием и последующим повторным наведением топосвязей! - Да и ошибок рождается тогда очень много).

Так что ГИС ГИС'у рознь!

Пойдём теперь в философию, что определяется нашей неудовлетворённостью одними лишь ТПО, а также чтобы обосновать нашу страсть к ТПС и относительно автономным объектам. И поможет нам затравкой к этой теме неосторожное высказывание специалистов из ЦГИ ИГРАН. Высказывание касается фундаментальной ошибки - противопоставления топологичности и объектности цифровых карт. Это показывает, что с топологией в объектных ГИС имеет место прямо-таки удивительная заковыка; далеко не все картографы и географы о ней что-либо знают. Например, специалисты ЦГИ ИГРАН (те, кто разработали ограниченную отечественную копию ограниченной американской ГИС ArcInfo - систему GeoDraw\GeoGraph) вообще считают, что цифровая карта “может быть топологической и объектной (нетопологической)” [см. статью в Информационном бюллетене ГИС-ассоциации №4(6), 1996г.]. Так думают специалисты, руководитель которых входит во все мыслимые советы ГИС-ассоциаций, относящий себя к крупным экспертам в области ГИС-технологий, ездящий по регионам и учащий далёких от столицы туземцев, как надо писать слово "ГИС" без ошибок.

Конечно же, приведённое выше высказывание о противопоставлении объектной цифровой карты и топологической цифровой карты просто неправильно.

Тезис об альтернативе между "топологичностью" и "объектностью" в цифровых картах очень схож с давним противопоставлением корпускулярной и волновой моделей света в физике. Мы хорошо знаем, как разрешился корпускулярно-волновой дуализм; концепции объединились в рамках более широкой концепции (теории), показав, что в физических экспериментах мы можем наблюдать некую неизвестную нам сущность в двух ипостасях ТОЛЬКО ПО ОТДЕЛЬНОСТИ - либо потока корпускул, либо распространяющейся волны. И происходит это от нашего недостаточного развития (современной парадигмы) и концептуального несовершенства приборов.

Топологическая концепция - это аналог волновой модели света, а объектная НЕтопологическая концепция - это аналог корпускулярной модели. Две крайних (противоречивых) позиции налицо. Пора их объединять.

В НОВОЙ цифровой картографии, которую мы здесь с вами амбициозно формируем

  • "объектность" отражает то, что цифровая карта состоит из более или менее чётко выделяемых на территории относительно автономных объектов (подход MapInfo);

  • "топологичность" (традиционная пространственная) отражает тот факт, что объекты стоят друг к другу "плечом к плечу", и между ними нет "ничьего" пространства, причём можно сказать, не глядя на изображение карты, с кем они стоят рядом (подход ArcInfo);

  • "ресурсная связность" отражает тот факт, что эти объекты взаимодействуют между собой, передавая через свои границы РЕСУРСЫ. (Эту задачу стараются решить AM\FM-системы, "поддерживающие функции автоматизированной картографии и ГИС в приложении к управлению сетями предприятий коммунального хозяйства (газовыми, водопроводными, электро- и телекоммуникациями)". Но зато (опять же, в силу своей молодости) эти системы плохо поддерживают картографический аспект задачи. Карту они изображают некузяво; Роскартографии явно не понравится. AM\FM системы (особенно отечественные) работают в основном с пространственными схемами, а отображать карты и топопланы в соответствии со всеми требованиями Роскартографии - для них тяжёлая задача.

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

В приведённом выше перечислении "трёх источников и трёх составляющих" интегрированного подхода два последних отражают близкие понятия. Поэтому ниже мы их будем объединять под одной вывеской - "Связи".

"Объекты" и "связи" - это не "наезжающие" друг на друга понятия. И не альтернативные. Они - взаимодополнительные. Другими словами, сегодня - в эпоху первых шагов геоинформатики - мы наблюдаем на ГИС-рынке проявления детского максимализма первых геоинформатизаторов, которому свойственны крайности. Одна из них - это подход ArcInfo, гиперболизирующий роль границ (непрозрачных для ресурсов!), на основе которых строится всё остальное, в том числе путём перебора границ - несамостоятельные статические объекты, которые НЕ ИМЕЮТ ДАЖЕ СВОЕЙ АВТОНОМНОЙ ФОРМЫ!

Другой крайностью (в MapInfo) является примитивный объектный НЕтопологический подход, напротив, гиперболизирующий автономность объекта и не признающий ни топоотношений, ни каких-либо ресурсных связей между объектами.

Встаёт вопрос: "А есть ли модель, которая интегрирует в себе наблюдаемый в реальности объектно-связной дуализм, отсутствующий в широко известных ГИС? Ведь преимущества использования ТПО и особенно ТПС между объектами очевидны! А на крупномасштабных муниципальных топопланах особенно видны и преимущества объектного взгляда на модель местности". Ответ следующий: "Такая модель есть!". Не нужно очень много размышлять, чтобы убедиться в том, что оба подхода при объединении в единую концепцию демонстрируют явный синергизм. Собственно говоря, весь системный подход (и его упрощение - объектно-ориентированный подход) построены на дуализме пары "объект-связь". Не надо далеко ходить; мы все изучали марксистско-ленинскую философию. Западу здесь крупно не повезло с основоположниками. Так вот, философия с момента своего зарождения утверждала, что есть объекты и есть связи между ними, обеспечивающие взаимодействие этих объектов. Кто не взаимодействует со своим окружением, тот принципиально НЕНАБЛЮДАЕМ в этом мире, поскольку наблюдение возможно только путём взаимодействия органов чувств с потоками материи (полями в т.ч.), идущими от наблюдаемых объектов по ресурсным связям. Можно ещё вспомнить для весомости заявлений один из фундаментальных философских принципов о всеобщей связи объектов и явлений. Его формулировали лучшие умы человечества не для того, чтобы он остался в философских книгах и там тихо зачах. Возродим его в новых ГИС и новой цифровой картографии.

Разделение реальности на объекты и связи - условная операция, зависящая от уровня рассмотрения и критериев выделения их из окружающей среды. (Тут мы, наконец, вторгаемся в область системных философствований). Действительно, то, что мы называем самостоятельными объектами, - это Нечто, что сохраняет свою структуру даже при достаточно сильных внешних воздействиях. А если и перемещается, то делает это обычно как единое целое (со старательным сохранением формы). Связью же является то, что выполняет на данном уровне рассмотрения в основном транспортные функции по передаче ресурсов между объектами (преимущественно без преобразования ресурсов), причём канал передачи ресурсов относительно неустойчив и легко может изменить свою пространственную направленность под внешним воздействием.

Если теперь рассмотреть объект под "микроскопом" - перейти на другой уровень подробности рассмотрения объекта, - т.е. декомпозировать его модель, то окажется, что объект снова представляется как совокупность более мелких объектов и - как ни странно будет для картографов-экологов - вдруг появившихся новых мелких РЕСУРСНЫХ СВЯЗЕЙ. А связи, если их также разглядеть скрупулёзно и хорошо вооружённым глазом, оказывается, представляют из себя не что иное, как совокупность более мелких ОБЪЕКТОВ, просто текущих единым потоком в некотором направлении. Таким образом, переходя с одного масштабного уровня рассмотрения на другой, мы видим, что объекты "состоят" из микросвязей и микрообъектов, - а связи "состоят" из… - тоже микросвязей и микрообъектов, которые подвижны, а траектории их могут быть неустойчивы. На следующем масштабном уровне картинка может смениться с точностью до "наоборот". Вот такое взаимопревращение объектов и связей В НАШЕМ МЫШЛЕНИИ (и только в нём!) при межуровневых переходах.

Этим я хочу сказать, что ОБЪЕКТЫ и СВЯЗИ - две стороны одного и того же, различаемые нами по-отдельности только в силу нашей несовершенной системы вИдения мира и необходимости определить почётче границы между сущностями и обозначающими их понятиями. Такая необходимость определяется тем, что

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

б) мы манипулируем всё-таки МОДЕЛЯМИ в своём мышлении, а любая модель - беднее оригинала, - т.е. модель, сформированная из информации, поставляемой мозгу нашими слабыми органами чувств, потому становится беднее оригинала, что наши органы чувств и ограниченные знания задают определённый "порог чувствительности" при восприятии бесконечно богатой окружающей реальности. Наши органы чувств (приборы) и малопроизводительный в операциях анализа мозг, не способны воспринимать реальность одновременно на всех масштабах и сразу во всех аспектах (эх, совсем я не уважаю человека!). Поэтому мы с вами вынуждены разбивать многомасштабную реальность на уровни иерархии, чтобы на каждом уровне рассмотрения привести количество параметров модели в соответствие с возможностями нашего мышления и иметь возможность хоть как-то поанализировать реальность и попрогнозировать её эволюцию.

Реальность же локально "оформлена" в виде систем, представляющих собой переплетённый клубок устойчиво или неустойчиво движущихся на всех масштабных уровнях потоков энергии, вещества и информации (материи). Устойчивые потоки с преобразованием ресурсов мы видим как структуру (связанные объекты), а неустойчивые транспортные потоки - как связи.

К чему я всё это говорю, когда речь идёт, вроде бы, о ГИС?

Во первых, для того, чтобы показать, что ГИС СЕГОДНЯ НЕЛЬЗЯ ОТДАВАТЬ НА ОТКУП КАРТОГРАФАМ, И УЖЕ МАЛО РАССМАТРИВАТЬ ЕЁ В КАЧЕСТВЕ УБОГОГО ВЬЮЕРА РАЗУКРАШЕННОЙ СТАТИЧНОЙ ФОТОГРАФИИ ТЕРРИТОРИИ. ЕЁ ПОРА РАССМАТРИВАТЬ КАК СИСТЕМУ, МОДЕЛИРУЮЩУЮ В ДИНАМИКЕ, НИ БОЛЬШЕ НИ МЕНЬШЕ, КАК САМ КОСМОС (с большой буквы). А представленные сегодня на рынке ГИС, расхваливаемые продавцами, - это довольно сложные, с некоторыми аналитическими способностями, но по сути дела, всё-таки, именно вьюеры! (Без картографии, впрочем, тоже не обойтись).

Во-вторых, потому, что хочется показать, что объекты и топотношения нельзя противопоставлять друг другу; они друг без друга не существуют, поскольку традиционные кругом звучащие топотношения не имеют, как ни странно, НИКАКОГО ОТНОШЕНИЯ к объектам. Топоотношения возникают только от того, что отражают свойства метрического пространства. И поскольку объекты в нём "купаются", то им не остаётся ничего, чтобы не побывать друг с другом в пространственных топоотношениях. И тут, следовательно, такие простейшие ГИС, как MapInfo, не правы, игнорируя необходимость представления во внутренних структурах данных (модели территории) топоотношений и связей между объектами. Таким ГИС остаётся заниматься только паспортизацией безгранично автономных ни с кем не связанных объектов. Гиперболизация одной из сторон объектно-топологических представлений сразу ведёт к принижению роли другой, а отсюда - к ущербности модели, становящейся ещё менее АДЕКВАТНОЙ реальности. Гиперболизация линейно-узловой топологической модели - это преувеличение роли пространственного расположения объектов в ущерб объектно-связным конструкциям. И вот те на!.. - динамичные объектные среды с множеством ресурсных потоков, к каковым относятся городские территории, приходится описывать, используя неадекватный задаче моделирующий инструмент.

А гиперболизация нетопологической объектной модели наоборот ведёт к преуменьшению роли пространственных топоотношений (взаиморасположения) между объектами, - и опять имеют место трудности; взаимодействующие системы мы удовлетворительно описывать не можем.

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

А сейчас я, распалившись, вообще скажу жуткую крамолу. Боюсь даже, что меня подвергнут "острому кизму" в первую очередь защитники ArcInfo. А подчеркну я то, что в предыдущем абзаце при совместном рассмотрении "объектности" и "топологичности" под топологией я вообще не имел ввиду никаких линейно-узловых топологических отношений. И вообще их не вижу как класс - как сколько-нибудь значимые для геоинформатики понятия, т.к. во-первых, они - только пространственные, а этого мало, т.к. ресурсные потоки ими не охватываются, а во-вторых, - и это главное - их появление в геоинформатике отражает не необходимость для практики или удобство моделирования, а только лишь первобытное стремление сэкономить память компьютера и время процессора. К тому, чтобы получить возможность адекватно описывать реальность, этот вид топологии не имеет НИКАКОГО ОТНОШЕНИЯ, - В НЁМ НЕТ НИ МАЛЕЙШЕЙ НЕОБХОДИМОСТИ И ОН ПРОСТО ДОЛЖЕН ОТМЕРЕТЬ ЗА НЕНАДОБНОСТЬЮ!

С моей точки зрения, годы линейно-узловой топологии как значимой концепции СОЧТЕНЫ. Она ещё останется для выполнения некоторых видов пространственного анализа, но как ВНУТРЕННЯЯ СТРУКТУРА ДАННЫХ, на которых строится вся архитектура ГИС, - ИСЧЕЗНЕТ! И ArcInfo в своей нынешней форме должна помереть (вот каркаю так каркаю!). И не следует обожествлять линейно-узловую топологию, как это с гордостью приобщённых к тайне делают представители ЦГИ ИГРАН. По той же причине, что и ArcInfo, система GeoDraw или должна быть принципиально переделана, или исчезнуть с рынка. Ну, может быть, на ней будут рисовать контурные карты континентов для пятиклассников.

Таким образом, мы в ближайшее время будем наблюдать трагедию долго продержавшейся и дряхлой концепции, когда линейно-узловая архитектура системы была придумана не под задачу, а подогнана под ограничения имеющегося инструмента (малая и дорогая память компьютера, дорогой и малопроизводительный процессор). В таких случаях всегда получается очень плохо; инструмент в результате развития технологий неудержимо совершенствуется и ограничивать развитие самой системы начинает уже не он, а архитектура самой программной системы. ArcInfo со своей методологией застряла на раннем этапе развития геоинформатики и представляет собой сегодня определённо тупиковый путь развития. Если в ESRI этого ещё не поняли, - значит там сидят не толковые эмигрировавшие россияне, а какие-нибудь коренные калифорнийцы, которые не "зрят в корень" по причине отсутствия в их народе такого мудреца, как Козьма Прутков о трёх головах. (Парфёнов говорит, что ESRI & brothers читают нашу конференцию. - Пусть их хватит кандрашка, и они пожалеют на всю жизнь, что стали нас прослушивать).

Если разработчикам отечественных МГИС удастся реализовать интегрированную объектно-топологическую модель (а это уже случилось), тогда не будет таких задач (на любых масштабах представления реальности), которые бы такая модель не смогла охватить. Вот отсюда и идёт идеальность МГИС как самой способной из всех ГИС. Да что "ГИС"! - Систему, реализующую методологию, способную в потенциале адекватно моделировать реальность, нужно называть уже иначе, чем "ГИС" чтобы никто не дай бог не подумал, что это что-то близкое к картографической системе! Может быть, это и есть "МИС"? Тоже нет. Новой ГИС одного города мало. Может быть, назвать "ТИС" - территориальная информационная система? Тоже как-то обыденно для интегрального подхода. Как же назвать-то?


Внутренняя структура данных объектно-топологической ГИС

 

Теперь пора обратиться к рассмотрению внутренней структуры данных объектно-топологической ГИС, показанной на рисунке 4.
 

wpe9.jpg (22237 bytes)

На этом рисунке приведена внутренняя структура двух расположенных рядом простых полигональных объектов, которую мы изображали ранее на рисунке 1. Однако, теперь она дополнена таблицей, в которой зарегистрированы топологические отношения между объектами (за счёт ссылок на их топологически связанные части). Конечно, в реальности структуры объектных топологических отношений значительно сложнее организованы в памяти компьютера, чем показано на рисунке 4, но сейчас это не главное.

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

 

В чём прелесть такой организации данных?

  1. Объектно-топологическая ГИС может позволить рисовать карты так, как любят те, кто привержены нетопологическому объектному подходу (как в MapInfo). Для этого нужно только не создавать топологические связи - и таблица отношений будет пустой.

  2. Объектно-топологическая ГИС может позволить рисовать карту так, как предпочитают те, кто любят или вынуждены устанавливать традиционные топологические пространственные отношения между объектами. Ну а, если в ГИС реализовано сохранение топологических отношений при перемещениях или редактировании формы объекта, то это будет вообще очень круто (см. ниже о "жёстких" и "гибких" объектах).

  3. Объектно-топологическая ГИС позволяет реализовать любые другие типы топологических и нетопологических(!) отношений. Для этого она должна только заполнять поле "тип отношения" в таблице отношений и реализовывать соответствующие операции. Так можно охватить и традиционные топоотношения, и концептуальные топоотношения, и динамические топоотношения, и топологические ресурсные связи. Фантазия разработчика и благодаря ему - пользователя - может не иметь границ.

Что отрицательного имеется в объектно-топологической ГИС с точки зрения приверженца ArcInfo, так это расточительная трата памяти компьютера и времени процессора. Не будем скрывать, - это так. Но те, кто создаёт объектно-топологические ГИС, не позволяют себе опуститься до экономии на памяти компьютера В УЩЕРБ ЗАДАЧЕ, справедливо считая, что память дешевеет жуткими темпами, а процессоры "быстреют" не менее стремительно. И, следовательно, нет смысла выворачиваться наизнанку и наступать на горло своей идее, подгоняя её под прокрустово ложе неэффективных структур данных. Главное - удобная и полная реализация идеи под решаемую задачу. А, если задача - масштабная, то под неё и компьютеры будут сделаны такие, какие нужно. Да и пока программист героически борется за то, чтобы увеличить быстроту отрисовки карты на экране на 15% и тратит на это 5 месяцев своей жизни, процессоры увеличат свою производительность процентов на 40, а типичная память компьютера увеличится в два раза, - тоже увеличивая производительность системы.

Да и архитектурными решениями объектно-топологическую ГИС можно сделать такой быстрой, что это удивляет даже тех, кто работает на ГИС, поддерживающих только линейно-узловую топологию. Сегодня средства разработки ПО настолько хороши, что можно заниматься архитектурными изощрениями самозабвенно и что самое хорошее - эффективно.

А вообще говоря, я не вижу недостатков в объектно-топологических ГИС супротив традиционных топологических и простых объектных систем, кроме достоинств.
Я пока ничего не сказал о ТПС. Пусть это останется на потом…


Межслойные топологические отношения между объектами (межообъектные топологические отношения между объектами разных слоёв)

 

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

В традиционных ГИС типа ArcInfo, ArcView и в их братьях меньших типа GeoDraw, с межслойными топоотношениями дела обстоят плохо. Точнее - никак не обстоят. Их там просто нет (только в рамках покрытия). Есть какое-то расширение в WS ArcInfo, но такую ГИС приходится приобретать за 20-30тыс.долл. за одно рабочее место. И это при всех слабых возможностях их при работе с муниципальными задачами! Тут и не знаешь, кто более не в своём уме - те, кто продают систему или те, кто её покупает. Может быть, при отображении бескрайних калмыцких степей, а также тихих и буйных океанов это не так уж нужно, но в городских условиях установление межслойных топологических отношений, а тем паче - ТПС, просто необходимо. Без этого нельзя моделировать физические процессы в коммуникациях. Объекты слоя "водопроводные трубы" не удаётся подвести к объектам слоя кирпичных домов, объектам слоя водоисточников, электрических подстанций (там тоже вода нужна - пожары тушить) и т.д. Да и просто инженерные коммуникации; трубу, например, не соединить топологически (а ещё лучше - ресурсной связью) с задвижкой, которая находится в другом слое. Приходится изворачиваться.
В указанных ГИС существует только линейно-узловая топология, и она аж "прошита" в виде внутренних структур данных, поэтому они в городе не нужны для решения серьёзных задач.
Ни в одной из картографических ГИС нет понятия ресурсных связей (ТПС), т.к. они эту проблему НЕ РАЗЛИЧАЮТ. Инженерные коммуникации моделировать с их помощью нельзя. Этим занимаются AM\FM системы. Но, как я уже говорил, у большинства из них есть проблемы с картографией. Её ущемлять тоже нельзя; картографов в стране много - убьют напрочь! - И правильно сделают.


Концептуальные топологические отношения

 

Концептуальные топологические отношения (КТО) устанавливаются не между экземплярами объектов, а между их классами. Здесь я просто приведу текст статьи специалистов нашего предприятия в ИБ ГИС-ассоциации по этой теме:

"Авторы далеки от мысли, что ввели новое понятие в науке, поскольку в предметных областях, не относящихся к картографии, концептуальные отношения активно используются. Тем не менее, нам не удалось увидеть реализацию концептуальных отношений в известных ГИС, а в периодических ГИС-изданиях - упоминания об этом классе отношений (хотя некоторые “логические” контролирующие отношения на уровне элементарных классов (слоев) используются, - например, в дополнительных модулях к ArcInfo, - [Инф. Бюллетень ГИС-ассоциации №2(4) 1996г., стр.17]).

Хорошо известен традиционный подход к установлению топологических отношений, реализованный в топологических ГИС. Однако, он распространяется только на примитивы или экземпляры объектов. Это объясняется тем, что широко представленные на рынке ГИС не являются объектно-ориентированными. В объектно-ориентированных системах мы имеем дело не только с экземплярами объектов, но и с их классами, причем эти классы связаны в многоуровневые конструкции путем реализации механизма наследования свойств.

Для объектно-ориентированных ГИС, которым уже пора дать свою аббревиатуру - ООГИС - можно было бы ввести понятие концептуальных топологических отношений (КТО), распространяющих топологические отношения на классы объектов. В пределе, - когда осуществляется переход от класса (т.е. множества однотипных объектов) к их экземплярам, - КТО вырождаются в традиционные топологические отношения. КТО образуют многоуровневую систему, поскольку определяют связи между классами, также образующими многоуровневые конструкции.

Полезность использования КТО в ГИС состоит в следующем:

  1. Появляется возможность при реализации КТО освободить пользователя от необходимости самому следить за тем, чтобы не ввести ошибки во взаимное расположение объектов разных классов на карте. Например, в качестве некоторых КТО можно ввести следующие:

  • объекты класса “здания” не должны пересекать границы объектов класса “земельные участки”;

  • объекты класса “здания” не могут накладываться на объекты классов “лес” или “река”;

  • объекты класса “квартал” образуют топологически связанную группу с объектами классов “сегмент улицы” и “перекресток”;

  • границы объектов классов “сегмент улицы”, “перекресток”, “лесной массив” (и т.п.) должны совпадать (быть топологически связанными) с границами объектов класса “земельные участки”;

  • изображенная на карте энергетическая подстанция из соответствующего класса была обязательно подключена к соответствующей кабельной сети, а колонка водопроводной сети - к водоводу;

  • и др.

Задание подобного рода “разрешительных” или “запретительных” отношений между классами объектов, позволяют ООГИС непрерывно следить за действиями пользователя и давать ему рекомендации непосредственно в процессе создания электронной карты.

  1. Реализации КТО может помочь автоматизировать процесс построения объектов некоторых классов. Например, когда границы объектов одного класса определяются через границы объектов другого класса (например, “сегменты улиц”, “перекрестки” и “кварталы”), то нарисовав слой кварталов, пользователь может дать команду для ООГИС автоматически создать слои “сегментов улиц” и “перекрестков”, поскольку они по определению размещаются между кварталами (“перекрестки” - между смежными сегментами улиц). При этом система сразу установит все необходимые топологические отношения между экземплярами этих объектов.

Наряду с КТО в ГИС могут устанавливаться логические отношения между объектами и классами объектов, которые не имеют отношения к пространственным связям. Фактически эти логические отношения фиксируются в семантических таблицах - каждый столбец таблицы есть логическое отношение. Логические отношения не следует путать с КТО.

Таким образом, создание электронной карты, по-крупному, может состоять в создании а) многоуровневой системы слоев; б) установления между этими слоями (классами) концептуальных топологически отношений; в) рисования электронной карты с контролирующим и помогающим в работе участием со стороны ГИС.


Гибкие топологические связи.

 

В известных нам топологических ГИС, топологические отношения, установленные между объектами, при редактировании последних (изменение формы) или при их переносе приходится разрывать, а после окончания операции опять восстанавливать. Это представляется несколько неудобным, поскольку в этом случае операция редактирования потенциально способствует возникновению ошибок, которые пользователь может забыть исправить (например, восстановить утраченные топологические связи). В современной ГИС целесообразно было бы сохранять установленные топологические связи при редактировании карты тогда, когда это возможно. Так в муниципальной ГИС (МГИС) “ИнГео” реализован механизм непрерывного поддержания топологической корректности электронной карты как во время создания объекта (например, полигон не требует замыкания, поскольку он сразу таковым и создается), так и для режимов редактирования объектов (изменения формы) или их переноса. Для этого часть слоёв объектов объявляются как состоящие из “гибких” объектов, а часть, как состоящая из “жестких” объектов. “Гибкие” объекты могут изменять свою форму, если изменяется форма соседнего топологически связанного с ним объекта (возможно из другого слоя)), а “жесткие” объекты форму изменять не могут, хотя допускается их перенос с сохранением формы вслед за изменением соседнего топологически связанного с ним объекта. Указанная технология позволяет работать и в рамках традиционной линейно-узловой топологии, изначально и навсегда являющейся в рамках приведенных понятий “жесткой” моделью, так и в рамках смешанной методологии, - вплоть до полностью “гибкой” сети объектов. Реализованная в МГИС “ИнГео” расширенная топологическая концепция позволяет, установив топологические отношения между объектами (или между частями объекта), редактировать эти связи лишь в тех случаях, когда это действительно необходимо; появился новый объект, который нужно “встроить” в существующую топологическую сеть объектов, либо был уничтожен старый объект и необходимо установить новые топологические связи между оставшимися объектами, или же объект изменил свою форму путем добавления новых узлов или рёбер - тогда нужно связать вновь появившиеся узлы с соседними объектами.

Аналогией полностью “гибкой” сети объектов может выступать обыкновенная мыльная пена; изменение формы одного объекта происходит за счет изменения формы соседних пузырьков. При этом отношения между ними остаются неизменными - до тех пор, пока не нарушится равновесие и один или несколько соседей не лопнут или не “всплывет” новый. Тогда нужно установить некоторые дополнительные связи.

Другими словами, приведенная выше концепция топологических отношений упрощает работу пользователей и является более “дружественной” и надежной, поскольку не заставляет пользователя работать на уровне примитивов тогда, когда идёт работа с объектом как целым".

В этой статье говорилось об Объектно-ориентированной ГИС, но о них мы пока говорить не будем.

Псевдотопология в ГИС Псевдотопология, похоже, синонимична термину "очковтирательство". Хотя зловредного очковтирательства здесь, пожалуй, нет. Вся проблема в том, как понимают понятие "пространственная топология" специалисты разных коллективов. Например, подавляющее большинство специалистов Роскартографии понимают её не так, как мы в этом документе. А суть вопроса состоит в следующем.

В некоторых ГИС под наведением топологии понимают присвоение одинаковых координат совпадающим пространственно узлам смежных объектов. Но во внутренних структурах данных какие-либо следы топологических отношений не фиксируются. Приведём рисунок с внутренними структурами объектных ГИС (рисунок 5). На этом рисунке приведены два полигона, у которых координаты двух рядом расположенных точек НЕ СОВПАДАЮТ (с некоторой погрешностью), хотя логически - в соответствии с исходным материалом, должны были бы совпадать. Это - непорядок в любой ГИС. Требуется точки Т2'1 и Т2'2 свести в одну. Топологические и объектные ГИС делают это по-разному. О топологических мы уже говорили, - создаются внутренние топологические структуры данных. В объектных НЕтопологических ГИС обычно выполняется так называемая операция "подравнивания" или "пристыковки", заключающаяся в том, что в ячейки T2'1 полигона F1 и Т2'2 полигона F2 просто ЗАПИСЫВАЕТСЯ одно и то же значение координат Х,У. Тогда мы получаем то же, что и на рисунке 1. Заметим, что никаких топологических связей при этом не устанавливается, а лишь "силой" присваивается одно и то же значение координат двум или нескольким точкам смежных объектов.
Рисунок 5
 

wpeA.jpg (13058 bytes)

Так вот разработчики, например, ГИС "Панорама" для Windows называют это "топологическими отношениями". На самом деле здесь просто путаются понятия топологии пространства и топологии конструкции. Действительно, точки соседних объектов делаются совпадающими (визуально). Но в памяти компьютера (во внутренних структурах данных цифровой модели местности) всё равно остаются ДВЕ ОТДЕЛЬНЫХ - независимых - ТОЧКИ! Можно выбрать, например, полигон F2 и легко перетащить его на другое место, как всё ту же злополучную "спичку". Это и понятно; никаких топологических связей, "склеивающих" полигоны в топологическую конструкцию, НЕ БЫЛО, а сама ГИС практически не поддерживает операции поддержания топологической корректности цифровой карты (см. ниже о виртуальной топологии). Следовательно, никакая топология при подравнивании не наводилась. Вот это я и назвал выше "псевдотопологией". А многие специалисты из Роскартографии и ВТУ МО думают иначе.

Интересно, что те, кто продвигает ГИС "Панорама" в регионах, уверенно говорят, что в "Панораме" реализован механизм установления топологических отношений между объектами. Кто-то, может быть, помнит нашу резкую дискуссию в телеконференции relcom.gis с Александром Сергеевым, директором "Эпсилон Технолоджис" по поводу "Панорамы", которую они используют в качестве ГИС-ядра в своём Internet-сервере Baikonur GIS Toolkit. Сергей считает "Панораму" топологической ГИС. Тогда мне ставилось в упрёк, что я просто основывался в своих суждениях на анализе "Панорамы" для MS DOS, а вот в новой "Панораме" для Windows - дескать - топология реализована. Так вот, я её не нашёл ни в самом продукте, ни в документации. Всё так же объекты на цифровой карте расползаются, когда переносишь объект в другое место.

Правда, в "Панораме" теперь введена операция переноса "общего" "топологического" узла, что упрощает редактирование подравненных друг к другу точек. Это нужно понимать так, что, если я тыкаюсь мышкой в ту область, где сведены (подравнены) несколько точек с одинаковыми координатами, то при переносе этого узла, формы всех объектов, которые имеют эти точки, изменятся одновременно и не нужно будет редактировать каждый объект в отдельности. Это удобно, но, конечно же, никакого отношения к операциям с топологически корректной цифровой картой это не относится, хотя некоторая видимость этого есть. "Панорама" как не была топологической, так ею и осталась.

Аналогично понимают топологию многие предприятия Роскартографии. Поэтому им очень трудно найти общий язык с теми, кто воспринимает топологическую систему объектов как совокупность взаимосвязанных "жёстких" и "гибких" конструкций, но - главное - не рассыпающуюся при редактировании и доступную для операций, поддерживающих в динамике корректную топологическую структуру цифровой карты.


Автоматическое "наведение" топологии в цифровых картах

 

Это как бы продолжение предыдущего подраздела.

Очевидно, что, если координаты подравненных точек совпадают, то можно было бы составить алгоритм, который, перебирая все точки объектов, выявляет среди них те, которые имеют одинаковые координаты. После чего в памяти компьютера создаются структуры данных, свойственные топологическим цифровым картам, - т.е. с явно установленными ссылками (как на рисунке 3). Полного совпадения координат и не требуется. Так в некоторых ГИС, если в систему извне загрузился файл с картой, например, в нетопологическом формате MIF\MID, или, если цифрование планшета дигитайзером создало в памяти пока ещё нетопологическую структуру данных, то можно запустить специальную операцию, указав с какой погрешностью рядом стоящие точки можно считать совпадающими, - т.е. претендентами на общие топологические узлы. После выполнения такой операции близко расположенные точки объединяются в одну, а в памяти строится топологическая структура данных (см. рис.3 или рис. 4).

Другими словами, цифровая карта с подравненными (дублями) точек может быть специальной операцией превращена в пространственную топологическую.


Виртуальная или процедурная топология.

 

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

То, что из нетопологической структуры данных (например, простейшей объектной - рис.1) можно за счёт выполнения некоторого алгоритма получить топологическую структуру данных цифровой карты, навевает мысль о том, что, может быть, и вообще не бороться за то, чтобы создавать всякие там линейно-узловые топологии в памяти? Например, хранить данные в нетопологическом объектном формате, а когда неудержимо захочется выполнить какую-нибудь операцию, требующую анализа топологических структур, запустить алгоритм построения топологической структуры, получив временную топоконструкцию для выполнения критичной к топологии операции. Затем программе можно провести нужные анализы и опять разрушить временные топоструктуры. Это ГИС может выполнять каждый раз самостоятельно, незаметно для пользователя - в фоновом режиме.

Действительно, многие операции, требующие обработки топологии, на самом деле локальные, - т.е. проводятся не над всей картой, а над её фрагментом. Поэтому топологию нужно будет перед аналитической или редактирующей операцией навести только для того участка, где требуется провести анализ. Такое наведение топологии называется построением традиционной пространственной топологии "на лету". И, - естественно, - временно. Так делать можно.
Спрашивается, а что мы достигаем этакого хорошего по сравнению с явно создаваемыми в памяти топологическими структурами? В первую очередь, это подчёркивает ту мысль, которую я уже высказывал ранее, - что линейно-узловая топология отражает не столько необходимость, ведущую пользователя к комфортной жизни, сколько стремление разработчиков ГИС в 70-х годах сэкономить память и время процессора.

Нельзя не согласиться, что традиционная топологическая ГИС мгновенно находит соседей объекта, поскольку во внутренней структуре данных общие с соседями точки уже известны (на них имеются ссылки от всех соседей). Но соседей можно найти и в нетопологической ГИС простым перебором объектов в некоторой окрестности (может быть, и немалой) вокруг избранного объекта. Сегодня процессоры удивительно проворны и могут "в лоб" перебрать тысячу-другую объектов за долю миллисекунды. Оператор, задав вопрос о соседях, ещё не успеет перейти на следующую свою мысль и сдвинуть палец с клавиши, как программа выдаст требуемый список.

А если задать вопрос о тех объектах, что находятся "справа" от выбранного объекта? - Та же ситуация.

Ещё пример:

Если вам вдруг захотелось передвинуть границы некоторого объекта, и чтоб при этом граница соседнего объекта сама "поехала" за ним (одно из проявлений топологичности конструкции), то это тоже делается путём нахождения всех соседей и согласованным изменением их формы при передвижке некоторых общих ПОДРАВНЕННЫХ(!) точек (достаточно подравнивания. Только я не говорю этим, что "Панорама" - топологическая ГИС).

Так вот, для всех этих операций, которые приводятся защитниками ГИС, построенных на линейно-узловой топологии внутренних данных, на самом деле использовать ЛИНЕЙНО-УЗЛОВУЮ топологию (ЛУТ) сегодня нет никакой необходимости. Хотя бы потому, что она очень усложняет операции редактирования сложных муниципальных карт. Тогда для чего она? Не знаю. Рад буду, если кто-нибудь объяснит. И вот интересно, - ESRI держится за эту топологию потому, что жалко отбросить то, чем занимались их разработчики целых два десятилетия? А ведь у нас в России среди некоторых коллективов распространено мнение, что ArcInfo - это архиразнаикрутейшая вещь именно из-за реализации ЛУТ. Некоторые (например, руководство ЦГИ ИГРАН) ездили по России и сбивали с толку людей в разных городах (в т.ч. в уфе), хихикая, когда видели нетопологические ГИС. А у нас даже была топологическая, только объектная, которую они просто не поняли.

Может быть, те, кто присутствует в телеконференции, придумают примеры задач, где линейно-узловая топология НЕОБХОДИМА и операцию нельзя выполнить "в лоб" - простым перебором некоторого ограниченного множества объектов. Полагаю, что БОЛЬШИНСТВО ОПЕРАЦИЙ, ТРЕБУЮЩИХ СУЩЕСТВОВАНИЯ ТОПОЛОГИЧЕСКИХ СТРУКТУР, НА САМОМ ДЕЛЕ МОГУТ БЫТЬ РЕАЛИЗОВАНЫ ПРОЦЕДУРНО.

Но сами топологические конструкции нужны. - Только построенные не на линейно-узловой концепции.

Впрочем, есть и существенное методологическое ограничение у методов виртуальной топологии. Так процедурным путём в общем случае нельзя навести ТОПОЛОГИЧЕСКИЕ РЕСУРСНЫЕ СВЯЗИ между объектами, поскольку этот вид топологии (ТПС) определяется не только пространственной составляющей, и для получения ТПС только анализа взаимного пространственного расположения объектов мало; они связаны в соответствии со схемой ресурсных потоков.

Хочу специально заострить ваше внимание: я ни в коем случае не стою за исключение ТОПОЛОГИЧЕСКИХ ОПЕРАЦИЙ с цифровой картой. Они обязаны быть! Я говорю только о том, что эти операции можно выполнить не на основе обработки явно сформированных линейно-узловых топологических структур в памяти, а, например, ПРОЦЕДУРНО в той же объектной ГИС, используя топологические свойства самого пространства. Только для этого нужно организовать данные в объектной ГИС не самым простым образом, - во всяком случае не так, как это представлено на рисунке 1. Коротко скажу, что для сокращения времени поиска простым перебором (потенциально-) топологически связанных объектов, нужно сегментировать пространство цифровой карты (например, на некоторые аналоги планшетов - только в памяти компьютера), а объекты, попавшие в тот или иной сегмент, регистрировать в таблицах, относящихся к этому сегменту. Тогда поиск нужных для работы объектов можно вести в рамках только тех сегментов, которые попадают в область анализа. Компьютер с Pentium'ом выполнит такой поиск не более чем за секунду (при достаточно небольшом сегменте).

Итак, топологические свойства ГИС могут опираться

 

а) либо на топологические структуры данных, сформированные в памяти ГИС;

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

 

Жаль только, что объектные ГИС как раз слабо наполнены требуемыми алгоритмами.


Проблема обмена цифровыми картами между различными ГИС. Обменные форматы

 

Обменными форматами данных называются правила кодирования картографической информации вне среды ГИС.

Вы можете "попросить" ГИС вывести карту в файл в определённом формате. Это называется экспортом цифровой карты из среды ГИС (её внутренних форматов) в обменный формат. Наоборот, ввод содержимого файла, где записаны данные цифровой карты в некотором обменном формате, в какую-нибудь ГИС, приводит к тому, что ГИС после "всхлёбывания" карты может начать работать с ней, как со своей родной. Такая операция ввода карты называется импортом её в среду ГИС.

Начнём с того, что подавляющее число широко используемых обменных форматов не передают топологические отношения между объектами. К таким форматам относятся DXF (AutoCAD), MIF (MapInfo), GEN (ArcInfo), Shape (ArcView), F1-F20V, SXF и т.д., и т.п. Для нетопологических карт, вообщем-то, никаких проблем нет; раз они и не понимают, что такое топология, то, стало быть, им возможностей упомянутых форматов вполне достаточно. А как быть топологическим ГИС?

Тут, оказывается, тоже нет проблем для тех ГИС, которые поддерживают только традиционную пространственную топологию. Топологическая ГИС может импортировать карту из файла, где содержится цифровая карта в нетопологическом формате, а затем уже в среде ГИС надо будет выполнить с картой ту операцию, описание которой я приводил выше; перебрать объекты, найти близко расположенные точки, свести их в топологические узлы и сформировать в памяти компьютера топологические структуры данных.

При экспорте во внешний обменный формат топологическая ГИС просто "пробегает" по внутренним структурам данных и формирует по ним автономные объекты, выполняя "разборки" топологически связанных точек в необходимое количество дублей.

Загвоздка: так можно передавать и преобразовывать только традиционные пространственные топологические отношения. ТПС подобным образом передать нельзя, поскольку совпадение координат точек не является для них критерием, по которому между ними обязано возникнуть топологическое отношение. Впрочем, не во всех и топологических ГИС (например, GeoDraw) совпадение координат обязательно указывает на то, что одинаковые точки нужно заменить узлом и установить, тем самым топологическое отношение.

Только картографы из малой части предприятий Роскартографии считают, что совпадение координат должно устанавливать топоотношения в памяти ГИС. Они даже и не рассматривают необходимость создания топологически корректных цифровых карт как некую задачу. Так мне неоднократно приходилось наблюдать, как крупные картографы на вопрос "а вы умеете создавать топологически корректные цифровые карты?" легко и даже с каким-то пренебрежением - будто их спросили о количестве ног у собаки - говорят; "Конечно!". После пыток такой картограф, оказывается, понимает топологическую карту как карту, у которой ТОЧКИ ПОДРАВНЕНЫ! Другими словами, для них топология цифровой карты - всё равно, что топология бумажной карты - т.е. изображения, которое, - как мы уже говорили, - всегда топологично вследствие свойства самого пространства. Объекты на изображении должны примыкать без "дырок" между собой. Подравниванием это достигается. Следовательно, картограф из Роскартографии получил топологически корректную карту! Но вот цифровую ли? - Конечно, нет, - только бумажную. Тут, по-моему, кроется непонимание между роскартографами и теми, кто различает топологию пространства и топологию фигуры (конструкции).

Эти представления картографов ведут к следующему.

Например, для картографа пересечение провода ЛЭП с рекой приведёт к возникновению топологического узла. А для объектно-топологической системы, которая поддерживает ресурсные топосвязи, такая топологическая связь будет неправильно установленной, т.к. ведёт к короткому замыканию ЛЭП на водную поверхность. Объектно-топологические ГИС потому и должны уметь устанавливать топологические отношения (связи) РАЗНОГО ТИПА между различными классами объектов, чтобы понимать, какой объект, с каким и какой моделью физической связи надо связывать, - иначе ресурсные сети моделировать она не сможет никогда. На этом основывают свою работу AM\FM-системы. Для них указанные выше обменные форматы совершенно бесполезны, потому здесь стоит серьёзная проблема создания обменного формата, способного передавать не только форму объектов, но и явным образом различные типы топологических связей между объектами.

Говорят, что Нижегородский институт кибернетики (Васин), который является головным в Роскартографии в области разработки ГИС-технологий, разработал формат, который передаёт и топологические связи между объектами. К сожалению, пока описания этого "Интегрального формата" я не видел, а потому остаюсь в испуганном неведении; если они подошли к проблеме именно как кибернетики и взяли широко, то всё будет замечательно. Но, если они подошли как картографы-"кибернетики", то мы будем наблюдать нечто малонужное. Посмотрим.

А теперь последует навевающий надежду подраздел о проблеме расширения ГИС внешними процедурами.


Можно ли нетопологическую ГИС сделать топологической, путём разработки внешних программных расширений?

 

Вообще говоря, многие вещи сделать можно. Однако, не всё безоблачно…

Современные средства программирования и операционные системы достигли такой степени своего развития, что порой уже и непонятно, где кончается ядро системы и начинается внешний к этому ядру модуль. Механизмы межпрограммного обмена стали очень мощными. Ядро можно оформлять и как сервер, и как клиент по отношению к внешнему расширяющему модулю. Фактически разработка сторонним программистом нового расширяющего модуля сегодня приводит к тому, что его модуль может стать как бы составной частью самого ядра. Неужели тогда возможно, что, если некоторому программисту не нравится, как разработчики ГИС-ядра расписали обработку цифровой карты, он может дописать ГИС до той степени развитости, которая кардинально расширит возможности системы? - Т.е. сторонний программист может взять, к примеру, MapInfo и сделать из этой объектной но НЕтопологической ГИС истинно топологическую? Или - доведём дело до крайности; возьмёт он MapInfo и, понаписав внешних модулей, сделает из неё ArcInfo, нанеся серьёзный удар по благосостоянию сотрудников ESRI?

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

  • почему из мотоцикла не удаётся сделать автомобиль Formula-1, хотя оба этих средства передвижения состоят из железа и имеют колёса? А ещё лучше захотеть сделать самолёт, приделав к мотоциклу крылья;

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

  • почему в Амазонии нельзя собрать всех индейцев и построить на их основе демократическое общество, хотя они - тоже люди?

  • почему над MS DOS нельзя построить UNIX?

  • почему над AutoCAD так и не удалось построить конкурентоспособную ГИС? Не будем считать ArcCAD серьёзной ГИС, иначе бы она не умерла.

  • почему существует так много типов материнских плат для персональных компьютеров с процессором Pentium, если процессор - один и тот же?

  • и т.д., и т.п.

Можно привести ещё множество примеров, когда над неким "ядром" делается попытка что-то надстроить. В основе всех этих проблем лежит следующая трудность: ЯДРО СОЗДАЁТСЯ НА ОСНОВЕ ОПРЕДЕЛЁННОЙ КОНЦЕПЦИИ (БАЗОВОЙ АРХИТЕКТУРЫ), УДОВЛЕТВОРЯЮЩЕЙ ОПРЕДЕЛЁННЫМ ЦЕЛЯМ И БАЗИРУЮЩЕЙСЯ НА ОПРЕДЕЛЁННЫХ ВЗГЛЯДАХ И КОНКРЕТНЫХ АРХИТЕКТУРНЫХ РЕШЕНИЯХ РАЗРАБОТЧИКОВ ЯДРА. Эти решения оптимизированы под те задачи и те алгоритмы функционирования, которые разработчик считал важными реализовать в первую очередь. Ядро работает эффективно, пока внешняя среда для ядра является КОМФОРТНОЙ с точки зрения поступающих в него ресурсов, а также выполнения регламентов этого поступления. Немаловажно и то, каким образом внешняя среда будет не только поставлять в ядро ресурсы, но и как будет "отбирать" от ядра продукты своей деятельности (заткните автомобилю выхлопную трубу - посмотрим, как он поездит. Попробуйте вычислительной системе остановить выходную очередь заданий и подождите, пока вся внутренняя память системы исчерпается, будучи полностью распределённой между вновь поступающими заданиями).

Другими словами, внешняя среда "стукает по клавишам" открытого ядра и, если она это делает невпопад, то музыки не получится.

Но проблема ещё сложнее для программных систем; там "стукать" пытается программист, от которого скрыто то, как получается звук в этом инструменте.

Предположим, разработчики ядра дали в руки сторонним программистам весь набор низкоуровневых функций для организации взаимодействия с ядром ГИС. Чем более глубоко позволительно залезать стороннему программисту в ядро, тем встаёт больше проблем следующего рода:

  • это ведёт к опасным манипуляциям в ядре не самими разработчиками ядра, знающими "как надо " и являющимися обычно опытными программистами, - а прикладными программистами, которые плохо знакомы с системным программированием. Особенно страшно давать в руки неопытным программистам физические указатели на внутренние объекты. Но это сейчас почти и не дают.

  • это требует хорошего знания внутренней идеологии ГИС, иначе в самый неожиданный момент могут появиться вторичные эффекты, вследствие того, что разработчики ядра исходят из других правил программирования и решения специфических архитектурных вопросов, да и ошибаются тоже. Тут можно и все данные потерять;

  • это ведёт к опасности того, что разработанные внешние модули начинают ориентироваться на те средства ядра, которые разработчики ГИС могут неожиданно переделать. Тогда внешние модули "рушатся" как карточные домики. Поэтому и невыгодно разработчикам ядра полностью нутро открывать, т.к. этим их руки связываются в деле развития своего родного дитя.

Уважающий себя разработчик ГИС-ядра не даст слишком много свободы внешнему программисту, иначе тот так накуролесит в его ядре, что ГИС от экспериментаторства, в конце концов, перестанет работать, а руководитель горе-программиста будет пенять на систему, обвиняя разработчиков ядра в продаже гнилого продукта. Да ещё напишет об этом на всю страну.
Поэтому внешние интерфейсы всё равно не позволяют делать всё, что кому-то хочется. В слое ПО, через которое работает с ГИС-ядром сторонний программист, представлены только те функции, использование которых гарантированно не приведёт к катастрофе. Значит, полной свободы уже не будет. Высочайшей эффективности, такой же, как при программировании на уровне ядра, - тоже.

Некоторые ГИС имеют свои Мап-Бэйсики, АвтоЛИСПы, Авеню. Программист может на создавать свои внешние базы данных, которые призваны исправить " огрехи " разработчиков ядра, которые, в свою очередь, не смогли сделать из своей MapInfo систему ArcInfo. В интерпретирующих языках, вроде как, многие из указанных выше проблем решены, поскольку "вход в ядро" выполняется под тотальным контролем интерпретирующей системы языка. Однако, внутренние средства расширения, основанные не на компилирующих средствах, слишком низкоскоростные, поскольку интерпретатор - это не компилятор. Плюс ко всему это - не объектно-ориентированные языки, и крупные системы на них построить поверх ядра ГИС очень трудно. Да и сильные программисты давно работают на ООП-инструментах. Правда, сегодня уже практически все ГИС дают возможность работать и, используя и более быстродействующие механизмы общения между процессами.

Кроме того, большинство простых ГИС работает с реляционными таблицами, что для цифровых карт при реализации в чистом виде является не больно уж эффективной системой хранения картографических данных (не зря же Oracle придумал SDE). Внешние базы данных можно привязать к внутренним базам через ID. И многие ГИС действительно дают вам возможность повязаться через ID объекта (записи). Но это далеко не физические указатели, с помощью которых можно выполнить доступ к объектам в сотни раз быстрее, чем по ID реляционных таблиц. Поиски по ID в реляционных таблицах - операция относительно долгая, и в большинстве случаев при массовых операциях на больших объёмах данных (что обязательно имеет место для городских крупномасштабных насыщенных топопланов) работа становится просто отвратной.

Далее, предположим, что программист написал много внешних модулей, реализующих новые методы интерактивной работы с картой. Но как быть с теми штатными операциями ГИС, которые определены в ядре и вынесены в интерфейс пользователя? Если пользователь будет работать с картой через штатные операции ГИС, а не через внешние модули, то может произойти потеря взаимной целостности внешних и внутренних баз данных ГИС при операциях редактирования карты штатными средствами ГИС. Получается разрыв свойств - операции ядра действуют так, как будто "вышестоящих " внешних модулей не существует, выполняя операции редактирования (изменения формы, уничтожения узлов, линии и целых объектов) и совершенно не заботясь о том, чтобы внешние базы также согласованно модифицировались вместе с изменениями в базах ядра.

Положим, операциями редактирования, опирающимися на штатный интерфейс пользователя, был уничтожен один из узлов. А во внешних базах ничего не произошло, - информация об узле не была уничтожена. Как теперь будет работать ГИС при выполнении внешних операций? - Думать, что узел всё ещё есть на карте? Последствия могут быть непредсказуемы.

Но, конечно же, в общем случае многие функции ядра можно расширить. Что многие успешно и делают. Только нужно чётко понимать, что термин "расширение" не означает создание более универсальных функций " над" функциями ядра ГИС, как это может показаться с первого взгляда. Расширение ядра всегда связано как раз с прямо противоположным: С НАЛОЖЕНИЕМ ДОПОЛНИТЕЛЬНЫХ ОГРАНИЧЕНИЙ НА ФУНКЦИИ, ПРЕДОСТАВЛЯЕМЫЕ ЯДРОМ. Если супротив этого правила расширение ядра будет пытаться дополнить штатные функции значительно более универсальными операциями, чем эти штатные функции, то ограниченные возможности штатных функций не позволят внешним функциям выполняться эффективно.

Крайне неэффективным будет и такое расширение ядра с помощью внешних расширений, если внешнее приложение попытается на своём уровне работать с самыми низкоуровневыми объектами ядра - отдельными точками, линиями, полигонами в массовых операциях поиска, анализа территории и т.п. Дело здесь в том, что операции с атомарными объектами ядра наиболее хорошо выполняются именно в ядре, т.к. их обработку писал разработчик ядра, знающий все тонкости оптимизации этих операций на основе использования достоинств архитектуры ядра. Множество действий вне ядра с атомарными объектами может практически не может быть эффективным вследствие значительных накладных расходов при вызове функций извне (входной и выходной контроль данных, движение по заданным для внешнего программиста "программным коридорам", что необходимо, т.к. для этих операций трудно ожидать соблюдения внешним программистом оптимальных контекстов).Если ГИС-ядро имеет достаточно большое количество предоставляемых стороннему программисту функций, выполняющих массовые операции (например, поиски, перезакраска всех полигонов заданного слоя и т.п.), то вследствие того, что низкоуровневые операции выполняются в среде ГИС-ядра в рамках контекстов, которые задал для их выполнения сам разработчик ГИС-ядра, то тогда можно ожидать хорошие результаты выполнения таких функций.

Но, если расширение ядра создаётся для специализированных и НЕМАССОВЫХ действий пользователя, накладывающее, тем самым, новые ограничения на универсальные функции ядра, то такое расширение имеет много больше шансов оказаться эффективным. Это всё означает следующее:

  • если внешние расширения пытаются "подправить" низкоуровневые операции ядра, то, как правило, это ни к чему хорошему не ведёт;

  • если внешнее расширение использует предоставляемые программным интерфейсом функции путём их комбинирования (группировки) как целостных функциональных блоков, то расширение МОЖЕТ (но необязательно) прожить долго и принести пользу.

Чем больше программного обеспечения наворочено "поверх" ядра, тем "тяжелее" для него эта ноша. Точнее, тем менее эффективны внешние операции, пытающиеся залезть как можно ближе к ядру. Сарай начинает трещать…

Особенно удивительные события начинают разворачиваться, когда объёмы данных в ГИС становятся достаточно большими, и наблюдается катастрофическая нехватка вычислительных ресурсов. Тут архитектура ГИС - не обязательно созданная под большие объёмы и что главное - ПОД БОЛЬШОЕ КОЛИЧЕСТВО СВЯЗЕЙ МЕЖДУ ОБЪЕКТАМИ, где реляционная модель становится неэффективной, - начинает выходить из работы в оптимальном режиме, и вся надстройка сверху практически перестаёт работать; память исчерпывается, а реляционная модель под множество связей между объектами начинает работать крайне неэффективно - требуется уже какая-нибудь сетевая модель данных.

Приведу простой пример, близкий к сказанному, но не обязательно относящийся к ГИС. Например, вы работаете в Windows. Пока свободной памяти много, никакого своппинга страниц на диск нет. И вот вы написали такие расширения, которые работают хорошо, пока все страницы памяти Windows находятся в ОЗУ. Пусть Ваша программа назапрашивалась памяти под очень большое количество маленьких объектов. Алгоритмы, которые Вы наизобретали, обрабатывают данные так, что обращение к объектам идёт неким нерегулярным (например, хаотическим)способом, т.е. программа часто обращается к объектам, размещённым в различных страницах. Это - типичная ошибка неопытных разработчиков.

И вот когда данных стало очень много, начинают сказываться огрехи вашей архитектуры, не учитывавшей особенности организации памяти Windows. - Ваша программа начинает обращаться к объектам, находящимся в разных страницах, и когда памяти стало не хватать, Windows начинает выполнять беспрерывный обмен страницами памяти между ОЗУ и областью своппинга на диске, пытаясь предоставить вашей программе доступ к информационным объектам, с которыми Ваша программа хочет поработать. Например, объектов - 1 млн., и ваша программа обращается к ним так, что каждый раз получается, что они оказываются в страницах, лежащих на диске. Диск тарахтит, а производительность системы приближается к нулю.

Тут нужны такие архитектурные решения и такие методы обработки данных, которые далеко не каждый даже сильный программист сможет реализовать. Эта проблема стоит и тогда, когда программист пишет свою программу, ни с чьей другой не взаимодействующей. А если она работает с другой (чужим ГИС-ядром, например), то архитектура ядра и архитектура программы стороннего программиста обе претендуют на общую память операционной системы. То-то здесь можно по развлекаться, когда памяти становится не хватать! На простеньких картах проблем не будет; вам некие дилеры какой-нибудь западной ГИС могут показать быстро работающую и удобную программку. Но это, может быть, хорошо выглядит, пока картографических данных немного. А когда их станет побольше, всё становится не таким радужным.

Расширять ГИС наиболее легко только в плане написания прикладух, а не в области повышения эффективности работы с картографическими данными, - слишком это тонкие моменты.
Я даже не рассматриваю те случаи, когда сторонний программист не очень-то силён в архитектурных работах вне ядра. Работать он может очень долго, и руководство может вообще не дождаться полезного результата. Программист будет развлекаться некоторое время, проводя эксперименты, а потом уйдёт в банк.

Вашим крупным задачам должно соответствовать действительно развитое и мощное ГИС-ядро, архитектура которого рассчитана на эффективную работу с большими объёмами разнообразной информации, в котором данные организованы и обрабатываются гармонично, причём с учётом того, что кто-то будет развивать его внешними расширениями. Не всякие разработчики ядер способны сделать такое хорошо устроенное ядро, в том числе далеко не всякие и на Западе. Не нужно преувеличивать их способности - они сделали такую ГИС, как ArcInfo…

Резюмирую: основные проблемы, связанные с внешними расширениями, следующие:

  • несогласованность архитектуры ядра и надстройки, ведущая с ростом объёма надстройки и объёмов данных к катастрофической потере эффективности работы системы;

  • потеря согласования внутренних и внешних баз данных при операциях на нижних уровнях слоёв ПО, особенно на уровне интерактивных операций, входящих "в штат" ГИС;

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

  • и др.


Задачи, в которых требуется использовать те или иные топологические отношения

 

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

Я бы выделил несколько наиболее крупных классов задач, которые нужно решать с городскими картами. Замечу, что будем пока рассматривать их ИЗОЛИРОВАННО, - т.е. так, как будто другие задачи отсутствуют.

Картография, геодезия дают самые простые с точки зрения городской ГИС требования к ГИС и цифровой карте. Для работы в этих областях достаточно традиционной линейно-узловой топологии. Да и она не нужна. Чаще всего достаточно и псевдотопологии, т.к. картографы больше всего озабочены точностью представления территории города(и, пожалуй, больше ничем иным). То, что карта должна быть объектной или необъектной их вообще не интересует. Оптимизация затрачиваемых ресурсов на создание слоёв на цифровых топопланах (например, векторизация не всего, что есть на топоплане, а лишь необходимых объектов) их даже раздражает, т.к. уменьшает объёмы работ и, соответственно, объёмы финансирования. Геодезические предприятия готовы работать, создавая хоть пятисотку с отображением там каждого отдельного дерева и собачьей конуры, хотя всё это городу вообще не нужно по причине отсутствия надобности, а главное - невозможности полноценно дежурить затем такую сверхподробную карту. Векторизовать слои, по которым ты не сможешь организовать дежурство, - пустая трата денег. Но именно это как раз выгодно геодезическим предприятиям.

Транспортные задачи. Требуются топологические ГИС, в которых реализованы методы решения транспортных задач. Нетопологические ГИС бесполезны.


Муниципальные кадастровые задачи.

 

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

Земельный кадастр - для решения чисто земельных задач достаточно традиционной линейно-узловой топологии. С некоторыми натяжками достаточно псевдотопологии, если в используемой ГИС реализуются некоторые необходимые для кадастра функции путём процедурной топологии.

Кадастр инженерных коммуникаций. Линейно-узловая топология и вообще традиционная пространственная топология (неважно как реализованная структурно или процедурно, объектно или необъектно) НЕДОСТАТОЧНА. Для задач паспортизации оборудования, диспетчеризации своего хозяйства и многих других задач необходима межобъектная и межслойная топология. А для задач моделирования физических процессов в потоковых системах необходимо построение топологических ресурсных сетей (на основе ТПС).

Градостроительный кадастр (ГСК). - Самый сложный в методологическом и других смыслах кадастр, т.к. для его эффективного ведения необходима информация ото всех других городских кадастров. В ГСК на цифровых топопланах ВПЕРВЫЕ фиксируется любой объект, возникший на территории города, - будь то здание или сооружение, инженерная коммуникация и др. Более того, градостроительные регламенты заставляют устанавливать различные виды пространственных и логических отношений даже не просто между отдельными объектами, а и даже между частями отдельных рядом стоящих объектов, например, - от одного фасада здания совсем не то, что от его другого фасада. Ещё "хуже" то, что один и тот же объект может иметь виды пространственных и логических отношений, определяемые взаимодействием (наложением) их буферных зон, которые для разных пар находящихся рядом объектов - разные. Поэтому для полноценного ГСК нужна такая ГИС, которая может работать со всеми видами топологий. Да и тех мало.

А работа с инженерными коммуникациями (как проложить) в ГСК заставляет иметь дело и с ресурсными топологическими сетями.

Последний пример с ГСК подвёл нас к той мысли, что в городе, если Вы собрались делать действительно единую муниципальную информационную систему на основе ГИС, то обойтись частым рассмотрением каждой отдельной задачей НЕЛЬЗЯ. Вы вынуждены иметь ввиду и учитывать другие кадастровые задачи в городе. Поэтому, например, земельным комитетам не нужно думать, что, решая свою земельную задачу, они обойдутся сегодня лишь такими ГИС, как MapInfo или ещё много хуже - ArcView. Это так только в начале пути. А через некоторое время, - когда будет проинвентаризирована территория и появится земельно-кадастровая карта города, эту карту запросят многие в городе, в том числе и те службы, которые видят, что их-то задачи эта цифровая карта НЕ МОЖЕТ РЕШИТЬ. Авторитет горкомзема (или конкретных людей) будет подорван (денюжки потрачены, а во многом эту карту нужно снова переделывать. Спрашивается; а почему сразу не подумали?). Тем более, что земельному кадастру нужна информация от других кадастров; от ГСК градостроительная ценность земель и другой недвижимости, ограничения и обременения, от инженерных коммуникаций - ограничения и обременения (трубы по участку проходят). Нельзя же думать, что в одном городе будут создавать две и более карты - каждую для отдельных применений.

Так что нужно подбирать СРАЗУ ТАКУЮ ГИС и создавать СРАЗУ ТАКУЮ ЦИФРОВУЮ КАРТУ (по соответствующим требованиям), чтобы потом в Вас не бросал камень каждый, кто не поленится. Некомпетентность - слабое оправдание в тех случаях, когда потрачены миллиарды рублей.

Отсюда - прямой путь ДЛЯ ВСЕХ ОРГАНИЗАЦИЙ В ГОРОДЕ к интегрированному объектно-топологическому подходу для всех работ, связанных с цифровыми ГОРОДСКИМИ картами.


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

 

Топологические ГИС и нетопологические ГИС.

 

Таблица топологических "свойств" рыночных ГИС. Такие ГИС, как Arcinfo (ESRI, США), MGE(Intergraph, США), наша простая отечественная GeoDraw\Geograph (ЦГИ ИГРАН), поддерживают только линейно-узловую топологию.

ГИС MapInfo (MapInfo Corp., США), AtlasGIS (ESRI, США), отечественная GeoCAD System (Новосибирск) поддерживает только внутриобъектные топологические отношения.

ArcView GIS (ESRI, США) в определённой степени эклектична: может работать со структурами внутренних данных, кодирующих линейно-узловую топологию, но редактировать их нормально не может (это там крайне нежелательная операция, раз разработчики сделали её использование очень неудобным). Однако, ArcView может рисовать простые объекты и в этом смысле является объектной ГИС, поддерживая внутриобъектные отношения. Но, поскольку в одном продукте институт ESRI не удалось или не захотелось (скорее, первое) совместить два подхода в целостный подход, оказывается, что объекты не могут топологически связываться между собой. Т.е. тут она похожа на MapInfo. Только MapInfo в этом смысле куда как более удобна в работе.

Узловые топологические отношения поддерживаются только некоторыми отечественными системами, которые развивались эволюционно от нетопологической ГИС. Для них характерно, что уж очень захотелось реализовать хоть какую-нибудь топологию (сделать топологическую ГИС - это как стать членом элитарного клуба). Однако, поскольку реализовать это можно только путём кардинальной переделки архитектуры системы, кое-как удаётся реализовать только узловую топологию, от которой пользы - с напёрсток. Зато как звучит: "Наша ГИС - топологическая!".
Отечественная ГИС "Панорама" (г.Ногинск) поддерживает вообще нечто половинчатое: какой-то удивительно притянутый "за уши" вариант узловой топологии - "половину" от линейно-узловой, да и та половина во внутренних структурах, судя по руководству программиста, представлена ещё на половину меньшей…

 

Маленькие облегчения души для тех, кто всё-таки вынужден работать сегодня на ARCINFO (или GEODRAW)

 

Выводы

 

В целом с топологией в объектных ГИС имеет место прямо-таки удивительная заковыка; далеко не все картографы и географы о ней что-либо знают. Например, специалисты ЦГИ ИГРАН (те, кто разработали слабую отечественную копию слабой американской ArcInfo - систему GeoDraw\GeoGraph) вообще считают, что цифровая карта “может быть топологической и объектной (нетопологической)” [см. статью В.Б.Яровых - ЦГИ ИГРАН в Информационном бюллетене ГИС-ассоциации №4(6), 1996г.]. Занятно, что так думают специалисты, входящие в советы ГИС-ассоциаций, относящие себя к крупным экспертам в области ГИС-технологий, ездящие по регионам и учащие далёких от столицы туземцев, как надо писать слово "ГИС" без ошибок. В действительности же, освоение линейно-узловой топологии и мало результативное копирование отсталых образцов ГИС просто притупляет органы чувств, различающие в окружающей среде только тот вид топологии, с которым эти специалисты знакомы. А знать больше просто не хочется или боязно захотеть; ведь тогда нужно пойти против самой ArcInfo! Это страшно довольно. А может быть, удовлетворяет роль птички, выковыривающей объедки, застрявшие в зубах у крокодила. - Ведь GeoDraw преподносится как "первый шаг к проведению работ, результаты которых потом могут быть использованы с приобретением "самой мощной в мире" ArcInfo и ArcView". Тут ещё более интересно: признанный эксперт в области ГИС-технологий (я здесь не шучу) сотрудник московской компании DATA+ Королёв как раз не считает так, как специалисты ЦГИ ИГРАН, и согласен, что топологичность и объектность - не противоречащие друг другу понятия. Впрочем, на то он и эксперт. Вот только неосторожно связал свою деятельность с ArcInfo.

Что касается ЦГИ ИГРАН, то я считаю, что роль загонщиков добычи на спокойно перемещающихся по лесу знатных охотников, не очень солидна для выходцев из академических институтов. Впрочем, это дело самой компании - какую роль для себя избрать. Но ни к чему делать дичью наши горкомземы, управления архитектуры, "подземщиков". Тут налицо, несмотря на московское местожительство, обыкновенный провинциальный синдром; - это когда существует святая вера в то, что где-то там в центре мира (в США т.е.) геоинформационная мысль настолько перегнала российскую, что в России уже ничего родиться не способно.

 

 карта сайта   к началу страницы