Королев Юрий Константинович (ДАТА+)
Тихонова Наталья Михайловна (ДАТА+)
123242 Москва, ул. Большая Грузинская, д. 10
тел. (095)254-93-35, 254-65-65 факс 254-88-95
e-mail: market@dataplus.msk.su
Добрый день!
Тема нашего разговора сейчас - это модели данных, структуры данных, форматы данных для пространственной информации в ГИС. Очень удачно, что эта тема вынесена на пленарное заседание и как бы предваряет обсуждение всех принципиальных и практических проблем, связанных с вводом пространственной информации. Не будет преувеличением сказать, что вопросы организации данных в ГИС - то есть, в частности, те же модели, структуры данных, форматы - это, с одной стороны, одна из самых сложных тем в ГИС, с другой стороны, это одна из самых важных и определяющих тем.
Выбор того или иного способа организации данных в ГИС, в первую очередь именно той или иной модели данных, определяет многое, почти все. Определяет гораздо больше, чем выбор того или иного конкретного программного пакета. Выбор модели данных напрямую определяет многие функциональные возможности создаваемой ГИС - некоторые функции просто невозможно реализовать для определенных типов организации данных, или они обеспечиваются очень сложными манипуляциями. Организация данных в ГИС напрямую определяет и применимость тех или иных технологий ввода данных. В той же степени от нее зависит достижимая пространственная точность представления графической части информации, возможность получения качественного картографического материала и организации контроля качества карт. В значительной степени способ организации данных в ГИС определяет также достижимое быстродействие системы, например, при выполнении запроса или визуализации на экране. Возможность работать с большими объемами данных или с точными данными по большим территориям тоже связана со способами и формами организации данных. Удобство редактирования и обновления данных, возможности организации многопользовательской работы в режиме редактирования, создания распределенных по сети баз данных - это все тоже связано в первую очередь с организацией данных, и уже во вторую - с конкретным программным обеспечением.
Иногда слышно мнение, что модели данных - это слишком абстрактная категория для массового пользователя, а форматы данных - дело только программистов. Цель моего выступления - как раз показать, что это не совсем так. Определенное представление о существующих способах организации данных в ГИС должен, по-моему, иметь и массовый конечный пользователь, и тем более - руководитель проекта, технолог, специалист, занятый контролем качества и сертификацией цифровых карт, наконец, даже руководитель более высокого уровня, участвующий в решении стратегических вопросов внедрения и развития ГИС-технологий.
Дело, прежде всего в том, что выбор той или иной модели данных в ГИС - вопрос гораздо более принципиальный и определяющий, чем выбор конкретного программного пакета и тем более конкретной компьютерной платформы. Ошибки в решении этого вопроса могут проявиться решающим образом в самой возможности выполнения ГИС требуемых функций, в возможности расширения списка этих функций в будущем, в успешности или не успешности проекта с экономической точки зрения, и что очень важно - могут определить ценность накапливаемых баз данных пространственной информации в долговременной перспективе. Будут ли Ваши данные совместимы с другими, будут ли они нужны другим, наконец, не придется ли Вам на каком-то этапе бросить все и переходить на принципиально другую систему, поддерживающую другую модель данных, и придется ли Вам при этом выкинуть также весь накопленный материал и вводить его заново, или нет - это во многом зависит от правильного ответа на вопросы о способе организации данных. В каждом программном ГИС пакете есть свои особенности и изюминки, уже немало говорилось об их классификации и сравнении их друг с другом. Однако едва ли не самая важная их характеристика - это возможности по организации информации - рассматривалась при этом лишь наряду с другими их характеристиками. В этом отношении есть пакеты близкие (при этом они могут немало отличаться по цене, по функциональным возможностям) и очень далекие. Однако эта важнейшая их характеристика, на наш взгляд, недостаточно принималась во внимание при сравнении и классификации ГИС-пакетов, тем более что существуют большие различия в фирменной терминологии, используемой в документации у разных поставщиков ПО. Эта характеристика пакетов заслуживает первоочередного рассмотрения, даже по сравнению, может быть, с такими характеристиками, как компьютерная платформа, объем требуемой оперативной и дисковой памяти и т.д. Обмен данными и даже смена пакета, если применяемые модели данных близки - обычно не очень большая проблема. В других случаях может оказаться так, что объем труда, необходимого для конвертирования существующих данных сопоставим или превышает затраты на повторный ввод информации. Все это, несмотря на то, что, проблемы формальной конвертации форматов файлов обычно не существует. Это только одна иллюстрация важности выбора способа организации данных. Кстати, сейчас немало пакетов, которые могут работать с различными видами организации данных.
Для рассмотрения этой проблемы нужно попытаться разобраться в том, что же определяет организацию пространственных данных в ГИС, какими терминами она описывается. Наше рассмотрение этого вопроса будет по необходимости кратким и не совсем строгим.
Для начала кратко отметим те особенности информации об объектах реального мира, с которыми мы имеем дело в ГИС. Информация о реальном мире частично относится к индивидуализированным объектам, частично к некоторому непрерывно распределенному в пространстве свойству, то есть пространственному полю каких-либо характеристик. Например, мы имеем отдельные дома и рельеф местности. (О непрерывных в пространстве свойствах, таких как рельеф или радиоактивность почв мы поговорим несколько позже.) Объекты могут иметь четкие, определенные границы или положение, достаточно хорошо описываемые, например, линией их контура (для площадных) или быть размытыми с нечеткими границами (с зоной постепенного перехода на границе, с границей, определенной статистически или переменной во времени). Как всегда, с нечеткими все гораздо сложнее, мы их дальше рассматривать не будем. Объекты могут иметь разную размерность в геометрическом смысле - быть точечными (нулевая длина и ширина, размерность 0), линейными (ненулевая длина при нулевой ширине, размерность 1) и площадными (ненулевые и длина и ширина, размерность 2). Следует отделять от понятия размерности объектов понятие о размерности пространства описания. Линейное пространство - размерности 1 - это, например, система координат вдоль линии, как километровые столбы вдоль шоссе; двумерное плоское пространство - это карта с системой геодезических координат в картографической проекции; трехмерное - размерность 3 - это наше обычное непрерывное трехмерное пространство; встречается даже термин 2,5-мерное пространство - под этим понимается пространство, в котором определены некоторые неплоские поверхности с системой двумерных координат на них. Непрерывного объема нет, но точка на каждой из поверхностей имеет три координаты X,Y и Z. Но каждая из точек с одними X,Y имеет только 1 Z. Такого типа пространство удобно для описания пространственных данных вместе с рельефом местности, на которой они находятся и для работы с перспективным изображением самого рельефа.
Такое подразделение объектов традиционно для картографии, точечные объекты отображаются внемасштабными условными знаками, линейные - линейными и площадные - площадными(Кстати в традиционной картографии, даже на топокартах, и тем более на геологических уделено внимание и площадным объектам с нечеткими границами - заболоченные территории, крапы зон наложенных изменений типа ороговикования на геологических картах. Ни в одной ГИС сейчас не предложено удобных способов работы с такими объектами, особенно если говорить и об их отображении и об участии их в анализе).
Нетрудно, однако, заметить, что такое деление условно и зависит от масштаба рассмотрения. Для ГИС этот факт имеет большее значение, чем для традиционной картографии, так карта в ГИС - объект динамический, с меняющимся по ходу работы масштабом рассмотрения. А иногда общая ГИСовская база данных создается по бумажным картам разных масштабов. Объекты могут относиться к разным категориям и образовывать целые иерархии, - например, линейные объекты могут быть реками (элемент гидрографии), железными дорогами, автомобильными дорогами, центральными линями улиц (элементы транспортной сети), линиями газопроводов, линиями нефтепроводов (элементы трубопроводной сети). Автомобильные дороги могут быть далее подразделены на множество различных классов по разным их признакам и сочетаниям признаков. Такие смысловые их группировки в разные категории тоже не могут быть абсолютными на все случаи жизни - выбор той или иной из них зависит от стоящих перед нами задач. Это, конечно, не исключает того, что для конкретных массовых применений такие группировки могут быть заданы как стандартные или рекомендуемые, - то есть классификаторы объектов, например, имеющие иерархическую структуру.
Но сама модель данных, базирующаяся на использовании встроенных систем классификаторов (например, иерархических) и не предусматривающая при этом возможности работы с таблицами СУБД - это явно тупиковое направление развития.
С индивидуальным объектом может быть связан его уникальный идентификатор - например, какой-то номер, формальный, присваиваемый программой в процессе ввода или его номер по какому-то перечню или кадастру. Это может быть и какое-то уникальное имя - например, уникальное название, не повторяющееся более нигде в пределах области изучения (или ее части, для которой требуется соблюдать уникальность идентификаторов. В последнем случае мы имеем как бы двухуровневое деление, и имя (код) этой части может рассматриваться как составная часть идентификатора объекта.) В общем, идентификатор необходим, в противном случае объект не является уникальным и его нельзя трактовать как в полной мере индивидуальный. Идентификатор объекта в реальной жизни может меняться как Сталинград - Волгоград, могут быть дополнительные имена-синонимы идентификатора для удобства использования. В целом использование только имен в качестве идентификаторов не очень удобно и надежно - в Росси несколько рек с названием Быстрая, на земном шаре несколько городов с названием Paris.
Индивидуальный объект имеет определенное положение, позицию.
Эта позиционная информация, однако, неудобна для использования в качестве идентификатора. Объект, как природный (река), так и техногенный (мост) может со временем изменить свое положение. Кроме того, позиционная информация отличаться по точности (инструмент и метод измерения), а также отличаться из-за использования той иной системы координат, той или иной модели эллипсоида. Тем не менее, естественно, что информация о положении (а также о размерах и форме) объекта крайне важна в ГИС. Обычно такую информацию, как бы она ни была выражена - числовыми координатами, или как-то еще, называют позиционной информацией или информацией положения (локатором).
Вся остальная информация об объекте может рассматриваться как его атрибуты - набор характеристик. Атрибуты можно подразделить на пространственные и непространственные. Пространственные - это, например, периметр и площадь площадного объекта, длина линейного. Пространственные атрибуты часто являются функциями параметров положения, - например, периметр площадного объекта может рассчитываться из координат слагающих его контур точек. Непространственные атрибуты могут быть самыми различными - числовыми, текстовыми значениями каких-то величин, описывающих объект.
Можно говорить о комплексных объектах, представляющих объединения (постоянные или временные группировки) элементарных объектов. Если такая группа в свою очередь имеет уникальный идентификатор, она тоже может рассматриваться как индивидуальный объект. Такая группировка может быть как на базе однотипных, так и на базе разнотипных объектов.
Итак, мы можем сказать, что объекты реального мира имеют какое-то физическое (реальное) воплощение (объект реального мира), какое-то представление в нашей модели данных - компьютерной, как в ГИС, или некомпьютерной, как традиционная карта, (объект на карте, объект в ГИС), можно говорить о типе объекта в рамках какой-то содержательной классификационной схемы или схем, об индивидуальном объекте (экземпляре объекта, который уникален хотя бы своим идентификатором), о пространственном (геометрическом) типе объекта - точечный, линейный, площадной, об атрибутах объекта (его описательных характеристиках), о какой-то структуризации его атрибутов (класс атрибутов - например, объединение однотипных характеристик объекта в один класс - демографические характеристики города), о конкретном значении конкретного атрибута у данного объекта (например, численность населения города Пензы в 1980 году).
Помимо информации, относящейся к индивидуальным объектам, большое значение имеет также так называемая метаинформация, или метаданные, как часто говорят, то есть данные о данных. Это может быть, например:
определения объектов (то есть принцип их выделения);
определения атрибутов (что, например, скрывается за краткими заголовками полей таблиц или именами полей в базе данных);
объяснение способа измерения значений атрибутов или источники этих данных и способ кодирования атрибутов);
пояснение к цветовой легенде карты и условным знакам (легенда);
правила, по которым проводились границы объектов;
сведения о дате, на которую информация актуальна;
сведения об источниках информации, методах ее получения;
пояснения к отсутствующим значениям в атрибутах, - какой код отсутствия значений, что он означает, (данный атрибут не имеет смысла для данного объекта, данное значение не было померено или результат измерения был забракован, или измерения дали нулевой результат) значение ниже предела обнаружения;
а также любая другая информация, которая способствует правильному использованию информации о нужных нам объектах.
Для карты, например, необходимым элементом метаданных являются сведения об использованной системе координат и картографической проекции, методе составления (полевые работы, генерализация) и использованных материалах.
Чуть подробнее о непространственных атрибутах. Для них важнейшей характеристикой является тип использованной шкалы измерений. Общепринято деление шкал (и, соответственно, данных в этих шкалах) на качественные и количественные . К качественным относят шкалы номинальную (наименований) и ординальную (порядковую, ранговую). К количественным относят интервальную (интервалов) и рациональную (отношений) шкалы.
Отметим, что это деление не имеет ничего общего с формой записи или кодированием значений - и данные в номинальной шкале могут быть представлены (и всегда, в конечном счете, представляются в компьютере) числом. Но это число как бы и не численное значение, это просто код класса, число выступает просто как заменитель названия В случае номинальной и порядковой шкал для него не имеют смысла арифметические операции, (для порядковой шкалы - только операция упорядочения и сравнения больше-меньше - равно, а для номинальной - только сравнение равно - не равно)
Проиллюстрируем различие между разными шкалами.
Качественные
Количественные
Свойства
Наличие/отсутствие Качественное различие Отнесение к одному и тому же или другому классу
Место в определенной последовательности Относительная позиция по сравнению с другими Больше, меньше или равно
Различие Условное начало отсчета (условный нуль) Вычитание, сложение - на сколько
Отношение - во сколько раз Умножение Деление
Порождающий процесс
Классификация
Ранжирование
Измерения
Примеры
Название города Тип землепользования Название шосссе
Большой город Самая богатая гумусом почва Шоссейная дорога местного назначения
Температура в градусах Цельсия Азимут в градусах
Число жителей в городе Площадь земельного участка Расстояние между двумя горными вершинами
Кроме этого, атрибуты могут быть первичными (измеренными, введенными) и вторичными, расчетными, полученными расчетом из значений других атрибутов. Частный случай таких расчетных - это атрибуты (обычно пространственные), которые рассчитываются исходя из позиционных параметров объектов (например, периметр).
Некоторое свойство, непрерывно распределенное в пространстве, например, на земной поверхности, удобно в математическом смысле рассматривать в качестве поля. (Вообще говоря, разного вида - скалярного, векторного, тензорного, трехмерного или двумерного, определенного только на поверхности земли или с ней не связанного, а только проектируемого на нее или пересекаемого ею, но всех сложностей мы сейчас касаться не будем). Типичные формы их представления таковы.
Нерегулярная сеть точек - точечные объекты, в качестве атрибутов имеющие значение поля в данной точке. С помощью такого способа представления, если не иметь очень густо расположенные по сравнению с пространственной изменчивостью поля точек, трудно гарантировать его адекватное представление. Сеть может быть слишком редкая, или точки, выбранные случайно, не попадают на характерные представительные места/значения, или, наоборот, точки выбраны неслучайно и тоже не являются представительными (например, все значения кислотности почвы измерялись только там, где можно было легко передвигаться, то есть на голых водоразделах, а не в заболоченных речных долинах).
Способ представления изолиниями - наиболее распространен в традиционной картографии. Обычно нет никакой информации о поведении поля между изолиниями, и вторая проблема состоит в том, что по одним и тем же исходным данным (обычно это точки нерегулярной сети) интерполяция и последующее проведение изолиний может быть сделана не единственным способом. Способ представления очень привычный, но не самый удобный.
Наиболее удобен для многих случаев вариант, когда поля задаются регулярно расположенными в пространстве точками достаточной густоты, (регулярная модель) особенно когда это точки не интерполированные из нерегулярных, а измерения, проведенные по регулярной сети. Из них легко перейти к любой другой форме представления.
Несколько особняком стоит модель данных TIN
Вообще говоря, чтобы описывать пространственную информацию, необязательно нужно использовать ее графическое представление. На определенном уровне, для ряда задач можно работать с табличным представлением - все мы такие таблицы видели. Название городов как идентификаторы и демографические данные по ним. Участки дорог по пикетажу от 5 до 7 километра , объем движения по ним в часы пик, тип дорожного покрытия. Наконец, таблица расстояний между городами. Соответственно, иногда можно использовать просто самые обычные СУБД. Но все это, конечно, может иметь только очень ограниченное применение. Ненаглядно, неудобно, и мы не в состоянии использовать очень многие свойства пространственной информации.
Традиционное картографическое представление данных тоже всем, конечно, известно. Если у нас есть карта с названиями населенных пунктов и таблицы дополнительных характеристик по этим населенным пунктам, мы можем их совместно анализировать. Хотя и очень медленно и неудобно, но некоторые пространственные закономерности в наших табличных данных мы при этом уже в состоянии учесть. Отметим, что карты могут быть геометрически точны рассчитаны на то, чтобы правильно с точностью до искажений картографической проекции передавать форму, размеры и абсолютное положение объектов; по таким картам можно производить те или иные геометрические измерения и могут быть только, топологически точны (например, схема железных дорог, на которой ни формы линий не соблюдены, ни масштаб не один в разных местах. Но если города A, B и C соединены железной дорогой, и она проходит именно через город C, то этот факт точно отражен в графике). Такие карты, по которым принципиально нельзя мерить расстояния и координаты объектов, но которые сохраняют все топологические свойства нужного множества объектов, например, дорожной сети (кто с кем связан, или кто с кем граничит, например) - чаще называются не картами, а схемами, а если быть более точным - графами. Конкретная карта может быть одновременно и геометрически, и топологически точна, но могут быть и карты, точные геометрически, но не топологически.
Карту, равно как и упомянутый граф дорожной сети, и табличные описания, можно рассматривать как разновидности моделей пространственных данных, может быть, компьютерные, может быть, нет.
Модель данных - это концептуальный уровень организации данных., логический уровень. Если говорить о компьютерных моделях данных, а нас только они и интересуют, то это всегда цифровое представление данных. Не только числовые характеристики, но и информация положения, и пространственная геометрическая (положения и формы), и пространственная топологическая (взаиморасположение и связи объектов), и описательная словесная (неколичественная) информация всегда в компьютерных моделях данных присутствуют в числовой форме. Термины типа полигон , полилиния , дуга , идентификатор , таблица как раз относятся к этому уровню, равно как и понятие слой , тема , способ индексирования . Это более уровень пользователя и администратора базы данных, а также и разработчика систем, и касается все это не столько программирования, сколько некоторых разделов математики, с одной стороны, и соотношения элементов модели данных с действительными объектами реального мира, с другой. Основной решаемый на этом уровне вопрос - это вопрос степени адекватности модели данных решаемой задаче. Достаточно ли точно, с сохранением всех ли нужных связей выбранная модель данных позволит смоделировать в компьютере реальную ситуацию? И к рассмотрению проблем на этом уровне обязательно следует привлекать пользователя-специалиста по конкретной задаче, конкретному применению ГИС.
Более детальный уровень рассмотрения организации данных часто называется структурой данных. Здесь уже фигурируют и математические и программистские термины, такие, как матрицы, списки, системы ссылок, указатели, механизмы сжатия информации, а основные вопросы, рассматриваемые на этом уровне - это вопросы эффективности в смысле экономии места и быстродействия, то есть уже чисто внутренние компьютерные вопросы эффективности.
На следующем по детальности уровне организации данных мы уже имеем дело со структурой файлов данных и их конкретными форматами. Это уже размещения информации в файле - что вынесено в его заголовок, и как он организован, что в какой последовательности и какими формами представления чисел записано в этих файлах. Это уровень уже чисто программистский, рядовому конечному непрограммирующему пользователю вникать в этот уровень обычно уже нет необходимости совсем. Другое дело, что назначение конкретных файлов в определенных структурах данных, возможности и ограничения по использования конкретных форматов файлов знать полезно.
Ну, и наконец, следует сказать об уровне организации конкретной структуры базы данных ГИС, которая уже может быть уникальна для каждого конкретного проекта - какие объекты вносятся в базу данных, как они распределены между слоями (если мы используем принцип послойной организации данных), какие используем классификаторы и т.д. Этот уровень сегодня не является предметом нашего рассмотрения.
Итак, какие же бывают модели пространственных данных. Как часто случается в жизни, их нельзя расклассифицировать по одной оси, они различаются как бы в разные стороны .
Сначала о двух подходах, двух принципах организации моделей пространственных данных - один принцип послойной организации информации (его часто называют классическим), второй - основан на объектно-ориентированном подходе. Надо сразу отметить, что объектно-ориентированный подход здесь понимается не совсем в том смысле, что в объектно-ориентированном программировании, и что между двумя упомянутыми принципами организации информации антагонистического противоречия , конечно, нет. Послойный принцип организации информации очень нагляден и хорошо соотносится с приемами традиционной картографии. Он заключается в том, что находится некоторое деление объектов на тематические слои, объекты, отнесенные к одному слою образуют некоторую физически отдельную единицу данных, - например, они собираются в один файл или в одну директорию, они имеют единую и отдельную от других слоев систему идентификаторов, к ним можно обращаться как к некоторому множеству. Например, мы выносим в один слой все объекты гидрографии, или все шоссейные дороги, или все, относящееся к растительному покрову. Чаще всего при этом организуется также и деление одного тематического слоя по горизонтали - по аналогии с отдельными листами карт. Это делается в основном из удобства администрирования баз данных и чтобы избежать работы с чрезмерно большими файлами. Для случая векторно-топологических моделей данных обычно существуют некоторые дополнительные ограничения - в один лист одного тематического слоя можно поместить объекты не всех геометрических типов одновременно. Так, в ARC/INFO в одном покрытии (так как раз называется физическая единица, соответствующая одному листу одного тематического слоя) можно поместить или только точечные, или только линейные, или только площадные объекты, или комбинацию линейных и точечных, или комбинацию линейных и площадных, но нельзя собрать вместе точечные и площадные или все три типа объектов. Это ограничение для практики никаких проблем не представляет, но оно типично для векторно-топологической модели данных. Векторные нетопологические модели данных в этом смысле предоставляют больше свободы, но все равно часто и в них в один слой помещаются только объекты одного геометрического типа. Число слоев при послойной организации данных может быть ограничено, может быть практически не ограничено в зависимости от конкретной реализации. При послойной организации данных очень удобно манипулировать большими группами объектов, представленных слоями, как единым целым, например, включая или выключая слои для визуализации, определять операции, основанные на взаимодействии слоев. В целом можно сказать, что послойная организация данных имеет большой аналитический потенциал. Он часто используется при организации как векторно-топологических, так и векторно-нетопологических моделей пространственных данных для ГИС, так же как нередко и в САПР. Там, впрочем, отдельные слои могут обычно включать все типы объектов и само это деление на слой носит более простой и формальный характер - они часто используются только для управления визуализацией и как удобный способ задания умолчаний для чертежа. И абсолютно преобладает послойный принцип организации в растровых моделях данных.
Объектно-ориентированный принцип организации данных в ГИС акцентирует внимание не столько на общих свойствах объектов (моделируемых через деление на слои в предыдущем подходе), сколько на их положении в какой-либо сложной иерархической схеме классификации, на взаимоотношениях между объектами. В силу этого удобно отображаются различные родственные и генетические отношения между объектами, отношения соподчиненности, функциональные связи между объектами. В целом этот подход в чистом виде менее распространен, чем послойный, вероятно, отчасти из-за больших трудностей практической организации всей системы взаимосвязей объектов. Трудозатраты на подготовительный этап формирования конкретной структуры базы данных могут быть очень велики. Могут быть и определенные сложности с изменением сформированной структуры базы данных и приспособлении ее к новым задачам. Для информации о природных объектах вообще применяется реже, чем послойный подход. Трудно также представить себе растровую ГИС, эффективно реализующую объектный подход.
Сегодня в моделях данных в ГИС преобладает послойный принцип организации информации. Два этих подхода, (может быть, если отмести крайности) вообще не противоречат друг другу. Существуют возможности использования обеих подходов совместно. В будущем можно ожидать более тесного их взаимодействия. Однако сегодня могут существовать проблемы обмена информацией между системами, использующими два этих разных подхода. Иногда высказывается мнение, что объектно0ориентированный подход более эффективен при работе с ГИС только по техногенным объектам, а послойный - при работе с природными объектами и для случая, когда имеешь дело и с теми и с другими. Я не уверен, что это положение носит общий характер, скорее касается каких-то конкретных систем только.