Научная статья на тему 'Проблемы создания картографической информационной системы'

Проблемы создания картографической информационной системы Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
319
64
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Есилевский Валентин Семенович, Кузнецов Владлен Николаевич, Каменюк Наталья Леонидовна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Problem of building the cartographic information system

In work are considered the description of architecture and receiving the decision of main problems of building geoiformation systems, intended for automation of work with cartographic information. In work are considered methods and algorithms for work with unlimited raster and vector images.

Текст научной работы на тему «Проблемы создания картографической информационной системы»

УДК 628.83

ПРОБЛЕМЫ СОЗДАНИЯ КАРТОГРАФИЧЕСКОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ

ЕСИЛЕВСКИЙ В.С., КУЗНЕЦОВ В.Н., КАМЕНЮК Н.Л.

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

1. Требования к геоинформационной системе

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

Целью данной статьи является изложение собственного опыта разработки геоинформационной системы.

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

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

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

РИ, 2004, № 2

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

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

В соответствии с первоначальными требованиями заказчика ГИС должна выполнять следующие основные функции:

— обеспечение навигации по растровой карте города (просмотр электронной карты и ее фрагментов в различных масштабах для выполнения поиска по карте);

— поддержка работы с растровым изображением, получаемым сканированием бумажных планшетов города масштаба 1:500;

— возможность нанесения и редактирования векторного слоя объектов сети водоотведения и слоя городских сооружений;

— возможность ведения баз данных атрибутивной информации об объектах;

— поиск фрагмента карты по объектам;

— печать на принтере выходных документов с графической информацией.

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

2. Работа с растровым слоем

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

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

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

155

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

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

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

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

Такой подход имеет два узких места: время загрузки файла и время его сжатия.

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

Для решения проблемы времени сжатия было использовано два подхода.

Первый — хранение в КЭШе образа несжатого изображения и сжатого с текущим показателем масштаба. Это, с одной стороны, позволяет при простом прокручивании карты без масштабирования пользоваться описанной выше схемой кэширования, а с другой, - при масштабировании легко производить сжатие/растяжение без повторной загрузки файлов планшетов.

Второй - предложена схема обработки растровых файлов, при которой формируется «пирамида» растровых слоев. В основании ее — планшеты

масштаба 1:500, отсканированные с разрешением 300dpi. Группа из 16 планшетов(4 х 4) образует один планшет масштаба 1: 2000. Слой таких планшетов формируется заранее специальной сервисной программой «Компрессор». Аналогично формируются «верхние этажи пирамиды» - слои для масштаба 1: 8000, 1:32000. Было учтено, что при большом сжатии изображения на экране, разрешение которого не превосходит 120 dpi, качество отображения не изменится, если использовать разрешение не 300, а 75 dpi. По этой причине в системе поддерживаются две «пирамиды » : на 300 и 75 dpi. При этом нет необходимости повторно сканировать планшеты. Программа «Компрессор» имитирует сканирование в таком разрешении, используя файлы планшетов с разрешением 300 dpi.

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

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

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

3. Работа с векторными слоями

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

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

— объекты сети;

— различные объекты на местности (топооснова).

Программа графического редактора позволяет наносить на векторный слой и сохранять в базе

156

РИ, 2004, № 2

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

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

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

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

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

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

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

РИ, 2004, № 2

будет прорисовываться как отрезок фиксированного размера, а при отрезочном — отрезком, размеры которого будут определяться на стадии создания объекта на реальном изображении.

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

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

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

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

В связи с этим создан специальный класс графического редактора, агрегирующий в виде свойств, классы «Карта» и «Рамка просмотра». Эти свойства реализованы как классы и содержат поля и методы, позволяющие соотносить видимое изображение на экране со всей электронной картой города. Методы этих классов обеспечивают произвольное масштабирование растрового и векторного слоев изображения, создавая эффект просмотра единой электронной карты города.

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

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

157

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

Каждый слой, в том числе и растровый, может быть включен или выключен по желанию пользователя. Это позволяет видеть «чистое» изображение только интересующего слоя.

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

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

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

4. Организация поиска графических объектов

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

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

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

— поиск полным перебором слишком медленный;

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

Для решения этих проблем предложено следующее. 158

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

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

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

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

— по координатам щелчка курсора однозначно находится список «подозрительных» графических объектов, лежащих в выделенной щелчком ячейке.

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

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

— путем просмотра электронной карты города в различных масштабах;

— путем работы с панорамным изображением;

— путем поиска объектов по адресам;

— путем поиска объектов по наименованиям;

— путем поиска необходимого планшета по его номеру.

РИ, 2004, № 2

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

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

Полная векторизация и ввод информации является трудоемким процессом, поэтому в системе предусмотрены средства поиска фрагментов по адресам и наименованиям даже для невекторизированных объектов.

5. Дополнительный сервис для работы с картографическими данными

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

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

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

Проблема вычисления структуры сети возникает из-за того, что операторы векторизируют ее, нанося

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

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

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Выводы

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

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

Поступила в редколлегию 14.01.2004

Рецензент: д-р техн. наук, проф. Евдокимов А.Г.

Есилевский Валентин Семенович, канд.техн.наук, доцент кафедры прикладной математики ХНУРЭ. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 702-94-36.

Кузнецов Владлен Николаевич, канд.техн.наук, профессор кафедры ПЭЭА ХНУРЭ. Адрес: Украина, 61166, Харьков, пр. Ленина, 14.

Каменюк Наталья Леонидовна, сотрудник факультета ПММ ХНУРЭ. Адрес: Украина, 61166, Харьков, пр. Ленина,14.

РИ, 2004, № 2

159

i Надоели баннеры? Вы всегда можете отключить рекламу.