В предыдущих частях статьи (см. журнал «Пространственные данные». — 2008. — № 4. — http://gisa.ru/pd_4_08.html ) были рассмотрены основные принципы внутренней организации хранения обычных и пространственных данных в СУБД. Для решения прикладных задач на основе изложенных подходов могут быть сформированы разнообразные схемы данных, наиболее эффективные для хранения и обработки специальной информации.
Перечислим некоторые дополнительные требования, которые могут накладываться на структуру и содержание баз данных:
— ограничение на значение поля таблицы. Например, поле НАЗВАНИЕ УЛИЦЫ может содержать только одно из значений множества названий улиц того или иного города;
— ограничение на взаимное пространственное расположение объектов. Например, объект «населенный пункт» не может пространственно совмещаться с объектом «озеро»;
— ограничение на соотношение геометрических характеристик объектов. Например, сумма площадей земель всех категорий в рамках одного административного района должна равняться площади района, а площадь лесоустроительного выдела не может быть меньше установленной нормативными документами.
Рассмотрим несколько типичных задач, связанных с хранением данных, и установим дополнительные требования, которые должны выполняться.
Хранение неструктурированных данных
Задача хранения данных, имеющих произвольную структуру, возникает в информационных системах или ГИС, источником сведений для которых являются традиционные, «бумажные», материалы. Предполагается, что в таких системах последовательно выполняются:
— цифрование архивных данных с целью обеспечения максимально быстрого доступа и просмотра информации;
— нормализация «сырых» цифровых данных с целью приведения их к форме, предназначенной для решения прикладных задач.
Для хранения необработанных цифровых данных необходимо применять наиболее универсальную модель, накладывающую минимальное количество ограничений на хранимые данные. Такой моделью, в частности, является геореляционная модель. Для создания ГИС в этом случае необходимо последовательно реализовать несколько этапов.
Этап 1. Изучение структуры исходных данных. Картографический материал на традиционном, «бумажном», носителе ориентирован в первую очередь на визуальное восприятие. В неявной форме он содержит отображение большого числа отношений между объектами (пересечения, примыкания, удаленность, вложенность и т. п.), которые человек, «читающий» карту, узнает и осмысливает. В общем случае цифрование картографического материала приведет к потере таких отношений. На этапе проектирования структуры геореляционной базы данных необходимо понять, какая информация будет потеряна и насколько критично это для задач, решение которых предполагается в будущем.
Пусть, например, мы имеем карту города, на которой отражены дома и улицы, кроме того, на карте обозначены магазины, а из приложенной таблицы можно узнать, какой из магазинов наиболее близок к тому или иному дому. Чтобы преобразовать такую карту в цифровой вид, необходимо создать две геореляционные таблицы: ДОМА и УЛИЦЫ, где в качестве атрибута должны выступать поля АДРЕС и НАЗВАНИЕ соответственно. Чтобы сохранить информацию о магазинах, нет необходимости создавать отдельную таблицу, так как МАГАЗИНЫ являются подмножеством совокупности ДОМОВ. Для обозначения элементов этого подмножества вполне достаточно в таблице ДОМА предусмотреть поле НОМЕР МАГАЗИНА (НАЗВАНИЕ МАГАЗИНА). Для домов, в которых нет магазинов, поле будет иметь значение NULL (т. е. «пусто»). Однако, если не обеспечить уникальность каждого значения поля НОМЕР МАГАЗИНА (номера будут повторяться), будет затруднительно создать уникальный список магазинов, пользуясь только значениями поля НОМЕР МАГАЗИНА; для этого придется совместно анализировать значения полей АДРЕС и НОМЕР МАГАЗИНА.
Сложнее дело обстоит с информацией о ближайших магазинах. Если для создания ГИС используется программный продукт, имеющий функционал для анализа близости (например, ArcGIS, ESRI, Inc., США), то вводить эту информацию нет необходимости — она может быть получена в дальнейшем при обработке данных. В противном случае придется создать дополнительную таблицу (а то и две взаимосвязанных), где явно будет указан перечень магазинов и ближайших к ним домов.
Этап 2. Разработка системы идентификации объектов. Геореляционная модель требует наличия ключа — поля, содержащего уникальные значения, обозначающие конкретный объект. Из предыдущего абзаца понятно, что если использовать в качестве ключа такие «естественные» обозначения объектов, как их адрес или номер, то можно столкнуться с проблемой повторения адресов и номеров для разных объектов, а это нарушение условия целостности данных.
В таком случае для целей создания ГИС необходимо каждому объекту в системе присвоить уникальный номер. Выбор принципа формирования и построения номера может быть любым: порядковый номер; случайный номер; номер, формируемый по некоторому правилу и т. п.
Этап 3. Разработка схемы данных. Вид схемы данных ГИС с идентификаторами, содержащей дома и магазины, приведен на рис. 1.
Рис. 1. Схема данных ГИС с использованием идентификаторов объектов
Надо отметить, что в Автоматизированной геоинформационной кадастровой системе Республики Коми (АГИКС РК, www.agiks.ru ) более 90% информации хранится в неструктурированной, геореляционной форме, а целостность данных обеспечивается именно системой идентификации объектов.
Ниже рассмотрим несколько моделей данных, применимых для решения конкретных задач.
Модели данных инженерных сетей
Инженерная сеть представляет собой совокупность источников и потребителей «продукта» (электроэнергия, вода, нефть, сигнал и т. п.), а также линий связи между ними (трубопроводы, провода, линии распространения сигнала и т. п.). В состав инженерной сети могут включаться технологические узлы, задача которых — изменение тех или иных характеристик продукта, например, снижение или повышение давления, разветвление, усиление и т. п. Несмотря на большое разнообразие видов инженерных сетей, для их представления в ГИС используется одна модель данных, основанная на цепочно-узловой модели (рис. 2).
Рис. 2. Инженерная сеть и ее представление в ГИС
Создание модели инженерной сети требует топологической информации, а именно сведений о примыкании отдельных элементов сети друг к другу, которое должно обеспечиваться с абсолютной точностью. Цепочно-узловая модель с успехом решает эту задачу: линейные примитивы являются линиями связи между потребителями, а точечные — узловыми элементами. В ряде случаев узловые элементы сети (например, насосы) удобно также представлять дугами, тогда точечные элементы будут отображать только соединения линейных элементов (раструбы, врезки).
При построении моделей сетей, в которых направление движения продукта от источника к потребителю определяется однозначно (например, незакольцованные трубопроводы), иногда бывает важно соблюдать направление цифрования линейных объектов по ходу движения продукта.
Рис. 3. Модель данных гидрографической сети
Частным случаем моделей сетей являются модели гидрографической сети. В этом случае поставщик «продукта» — исток реки, а потребитель — впадение водотока в море. В модель гидрографической сети для учета боковой приточности (т. е. малых водотоков, не отображенных на карте) могут быть введены дополнительные объекты — водосборные бассейны. В этом случае необходимо обеспечить связь один-к-одному между водосборными бассейнами и линейным примитивом — рекой. При построении модели водотока важно соблюдать направление цифрования от истока реки к ее устью. При несоблюдении этого условия некоторые программные продукты не будут корректно работать (например, процедура Topo To Raster в ArcGIS Spatial Analyst).
Модели данных кадастровой информации
Основной функцией кадастра является учет. Кадастр, имеющий дело с пространственными объектами, должен решать задачи учета, принимая во внимание пространственное размещение объектов. Типичным пример — земельный кадастр, который содержит сведения о правах на земельные участки и поворотных точках границ земельных участков, представленные в виде координат. Другим примером может служить лесоустройство, фиксирующее характеристики древостоев, расположенных в границах лесотаксационных выделов.
Важнейшим условием целостности данных в кадастровых системах является согласование площадей объектов (или учетных единиц), входящих в кадастр. Так, площадь всех земельных участков, входящих в состав кадастрового района, должна равняться площади кадастрового района, площадь всех лесотаксационных выделов — площади квартала (рис. 4).
Рис. 4. Основное требование к целостности данных в кадастровых системах
Данное требование можно обеспечить в рамках бесструктурного способа хранения информации. Для этого необходимо выполнение трех условий, которые мы рассмотрим применительно к материалам лесоустройства.
Базовой единицей хранения лесоустроительной информации является таксационный выдел — участок лесного фонда, растительность которого обладает приблизительно одинаковыми характеристиками. Лесоустроительные выделы группируются в лесоустроительный квартал, имеющий, как правило, прямоугольную форму.
Условие 1: границы смежных выделов должны совпадать с абсолютной точностью.
Условие 2: границы квартала и выдела не должны пересекаться, границы выделов не должны пересекаться, они могут только примыкать друг к другу.
Условие 3: вся площадь квартала должна быть «закрыта» выделами без лакун.
Соблюдение перечисленных условий обеспечит равенство суммы площадей выделов и площади квартала.
Однако, с технической точки зрения, в рамках бесструктурной геореляционной модели выполнение подобных условий часто бывает затруднительным в силу необходимости специального контроля за соблюдением абсолютной точности примыканий. Более рациональным в этом случае является использование цепочно-узловой модели, которая обеспечивает хранение топологической информации в явном виде и просто «не позволит» нарушить соблюдение перечисленных условий (рис. 5).
Рис. 5. Хранение лесоустроительной информации в геореляционной и цепочно-узловой (топологической) моделях
Растровые модели
В заключение исследуем сферы применения растровой модели данных. Наиболее часто она используется для хранения данных дистанционного зондирования Земли (ДЗЗ) и результатов их обработки, иное применение на практике встречается редко. Однако существует целый класс аналитических и картографических задач, решение которых методами растровых ГИС весьма эффективно.
В качестве примера рассмотрим хранение данных о рельефе. Растровая модель данных, адаптированная для этих целей, называется цифровой моделью рельефа (ЦМР) и образована матрицей высот. В каждой клетке таблицы — ячейке растра — хранятся сведения о средней высоте земной поверхности, свойственной ячейке. Высота может быть представлена в виде абсолютной или относительной отметки. ЦМР может быть легко отображена на экране компьютера при помощи соответствующей цветовой шкалы (рис. 6).
Рис. 6. Визуализация ЦМР в виде карты с послойной окраской рельефа по ступеням высоты
Построение профиля по растровой модели рельефа является значительно более легкой задачей, чем в случае использования векторной модели, так как нет необходимости осуществлять поиск точек пересечения с горизонталями и выполнять интерполяцию высотных точек по линии профиля. ЦМР позволяет получить искомые отметки высот вдоль линии профиля достаточно просто. Принцип его построения поясняет рис 7.
Рис. 7. Построение профиля местности по ЦМР
Растровая модель данных находит применение в решении научных задач. В качестве примера рассмотрим моделирование поверхностного стока при помощи программного продукта ARC/INFO 7 (модуль GRID), где в качестве исходных данных используется модель рельефа, показанная выше.
Создание модели поверхностного стока выполняется с использованием функции FLOWACCUMULATION. В каждой ячейке построенной матрицы отражен объем воды, который может накопиться на данном участке местности при условии, что дождь будет идти непрерывно. В дальнейшем при помощи функций модуля GRID из этой модели можно выделить собственно осевые линии водотоков и их характеристики. Результат моделирования приведен на рис. 8.
Рис. 8. Растровая модель поверхностного стока, построенная при помощи модуля GRID программы ARC/INFO 7
Даже при простом визуальном анализе такая модель позволяет получить ответы на самые разные вопросы, например:
— в каком направлении потечет вода (или иная жидкость, например нефть), если она попадет в определенный участок местности;
— в какую реку попадет вода (нефть, кислота, жидкие отходы и т. п.);
— какие участки местности наиболее опасны с точки зрения аварийных ситуаций на продуктопроводах;
— на какой речной бассейн более всего влияет данное техническое сооружение;
— каким будет объем поверхностного стока (для анализа паводковой ситуации).
Замечания о применимости моделей данных
Как видно, каждая из моделей данных находит применение для решения тех или иных задач. На заре развития ГИС в России некоторые производители программного обеспечения из маркетинговых соображений продвигали идеи о некоем «превосходстве» той или иной модели данных над другими. Более чем 15-летняя практика работы автора в сфере ГИС показывает, что применимость конкретной модели данных и созданной в ее рамках схемы данных необходимо рассматривать относительно поставленной задачи. При этом нужно принимать во внимание и экономические аспекты создания ГИС. Ведь может оказаться так, что затратив значительные средства на формирование цифровой карты с сохранением топологических отношений между объектами, ее разработчик обнаруживает ненужность сведений об этих отношениях для конкретного задания. И наоборот, применение, например, геореляционной модели для кадастровых целей без организации должного контроля за качеством вводимой информации обязательно приведет впоследствии к серьезным ошибкам в расчетах.
Таким образом, выбор модели данных, наиболее подходящей для решения поставленных задач, является важнейшим этапом проектирования любой геоинформационной системы.