Модели представления графической информации (векторная, растровая, квадродерево).
Существуют два основных метода представления географического пространства. Первый метод использует квантование, или разбиение пространства на множество элементов, каждый из которых представляет малую, но вполне определенную часть земной поверхности. Этот растровый метод может использовать элементы любой подходящей геометрической формы при условии, что они могут быть соединены для образования сплошной поверхности, представляющей все пространство изучаемой области. Хотя возможны многие формы элементов растра, например, треугольная или шестиугольная, обычно проще использовать прямоугольники, а еще лучше - квадраты, которые называются ячейками. В растровых моделях ячейки одинаковы по размеру, но это не является обязательным требованием для разбиения пространства на элементы, которое не выполняется в не очень широко используемом подходе, называемом квадродеревом. Рассмотрим модели, в которых все ячейки - одинакового размера, и представляют такое же количество географического пространства, как любые другие.
Растровые структуры данных не обеспечивают точной информации о местоположении, поскольку географическое пространство поделено на дискретные ячейки конечного размера. Вместо точных координат точек мы имеем отдельные ячейки растра, в которых эти точки находятся. Это еще одна форма изменения пространственной мерности, которая состоит в том, что мы изображаем объект, не имеющий измерений (точку), с помощью объекта (ячейки), имеющего длину и ширину. Линии, то есть одномерные объекты, изображаются как цепочки соединенных ячеек. Каждая точка линии представляется ячейкой растра, и каждая точка линии должна находиться где-то внутри одной из ячеек растра.
В растровых системах есть два способа включения атрибутивной информации об объектах. Простейшим является присваивание значения атрибута каждой ячейке растра. Распределяя эти значения, мы в конечном итоге позволяем позициям значений атрибутов играть роль местоположений объектов. Например, если числом 10 мы представляем водную поверхность, и записываем его в левую верхнюю ячейку растра, то по умолчанию эта ячейка является участком земной поверхности, представляющим воду. Таким образом мы можем каждой ячейке на данной карте присвоить только одно значение атрибута. Альтернативный подход, а на самом деле, - расширение только что описанного, состоит в связывании каждой ячейки растра с базой данных. Этот подход становится все более преобладающим, так как он уменьшает объем хранимых данных и может обеспечивать связь с другими структурами данных, которые также используют СУБД для хранения и поиска данных.
Растровые структуры данных могут показаться плохими из-за отсутствия точной информации о местоположении. На самом деле верно обратное. Растровые структуры имеют много преимуществ перед другими. В частности, они относительно легко понимаются как метод представления пространства. Например, телевидение использует то же растровое представление изображений в виде набора точек (пикселов). Еще одной замечательной характеристикой растровых систем является то, что, многие функции, особенно связанные с операциями с поверхностями и наложением, легко пополняются на этом типе структур данных. Среди главных недостатков растровой структуры данных - уже упоминавшаяся проблема низкой пространственной точности, которая уменьшает достоверность измерения площадей и расстояний, и необходимость большого объема памяти, обусловленная тем, что каждая ячейка растра хранится как отдельная числовая величина.
Второй метод представления географического пространства, называемый векторным, позволяет задавать точные пространственные координаты явным образом. Здесь подразумевается, что географическое пространство является непрерывным, а не разделенным на дискретные ячейки. Это достигается приписыванием точкам пары координат (X и Y) координатного пространства, линиям — связной последовательности пар координат их вершин, областям — замкнутой последовательности соединенных линий, начальная и конечная точки которой совпадают. Векторная структура данных показывает только геометрию картографических объектов. Чтобы придать ей полезность карты, мы связываем геометрические данные с соответствующими атрибутивными данными, хранящимися в отдельном файле или в базе данных. В растровой структуре мы записывали значение атрибута в каждую ячейку, в векторном же представлении мы используем совсем другой подход, храня в явном виде собственно графические примитивы без атрибутов и полагаясь на связь с отдельной атрибутивной базой данных. В векторных структурах данных линия состоит из двух или более пар координат, для одного отрезка достаточно двух пар координат, дающих положение и ориентацию в пространстве. Более сложные линии состоят из некоторого числа отрезков, каждый из которых начинается и заканчивается парой координат. Таким образом видно, что хотя векторные структуры данных лучше представляют положения объектов в пространстве, они не абсолютно точны. Они все же являются приближенным изображением географического пространства.
Хотя некоторые линии существуют самостоятельно и имеют определенную атрибутивную информацию, другие, более сложные наборы линий, называемые сетями, содержат также дополнительную информацию о пространственных отношениях этих линий. Например, дорожная сеть содержит не только информацию о типе дороги и ей подобную, она показывает также возможное направление движения. Другие коды, связывающие эти отрезки, могут включать информацию об узлах, которые их соединяют. Все эти дополнительные атрибуты должны быть определены по всей сети, чтобы компьютер знал присущие реальности отношения, которые этой сетью моделируются. Такая явная информация о связности и пространственных отношениях называется топологией.
Площадные объекты могут быть представлены в векторной структуре данных аналогично линейным. Соединяя отрезки линии в замкнутую петлю, в которой первая пара координат первого отрезка является одновременно и последней парой координат последнего отрезка, мы создаем область, или полигон. Как с точками и линиями, так и с полигонами связывается файл, содержащий атрибуты этих объектов.
В то время, как растровые и векторные структуры данных дают средства отображения отдельных пространственных феноменов на отдельных картах, все же существует необходимость разработки более сложных подходов, называемых моделями данных, для включения в базу данных взаимоотношений объектов, связывания объектов и их атрибутов, обеспечения совместного анализа нескольких слоев карты. Вначале рассмотрим растровые модели, затем – векторные.
Растровые модели
Как говорилось выше, в растровых структурах данных каждая ячейка связана с одним значением атрибута. Для создания растровой тематической карты собираются данные об определенной теме в форме двухмерного массива ячеек, где каждая ячейка представляет атрибут отдельной темы. Такой двухмерный массив называется покрытием (coverage). Покрытия используют для представления различных типов тематических данных (землепользование, растительность, тип почвы, поверхностная геология, гидрология и т.д.). Кроме того, этот подход позволяет фокусировать внимание на объектах, распределениях и взаимосвязях тем без ненужной путаницы. Чаще всего создается отдельное покрытие для каждой дополнительной темы. Можно сложить эти покрытия наподобие слоеного пирога, в котором сочетание всех тем может адекватно моделировать все необходимые характеристики области изучения.
Существует несколько способов хранения и адресации значений отдельных ячеек растра, их атрибутов, названий покрытий и легенд. Среди первых попыток можно упомянуть подход под названием GRID/LUNR/ MAGI, все ранние растровые ГИС использовали именно его. В этой модели каждая ячейка содержит все атрибуты вроде вертикального столбика значений, где каждое значение относится к отдельной теме. Преимуществом, конечно, является то, что относительно легко выполняется вычислительное сравнение многих тем или покрытий для каждой ячейки растра. Но в то же время, неудобно сравнивать группы ячеек одного покрытия с группами ячеек другого покрытия, поскольку каждая ячейка должна адресоваться индивидуально.
Векторные модели
Векторные структуры данных дают представление географического пространства более интуитивно понятным способом и очевидно больше напоминают хорошо известные бумажные карты. Существуют несколько способов объединения векторных структур данных в векторную модель данных, позволяющую исследовать взаимосвязи между показателями внутри одного покрытия или между разными покрытиями. Например спагетти-модель, топологическая модель и кодирование цепочек векторов.
Простейшей векторной структурой данных является спагетти-модель, приведенная на рисунке 1, которая по сути переводит "один в один" графическое изображение карты. Возможно, она представляется как наиболее естественная или наиболее логичная, в основном потому, что карта реализуется как умозрительная модель. Хотя название звучит несколько странно, оно на самом деле весьма точно по сути. Если представить себе покрытие каждого графического объекта нашей бумажной карты кусочком (одним или несколькими) макарон, то вы получите достаточно точное изображение того, как эта модель работает. Каждый кусочек действует как один примитив: очень короткие — для точек, более длинные — для отрезков прямых, наборы отрезков, соединенных концами, — для границ областей. Каждый примитив — одна логическая запись в компьютере, записанная как строки переменной длины пар координат (X,Y).
Рисунок 1 - Спагетти-модель векторных данных
В этой модели соседние области должны иметь разные цепочки спагетти для общих сторон. То есть, не существует областей, для которых какая-либо цепочка спагетти была бы общей. Каждая сторона каждой области имеет свой уникальный набор линий и пар координат. Хотя, конечно, общие стороны областей, даже будучи записанными отдельно в компьютер должны иметь одинаковые наборы координат. В отличие от спагетти-модели, топологические модели, как это следует из названия, содержат топологическую информацию в явном виде. Для поддержки продвинутых аналитических методов нужно внести в компьютер как можно больше явной топологической информации. Подобно тому, как математический сопроцессор объединяет многие специализированные математические операции, так и топологическая модель данных объединяет решения некоторых из наиболее часто используемых в географическом анализе функций. Это обеспечивается включением в структуру данных информации о смежности для устранения необходимости определения ее при выполнении многих операций. Топологическая информация описывается набором узлов и дуг. Узел - больше, чем просто точка, обычно это пересечение двух или более дуг, и его номер используется для ссылки на любую дугу, которой он принадлежит. Каждая дуга (arc) начинается и заканчивается либо в точке пересечения с другой дугой, либо в узле, не принадлежащем другим дугам. Дуги образуются последовательностями отрезков, соединенных промежуточными (формообразующими) точками. В этом случае каждая линия имеет два набора чисел: пары координат промежуточных точек и номера узлов. Кроме того, каждая дуга имеет свой идентификационный номер, который используется для указания того, какие узлы представляет ее начало и конец. Области, ограниченные дугами, также имеют идентифицирующие коды, которые используются для определения их отношений с дугами. Далее, каждая дуга содержит явную информацию о номерах областей слева и справа, что позволяет находить смежные области. Эта особенность данной модели позволяет компьютеру знать действительные отношения между барическими объектами. Другими словами, мы имеем векторную модель данных, которая лучше отражает то, как мы, пользователи карт, определяем пространственные взаимоотношения, записанные в традиционном документе.
Квадратомическое дерево
Иерархическая структура данных, известная как квадратомическое дерево, используется для накопления и хранения географической информации. В этой структуре двухмерная геометрическая область рекурсивно подразделяется на квадраты, что определило название данной модели.
На рисунке показан фрагмент двухмерной области QT, состоящей из 16 пикселей. Каждый пиксель обозначен цифрой. Вся область разбивается на четыре квадранта: А, В, С, D. Каждый из четырех квадрантов является узлом квадратомического дерева. Большой квадрант QT становится узлом более высокого иерархического уровня квадратомического дерева, а меньшие квадранты появляются на более низких уровнях. Технология построения квадратомического дерева основана на рекурсивном разделении квадрата на квадранты и подквадранты до тех пор, пока все подквадранты не станут однородными по отношению к значению изображения (цвета) или пока не будет достигнут предопределенный заранее наименьший уровень разрешения.
Если регион состоит из 2n х 2n пикселей, то он полностью представлен на уровне n, а единичные пиксели находятся на нулевом уровне. Квадрант уровня 1 (0<1<n) содержит 21 х 21 пикселей, всего 41.
Преимущество такой структуры состоит в том, что регулярное разделение обеспечивает накопление, восстановление и обработку данных простым и эффективным способом. Простота проистекает из геометрической регулярности разбиения, а эффективность достигается за счет хранения только узлов с данными, которые представляют интерес.
Фрагмент растра, квантованный для построения квадратомического дерева
Квадратомическое дерево в виде Е-структуры
Поскольку квадратомическое дерево известно как пространственно-рациональный способ представления сгруппированных однородных ми сопряженных изображений, их преимущество над векторной репрезентацией многих (но не всех) пространственных алгоритмов относительно затрат машинного времени весьма существенно. Первоначально большинство приложений моделей квадратомических деревьев было сделано для обработки изображений. Из этой области данная модель была перенесена в ГИС. Модели, основанные на квадратомических деревьях, обеспечивают расчеты площадей, центроидные определения, распознавание образов, выявление связанных компонентов, определение соседства, преобразование расстояний, разделение изображений, сглаживание данных и усиление краевых эффектов. Вследствие этого появилась возможность использовать квадратомические деревья для хранения географических данных. Однако при этом требуется развитие процедур для превращения растровых данных в формат квадратомического дерева и усовершенствование техники линейного кодирования.
Последние исследования показали, что для больших квадратомических деревьев наиболее подходящей структурой является линейное квадродерево. В нем каждый листовой узел представлен линейным числовым кодом, который базируется на упорядоченном списке узловых точек прародителей. Последующее преобразование дерева в код достигается использованием битового уровня или модулярной арифметики. Система линейных кодов обеспечивает эффективную связь между структурами пространственных данных и алгоритмами, применяемыми в вычислительной геометрии для решения проблем восстановления прямоугольников и определения ближайшего соседа.
Иерархические модели, как и прочие, могут описывать системы, данные и схемы процессов обработки данных. Следует, однако, подчеркнуть, что правильно составленная иерархическая схема должна содержать в качестве записей (вершин) атрибуты или агрегаты атрибутов либо типы сущностей. Атрибуты или агрегаты атрибутов соответствуют множествам или расширенным множествам. Дуги могут использоваться для представления агрегации двух атрибутов в тип сущности или двух типов сущности в тип связи. На практике часто в запись вставляют не только сущности базы данных, но и связи. Такая схема описывается моделью сущность-связь и будет рассмотрена ниже.