Системы идентификаторов объектов и работа с ними.
Рассмотрены основные функции, которые выполняют идентификаторы объектов. Описаны правила формирования систем идентификаторов. Рассмотрены особенности формирования систем идентификаторов в кадастровых ГИС (в понимании автора). Описана простейшая система идентификации объектов получающаяся в процессе изготовления цифровых карт. Делается вывод о возможности разделения идентификаторов на два уровня по величине функциональной нагрузки: «минимальный» и «производный». Путем рассмотрения специальных примеров с использованием языка SQL3 показаны возможности по полуавтоматическому формированию «производных» идентификаторов. В заключение делаются выводы о подходе к системе идентификации, основанные на рассмотренных вопросах и примерах.
Идентификаторы объектов в большинстве ГИС - систем выполняют несколько важных функций:
· Отличие объектов цифровых карт друг от друга. Необходимость такого различия обычно продиктована существующими задачами. Например, для решения задачи отключения потребителя в кольцевых водопроводных сетях идентификация участков водопроводных сетей не существенна, т.е. для алгоритма анализа они не отличимы друг от друга. В то же время для земельного кадастра идентификация участков является ключевым элементом системы, поскольку является основой для решения задач учета собственников, расчета экспликаций и т.д.
· Упорядочивание объектов. Функция связана с тем, что идентификаторы могут так же нести некоторую дополнительную смысловую нагрузку которая служит для «грубого» ориентирования в пространстве карты, т.е. некоторые закономерности в их значениях могут играть роль «пространственного индекса». Важность данной функции идентификаторов проявляется в некоторых специальных случаях. Пример: в идентификатор земельного участка входит номер кадастровой секции и кадастрового района.
· Описание объектов по принципу часть-целое. Два объекта могут иметь один и тот же идентификатор, если для нас они представляют в определенном смысле пространственно-семантическую «континуальность».
Пример: река втекающая и вытекающая из озера. Две части реки хотя и топологически не связаны, но представляют для нас один и тот же объект - реку с определенным собственным именем. Выражением «континуальности» в данном случае является название реки.
Особое значение эта функция принимает в цифровых картографических базах данных содержащих разномасштабные и, следовательно, по разному генерализованные данные на одну и ту же территорию (см далее).
· Связь с семантическими данными. Т.е. поле, содержащее идентификаторы может выступать в качестве ключевого поля при связи с данными содержащимися во внешних, по отношению к базовому программному средству, таблицах.
Совокупность правил по формированию идентификаторов объектов будем называть системой идентификации. Не следует смешивать эти правила с правилами локализации или формирования объектов, которые описывают принципы формирования объектового состава цифровой карты, «вычленения» цифровых картографических объектов из изображений на исходном картографическом материале.
Правила представляют собой конкретизацию изложенных выше основных функций идентификации в приложении к данном предметной области (или областям). Они как правило включают следующие разделы:
· Порядок назначения идентификаторов. Способ генерации новых идентификаторов. Здесь определяется:
A. Вид зависимости между идентификаторами различных объектов находящихся в определенных пространственно-логических или других отношениях: «часть-целое», «род-вид» и т.д. (пример из земельного кадастра: земельные участки, расположенные внутри кадастровых секций имеют номер кадастровой секции как составную часть своего собственного идентификатора).
B. Вид зависимости между системами идентификаций различных слоев и/или объектов карты. Например, в каждом слое, или для каждого типа (группы типов) объектов [1] может быть принята своя система идентификации.
C. Ограничения искусственного характера, например выделение определенных диапазонов идентификаторов для некоторых типов объектов или для определенных целей.
D. Тип системы идентификации «последовательная» или «произвольная».
· Статус идентификатора. Например может быть потребовано, чтобы однажды распределенный идентификатор уже более никогда за все время существования системы не мог быть назначен другому объекту или однажды назначенный идентификатор никогда не был изменен. Это требование актуально когда идентификатор фигурирует в каких либо юридических документах, как , например, в земельном кадастре.
· Проверка корректности. При разработке требований к системе идентификации необходимо сразу же учитывать, что в процессе работы с ГИС постоянно будут возникать различные ошибки в идентификаторах объектов, которые необходимо своевременно обнаруживать и устранять. Поэтому надо выбирать такую систему идентификации, которая позволяла бы проводить полуавтоматическую или автоматическую проверку корректности.
Рассмотрим два типа системы идентификации: «последовательную», где идентификаторы упорядочены по возрастанию и «произвольную» где идентификаторы являются псевдослучайными числами.
Приведем аргументы «против» случайного назначения идентификаторов, высказанные специалистами «Уралгеоинформа». В ходе опроса было предложено рассмотреть два варианта гипотетического редактора цифровых карт, который позволял бы назначать объектам уникальные «случайные» и уникальные «строго упорядоченные по возрастанию» идентификаторы.
Аргументы против случайного назначения идентификаторов:
· Если в ряду следующих друг за другом идентификаторов образуется «пробел», то велика вероятность того, что имеется какая либо ошибка в формировании объектового состава цифровой карты, возникшая либо из-за сбоя программного обеспечения, либо по вине оператора.
· Удобнее находить запись для соответствующего идентификатора при навигации через реляционную таблицу. Имеется в виду навык быстро определять примерное количество экранных страниц таблицы, которые необходимо пролистнуть, чтобы отобразилась соответствующая запись.
· При «ручном» написании чисел большой разрядности (см. следующие замечания) легче совершить ошибку.
Выбор типа системы идентификации по принципу «случайная» - «упорядоченная» может также принести некоторые выгоды технического характера:
· Множество присвоенных значений идентификаторов имеет минимальный диаметр (т.е. оно «сгруппировано» на числовой оси).
· При «случайном» распределении идентификатора объекта, потребуется некоторое время на подтверждение его уникальности и, при необходимости, на повторение процесса генерации идентификатора.
Очевидно, что при первоначальном заполнении банка данных цифровой картографической информацией использование «упорядоченного» типа является более предпочтительным чем «случайного». Подробное рассмотрение этих двух альтернатив продиктовано тем, что реальная цифровая картографическая база данных, в процессе своего существования, как правило движется от «упорядоченного» типа к «случайному». Это происходит вследствие реструктуризации объектового состава: добавления, удаления, объединения и разделения картографических объектов. Поэтому при разработке технических средств поддержки и верификации системы идентификаторов необходимо предусматривать процедуры соответствующие обоим типам систем идентификации.
Свойства идентификаторов объектов в кадастровых системах.
Структура геоинформационных систем, предназначенных для информационного обеспечения процесса управления территорией описывается так называемым принципом информационной пирамиды:

В ГИС, охватывающих процесс управления «по вертикали», неизбежно возникнет задача представления одной и той же пространственно - привязанной информации на картах различного масштаба, т.к. органам государственного управления требуется как правило обобщенная информация, размещаемая на картах мелких масштабов (1:200000), в то время как отраслевые специалисты работают с более крупномасштабными картами (масштаб 1:25000 и крупнее).
Обмен информацией, собираемой в нижней части пирамиды, с ее верхней частью состоит, в большинстве случаев, в определении обобщенных характеристик различных объектов, процессов и явлений, в построении обобщенной модели территории на которой можно было бы изучать, отвлекаясь от частностей, основные закономерности. Наоборот, при работе на «низком» уровне часто бывает необходимо знать, какой территории (административному району, планировочной зоне и т.д.) принадлежит тот или иной объект природной среды, т.к. это накладывает определенные условия или ограничения по его использованию. Описанные здесь «прямая» и «обратная» задачи являются двумя составными частями процесса управления территорией. Таким образом, ГИС должна включать в себя механизм, позволяющий быстро решать подобные задачи.
Родственной данной является задача описания сложных или «составных» объектов. Рассмотрим систему «река не в м.к.»-«река в 2 линии»-«река в м.к»-«река не в м.к»-«и т.д.», которая описывает реку с определенным названием. При этом на карте масштаба 1:25000 по сравнению с картой масштаба 1:200000, в силу генерализации, могут появиться значительные расхождения: например основное русло может распасться на сеть проток, остров на группу островов, могут появиться озера («реки в м.к.») и т.д. Предположим, что данному объекту на карте мелкого масштаба присвоен учетный кадастровый номер (идентификатор) и с этим номером для объекта уже накоплены определенные описательные данные. Какому объекту на крупномасштабной карте он будет соответствовать? Если бы современные коммерческие ГИС поддерживали механизм установления связей между объектами, как например, системы «РАСТР» и «Альбея», или были бы объектно-ориентированными, то проблем бы не возникло. Но в большинстве случаев, при геореляционной форме связи «метрика»-«семантика», необходимо учитывать возможность возникновения подобной ситуации.
Таким образом мы имеем две задачи:
· описание связи генерализованных и исходных объектов на разномасштабных картах, позволяющих проводить обобщение информации («прямая» и «обратная» задачи).
· описание «сложных» (комплексных, составных) объектов.
Одним из способов решения этих задач может служить процесс установления «связи» между картографическими объектами. Связь показывает, что объекты между которыми она установлена, находятся в определенных «отношениях» друг с другом. Рассмотрим две системы кодирования связей в геореляционных ГИС:
A. Установление «связанной» системы идентификаторов. Например, часть разрядов выделяется для идентификатора объекта на мелкомасштабной карте (т.е. генерализованного изображения объекта), а другая часть разрядов для идентификатора на крупномасштабной карте.
B. Введение в семантическую часть специального поля, которое содержит идентификатор связанного объекта.
В «общем виде» введение такого поля означает, что устанавливается некоторый тип связи «имя» которой определяется полем таблицы, а конкретное значение поля, олицетворяет собой наличие факта такой связи между всеми объектами которые это значение имеют.
И в том и в другом случае мы получаем некоторый «составной идентификатор», отдельные части которого имеют также и самостоятельное значение. Способ кодирования В) является более предпочтительным, поскольку позволяет применять для формирования идентификаторов стандартные функции ГИС, например язык SQL и является более удобным при построении процедур автоматической проверки корректности системы идентификаторов.
Пример. Расчет обобщенных характеристик объектов.
В большинстве случаев для расчета обобщенных (интегральных) характеристик или показателей можно воспользоваться средствами создания комбинированных запросов:

т.е. в принципе система идентификаторов объектов цифровых карт различных масштабов может быть не связанной. Но существуют задачи, которые невозможно решить таким способом.
Рассмотрим ГИС следующей структуры:
1. На верхнем уровне информационной пирамиды находится карта масштаба 1:200000, которая является базовой кадастровой картой кадастра, с которой работают представители высших органов управления. Если проводить параллели с земельным кадастром, то такая карта служит своего рода картой кадастровых районов, где каждый природный объект представляет собой как бы «кадастровый район», т.е. учетную единицу для привязки обобщенных данных. Для пользователя нижнего уровня базовая карта может быть доступна в виде специальной программы - въювера либо в виде атласа.
2. На нижнем уровне информационной пирамиды находится карта масштаба 1:25000, которая служит для привязки данных, необходимых для повседневной работы. Причем, совершенно необязательно, чтобы этот уровень был автоматизирован в рамках ГИС. Для решения основных задач необходимо только, чтобы идентификаторы объектов удовлетворяли определенным требованиям и семантические данные были организованы в виде базы данных в каком-либо распространенном формате.
3. Идентификаторы объектов строятся по следующем принципу:
«номер на базовой карте» - «номер на рабочей карте», (например 1008 - 122). Каждое из этих значений хранится в отдельном поле семантической записи, связанной с объектом.
В качестве примера использования ГИС такой структуры рассмотрим задачу о вычислении средней загрязненности реки, которая должна быть использована при построении экологической тематической карты масштаба 1:200000. Исходные данные представлены в виде таблицы превышения ПДК по пунктам измерения, которые расположены на объектах карты масштаба 1:25000, которые в целом представляют собой «речной комплекс» (т.е. протоки, старицы, острова и т.д. ) некоторой крупной реки. Воспользуемся для решения задачи простым SQL запросом к семантической базе данных. Например (ГИС MapInfo или SQL3) для случая Б):
· SELECT AVERAGE( ZINK_OVER_PDK ) FROM OVER_PDK_25000
WHERE COMPLEX_OBJECTS_ID = 1008 GROUPBY ZINK_OVER_PDK,
где
AVERAGE( ZINK_OVER_PDK ) - вычисление среднего по колонке, содержащей превышения допустимых концентраций ZINK_OVER_PDK из таблицы исходных измерений OVER_PDK_25000.
COMPLEX_OBJECTS_ID - поле содержащее кадастровый номер комплексного объекта
· Полученное значение присваиваем полю объекта №1008 на карте масштаба 1:200000, которое содержит среднее значение для ПДК по всему объекту. Далее это значение мы можем использовать в качестве тематического параметра при построении карты загрязнения.
Основные трудности, возникающие при реализации описанных выше способов определения «сложных» линейных объектов в ГИС имеющих геореляционную структуру состоит в сложности обеспечения корректности системы идентификаторов. Построение процедур для автоматической проверки корректности, исключающих визуальный контроль, в данном случае является очень трудной задачей.
В случае же площадных объектов мы можем пользоваться соответствующими операторами или процедурами для определения вложенности объектов. Так, например корректность создания идентификаторов лесов на карте масштаба 1:25000 может быть проверена путем создания запроса (ГИС MapInfo или SQL3):
SELECT * FROM WOOD_25000, WOOD_200000
WHERE ( WOODP_200000.ID = 1008 ) and
( WOODP_200000.obj Contains WOODP_25000.obj ) and
( WOODP_25000.COMPLEXID <> 1008 )
где
WOOD_25000, WOOD_200000, таблицы с картами лесов для масштабов 1:25000 и 1:200000.
WOODP_200000.ID, WOODP_25000.COMPLEXID - идентификатор базового объекта. Для 25000 масштаба он является первой частью идентификатора объекта.
( WOODP_200000.obj Contains WOODP_25000.obj ) - предложение, содержащее оператор Contains, описывающий что выделять следует только те объекты, которые вложены в данный. В нашем случае это объект №1008.
В результате выполнения этого запроса мы получим таблицу, содержащую ошибочные объекты.
В случае, если ГИС не поддерживает множества функций пространственных запросов SQL3, запросы подобного вида придется программировать на «внутренних» языках программирования ГИС. Сама же логика выполнения операции останется, естественно, неизменной.
Простейшая система идентификации объектов карты и ее развитие.
Из рассмотренного выше ясно, что идентификаторы на цифровых картах могут выполнять множество разнообразных функций. По этой причине, прежде чем обсуждать требования к идентификаторам, необходимо определить какие функции они могут выполнять. Возможно, потребуется, чтобы каждый объект имел несколько различных идентификаторов, выполняющих различные функции, например мы можем иметь идентификатор с пространственным индексом и идентификатор - кадастровый номер, см. Примеры.
Можно выделить следующие группы типов идентификаторов:
1. Идентификаторы для связи метрики и семантики (применяются как правило когда семантические данные хранятся во внешних реляционных таблицах).
2. Идентификаторы как кадастровые номера (имеют особый, юридический статус).
3. Идентификаторы, служащие средством взаимосвязи объектов (применяются для формирования «комплексных» или «сложных» объектов, для установления «связей»).

Простейшая система идентификации часто применяемая в настоящее время принадлежит к первому типу и, после небольших преобразований, может служить для кадастровых целей. Основой такой системы является упорядоченная по возрастанию, монотонная последовательность идентификаторов объектов. В процессе создания цифровой карты состоящей из одного листа порядок следования идентификаторов, как правило, выглядит так:
Линиями разных цветов показаны группы упорядоченных идентификаторов. Такие группы возникают потому, что при цифровании карт операторы как правило пропускают некоторые объекты, а затем, при исполнительской проверке векторизуют их, просматривая цифровую карту «по квадратам» в таком, как нарисовано порядке. В процессе создания «сшитой» карты, составляемой из первоначально независимых листов, система идентификаторов будет выглядеть следующим образом (один из вариантов):

Основное отличие этой
схемы от предыдущей состоит в том, что имеется:
· Обычный порядок идентификаторов (показанный зигзагообразными линиями). Начальные идентификаторы соседних листов отличаются на некоторую постоянную величину, т.е. для каждого планшета выделен определенный диапазон идентификаторов. Так получается само собой в процессе цифрования.
· порядок идентификаторов для «сшитых» объектов (показан маленькими стрелками), который в целом зависит от порядка сшивки исходных листов (показан цифрами). Для того, чтобы идентификаторы «обычных» и «сшитых» объектов не конфликтовали, для них выделяется некоторый отдельный диапазон значений.
Далее рассмотрим два примера, как можно модифицировать эту систему идентификации.
Для того, чтобы сформировать полные кадастровые номера объектов карты масштаба 1:25000 так как это описано в примере ГИС из гл. 2. Необходимо выполнить следующие действия:
1. При помощи запроса SQL, с использованием пространственных операторов найти объект с базовой карты, в который входит данный.
2. Занести номер этого объекта в поле, предназначенное для идентификатора базового объекта.
Сформированный таким образом идентификатор и есть полный кадастровый номер объекта, в рамках примера из гл. 2.
Для того, чтобы создать «пространственный индекс» объекта который является составной частью идентификатора и представляет из себя номер планшета, на котором находится объект (т.е. например, 5-217, где 5 - номер планшета, 217 - номер объекта), можно воспользоваться точно такой же схемой действий:
1. При помощи запроса SQL выбрать все объекты, которые целиком принадлежат требуемому планшету.
2. Занести номер планшета в соответствующее поле. Или: воспользоваться функциями сложения строк для формирования в отдельном, специально предназначенном для этого поле идентификатора вида:
«Новый идентификатор» = Str$(«номер планшета») + ‘-’ + Str$(«идентификатор объекта в слое»).
Из рассмотренного можно сделать следующее, важное для практики заключение: существуют два уровня, два вида работы с идентификаторами
· минимальный уровень, на котором идентификаторы выполняют только две, самые важные, функции: служат признаком отличия объектов друг от друга и связывают метрические и семантические данные
· производный уровень, на котором идентификаторы выполняют некоторые дополнительные функции. Основным отличием производного уровня является то, что идентификаторы могут быть сгенерированы программным способом.
При первоначальном заполнении банка цифровых картографических данных (и при создании исходных цифровых карт) целесообразно ориентироваться только на минимальный уровень. Это позволит при развитии ГИС (которое в большинстве случае непредсказуемо!) избежать различных конфликтов, заключающихся в том, что на идентификаторы могут быть наложены противоречащие друг другу требования.
При проектировании ГИС желательно:
· как можно более сократить количество «ручной» работы по установлению идентификаторов объектов и везде, где только можно разрабатывать автоматизированные средства для генерации идентификаторов и процедуры для автоматизированной проверки корректности системы идентификации.
· разделять идентификаторы минимального и производного уровней, использовать «составные» идентификаторы, для чего применять средства ГИС типа пространственных запросов и построения «вычисляемых» полей.
[1] Такое, на первый взгляд неординарное решение может потребоваться в том случае, если при построении ГИС еще недостаточно точно известны принципы по которым надо разделять объекты по слоям. В случае если ГИС предлагается многопользовательской (смысле различных организаций) и за каждым пользователем закрепляется некоторый определенный тип объектов то их «связанная» идентификация породит очевидные неудобства, что в конечном итоге может привести к необходимости изменения структуры слоев карты и переноса объектов с одних слоев на другие.