Совершенствование функциональных свойств визуализатора электронных карт

Информационные технологии Вестник Нижегородского университета им. Н.И. Лобачевского, 2012, № 5 (2), с. 367-375

УДК 004.02.057.6

СОВЕРШЕНСТВОВАНИЕ ФУНКЦИОНАЛЬНЫХ СВОЙСТВ ВИЗУАЛИЗАТОРА ЭЛЕКТРОННЫХ КАРТ

© 2012 г. Ю.Л. Кетков, А.И. Кузнецов, Д.К. Леденцов, С.Д. Подогова

Нижегородский госуниверситет им. Н.И. Лобачевского

ket@unn.ru

Поступила в редакцию 10.09.2012

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

Ключевые слова: геоинформатика, графические форматы, КАРТ-ДОК.

Первые научно-технические отчеты НИИ ПМК, имевшие целью заинтересовать главных кураторов картографической продукции нашей страны - Главное управление геодезии и картографии (ГУГК) при Совете министров СССР и Военно-топографическое управление (ВТУ) Генерального штаба, датируются 1979 годом. Годом раньше в НИИ ПМК начинался цикл комплексных работ по созданию технических, математических и программных средств, обеспечивающих автоматизацию технологических процессов создания, хранения и использования цифровых топографических карт масштабов 1:25000, 1:50000 и 1:100000. Через 12 лет за успешное выполнение этих работ коллектив сотрудников ведущих организаций страны, в составе которого находились 14 представителей НИИ ПМК, был удостоен Премии СМ СССР.

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

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

К моменту начала работ мы располагали определенным опытом эксплуатации самого распространенного в то время пакета ГРАФОР, который был переведен в НИИ ПМК из кода ЭВМ М-222 в код ЕС ЭВМ [1] задолго до аналогичной попытки, предпринятой группой Ю.М. Баяковского (ИПМ АН СССР). В связи с выполнением ряда заказов по созданию различных подсистем САПР для предприятий авиационной и судостроительной промышленности нам пришлось адаптировать процедуры нижнего уровня для вывода графических данных на серию планшетных, рулонных и барабанных графопостроителей отечественного и зарубежного производства. У большинства из них пишущий узел («перо») использовал стержни шариковых ручек или специальные фломастеры, набор команд по управлению включал смену пера и его перемещение в поднятом или опущенном состоянии по одному из восьми направлений к ближайшему узлу координатной сетки. Продвинутые графопостроители располагали встроенным линейным интерполятором. Построение линий заданной толщины сводилось к многократным перемещениям вдоль ряда эквидистант, а закраска замкнутых областей

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

В рамках комплексных работ по созданию первых АКС перед сотрудниками отдела математического обеспечения НИИ ПМК была поставлена задача разработки подсистемы вывода графического изображения, соответствующего будущему наполнению специализированной базы данных, в которой должны были находиться семантические описания объектов листа карты. Так как четко установленного формата количественных и качественных характеристик картографических объектов в базе данных на начальном этапе работ еще не существовало, на первых порах было исследовано главное руководство картографа-издателя - «Условные знаки топографических карт...» соответствующих масштабов [2]. Предварительная классификация по способам графического отображения объектов, представленных в этом документе, выявила

5 следующих групп:

- дискретные условные знаки, для которых известны очертания контура фиксированного размера и задано их расположение (координаты точек привязки) на листе карты;

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

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

- подписи, привязанные к условным знакам и несущие определенную смысловую нагрузку (названия населенных пунктов, высоты линий уровня, числовые характеристики деревьев, мостов и т. п.);

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

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

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

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

Почти сразу пришлось отказаться от прямого использования функций пакета ГРАФОР, так как это существенно увеличивало объем исходной программы из-за многократных обращений к соответствующим процедурам по поводу воспроизведения каждого элементарного примитива (отрезок прямой, дуга окружности и т.п.). Понадобился механизм единовременного формирования образов условных знаков и оформления этих описаний подобно шрифтовым файлам, использовавшимся под управлением МБ БОБ. Единственным ближайшим аналогом, доступным в среде программирования Вог1а^ С++, был графический интерфейс Вог1а^

Graphics Interface (BGI), использовавшийся в качестве инструмента формирования векторного описания шрифтов.

Растровые шрифты, поддерживаемые операционной системой MS DOS, нас не устраивали по ряду причин. Символы этих шрифтов имели достаточно примитивные конфигурации, вписывающиеся в растровые сетки размерами 8*8 или 8*12, не допускавшие аккуратного масштабирования и поворота. Все разнообразие методов их воспроизведения на экранах дисплеев и на принтерах сводилось к минимальному набору возможностей - утолщение контура, использование знакоместа фиксированного размера (моноширинный шрифт) и отображение равномерно сжатых или равномерно растянутых горизонтальных подписей. Все это ни в коей мере не удовлетворяло картографов, исторически привыкших к большому количеству картографических шрифтов с диапазоном кеглей, менявшихся по высоте от 1.2 мм до 6 мм. Векторные шрифты библиотеки BGI по начертанию символов были более приемлемы, но не содержали букв русского алфавита и не умели отображаться с произвольным углом наклона.

Поэтому первые шаги по адаптации возможностей пакета ГРАФОР и графической библиотеки BGI были связаны с разработкой типовых макроопределений на языке ассемблера ЕС ЭВМ и с расширением набора графических процедур BGI. ГРАФОР предполагалось использовать для управления плоттерами, а библиотеку BGI - для вывода контрольных графических копий на дисплей.

Прецизионный координатограф КПА-1200 [3] отечественного производства с рабочим полем 1200*1200 мм2 в то время был единственным доступным для нас плоттером, который мог обеспечить подготовку издательских документов топографических и навигационных морских карт. Его пишущий узел комплектовался «перьями» трех типов - специальным фломастером, вращающейся фрезой с минимальным диаметром 0.12 мм и фотоголовкой. Фреза позволяла гравировать защитный слой на специальной полимерной пленке, с которой впоследствии могли изготавливаться фотошаблоны издательских документов. КПА-1200 обеспечивал позиционирование пишущего узла с точностью до 10 мкм, но скорость фрезерования была чрезвычайно низкой. Набор команд по управлению пишущим узлом был довольно скромным. Немного выручало то, что КПА-1200 был снабжен линейным, круговым и параболическим интерполяторами. Проблемы построения линий разного стиля, регулирование их толщины, по-

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

Первый набор графических макрокоманд [4], ориентированных на КПА-1200, включал несколько десятков описаний таких операций, как гравирование прямолинейных отрезков и дуг заданной толщины, набора типовых графических элементов, формирование регулярных изменений положения пера (поднято / опущено) при движении вдоль линии. Разработка такого рода процедур преследовала не столько компенсацию относительно бедных возможностей координатографа, сколько создание элементов языка для описания контуров картографических объектов. Цепочки макрокоманд, описывающие конфигурацию нужного объекта, с помощью транслятора превращались в объектный код, из которого собиралась библиотека графических изображений. На стадии воспроизведения фрагментов цифровых карт такие описания интерпретировались в программу управления соответствующим устройством отображения (дисплеем или графопостроителем).

Опыт эксплуатации КПА-1200 показал, что на устройствах подобного рода можно было добиться неплохого качества воспроизведения издательских оригиналов карт большого размера (линейные размеры морских навигационных карт достигают одного метра). Но скорость их построения и проблемы доведения цифровых баз до уровня требований редакционноиздательского отдела радужных перспектив не сулили. Так, например, при сдаче автоматизированной системы обработки информации морских карт (АСОИМК) государственная приемочная комиссия 39 часов ожидала завершения процесса гравирования комплекта издательских пластиков одного листа навигационной карты. Тем не менее на Центральном картпроизводстве Министерства Военно-морского флота (ЦКП ВМФ СССР) по разработанной в АСОИМК технологии трудились шесть координатографов КПА-1200, автоматически создавая издательские оригиналы рамок для навигационных карт.

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

годам прошлого столетия использовала свыше двух десятков шрифтов. Будущих военных и гражданских топографов приучали к тому, что за каждым типом шрифта и размером символов скрываются определенные характеристики соответствующих картографических объектов. Конечно, переход на цифровые технологии предполагал, что на все это шрифтовое богатство можно было бы навести более скромную стилизацию. Но на первых этапах создания гео-информационных систем (ГИС) основным материалом для формирования цифровых моделей служили отсканированные бумажные листы карт, на которых сохранялись традиционные шрифты, размеры, цвет и местоположение подписей объектов. Заниматься вопросами стилизации и сокращения количества шрифтов было некому, да и разработка алгоритмов автоматического размещения подписей, от которых картографы требовали «не толпиться и не разбегаться», представлялась весьма проблематичной.

Пришлось уступить картографам старой закалки и заняться шрифтами. Самой продвинутой системой программирования, которая располагала более или менее удобными средствами создания и использования векторных шрифтов, была среда Turbo C, разработанная фирмой Borland и широко использовавшаяся в нашей стране. В состав штатной поставки входило несколько наборов шрифтовых файлов с расширениями .chr, среди которых наибольшей популярностью пользовались три шрифта - trip.chr, sans.chr и litt.chr. В первом из них для создания утолщенных линий в символах использовались три параллельных штриха, второй шрифт был представлен двухобводными контурами равной ширины, наконец, символы третьего описывались простым контуром с шириной линий в один пиксел. У всех фирменных шрифтов был общий недостаток - отсутствие букв русского алфавита. Однако популярность продукции Borland в нашей стране была столь велика, что находились умельцы, пополнявшие наборы chr-шрифтов русскими буквами, зачастую не очень высокого качества. Серию файлов такого типа нам удалось разыскать в сфере свободно распространяемого программного обеспечения (в те времена коммерционализация программных продуктов еще не достигла современного уровня).

В наших руках оказались и два редактора векторных шрифтов - отечественный FED.EXE (разработка МГПИ, г. Москва) и фирменный FE.EXE (Borland Font Editor). У каждого из них были свои преимущества и недостатки. Оба

умели формировать еЬг-файлы с кодами символов, не превышающими 128, но первый работал с буквами только русского алфавита, а второй -только с латиницей. А нам требовался расширенный диапазон с обоими наборами букв, которые следовало пополнить специальными знаками (обозначения градусов, минут и секунд в географических координатах и т.п.). Соответствующие изменения было необходимо внести и в кодировочные таблицы АБСП. Привлекая к этим работам студентов факультета ВМК ННГУ, специализировавшихся по кафедре МО ЭВМ, нам удалось полностью расшифровать формат кодировки еЬг-файлов (фирма Вог1а^ такие материалы не предоставляла) и заняться кропотливой работой по созданию своего набора символов, приближенно напоминающих по конфигурации и по размерам стандарты в руководящих технических материалах по изданию картографической продукции. Было очень важно вписаться в линейные размеры символов, в противном случае наши подписи могли наползать на изображения других объектов. Такое в нашей практике иногда происходило потому, что руководства по изданию позволяют при ручной подготовке карт слегка отступать от типовых размеров и изменять как ширину символов, так и межсимвольные интервалы. Алгоритмический учет такой специфики, особенно при переменных длинах межсимвольных интервалов в пределах одной подписи, невозможен.

На первых порах мы привязали одно-, двух-и трехобводные контуры символов к наиболее употребительным картографическим шрифтам. По нашей просьбе заказчики изготовили увеличенные фотографии символов каждого шрифта, пропорции которых мы в той или иной степени постарались соблюсти. Шрифты получились и моноширинные, и пропорциональные, но такие издательские тонкости, как «кернинг пар», мы не учитывали. Довольно просто мы решили проблему масштабирования, т.к. размеры подписей по стандартным правилам должны быть вещественными (с точностью до 0.1 мм). В наших кодировочных таблицах описывались символы только одного размера, а для приведения размеров букв до стандартов «Руководства по условным знакам... » использовались четыре однобайтовых целочисленных коэффициента -тх, йх, ту, йу. На первый из них координата х умножалась, а на второй делилась (естественно, что операнды в этом случае приводились к вещественному формату). Точно так же мы поступали и со второй координатой у. Это позволяло достигать независимого масштабирования по каждой координате и формировать сжатые и

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

На следующем этапе выбора технических средств для создания АКС с перспективой решения задач издания цифровых карт в наше распоряжение были предоставлены передовые модели фирм Hewlett-Packard (струйный плоттер DesignJet формата A1) и CalComp (струйный плоттер TechJet-5324 формата A1 и электростатический плоттер CalComp-68436 формата A0). В связи с тем, что основным рабочим языком управления указанными плоттерами был графический стандарт Hewlett-Packard Graphics Language (HP-GL, HP-GL/2), мы полностью переработали плоттерную версию подсистемы вывода. Для этой цели был разработан специализированный редактор дискретных условных знаков (М.С. Казачкова, Ю.Л. Кетков), использовавший для описания контуров графических примитивов подмножество команд HP-GL. С целью экономии объема кодировочных таблиц код графической команды был представлен одним байтом, а в качестве координат узловых точек контура использовались однобайтовые приращения (режим относительных координат). Описание основной рабочей версии этого редактора вместе с исходным кодом приведено в [7]. Технология вывода подписей по-прежнему базировалась на формате BGI и наборе ранее разработанных шрифтов.

В результате сравнения функциональных характеристик перечисленных выше плоттеров и затрат на расходные материалы предпочтение было отдано модели CalComp-68436. Во-первых, этот плоттер обеспечивал вывод документов формата A0 (ширина носителя 914 мм, а у более мощной модели - 1118 мм). Во-вторых, в качестве носителя могли выступать как 30-метровые рулоны бумаги разного качества, так и 15-метровые рулоны прозрачной полиэфирной пленки. При выводе как цветных, так и монохромных копий CalComp-68436 поддерживал точность на уровне 400 dpi. В-третьих, он располагал встроенным процессором с производительностью 15 MIPS и винчестером с емкостью от 40 до 750 Мбайт. Это позволяло осуще-

ствлять параллельный прием информации от четырех пользователей и в режиме реального времени производить растеризацию принимаемых графических файлов в формате ИР-ОЬ. Время вывода одного документа формата А0 не превышало 10 мин. Довольно длительная эксплуатация этого устройства выявила и его слабые стороны. Одна из них - крайне скудная документация, явно недостаточная для разработчиков специального программного обеспечения. Особенно это касалось шрифтовой поддержки. Другая - сравнительно низкая оптическая плотность документов, получаемых на полиэфирной пленке. По двум листам морских навигационных карт были сформированы комплекты издательских и заливочных пластиков, но изготовленные по ним тиражные оттиски с трудом заслуживали удовлетворительной оценки.

Очередной этап развития систем отображения цифровых карт был связан с переходом от операционной системы МБ-БОБ с ее тихоходными 16-битными приложениями к более скоростным 32-битным приложениям 'ІП^М^. Этот переход был начат еще сложившимся ранее коллективом разработчиков КАРТ-ДОК, но он существенно осложнился в связи с увольнением большой группы сотрудников НИИ ПМК из-за возникших в нашей стране трудностей с финансированием научной тематики. Существенный объем работы по формированию новой версии КАРТ-ДОК лег на плечи самого молодого сотрудника отдела А.И. Кузнецова [8]. В это время было принято очень важное решение по объединению плоттерного и дисплейного вариантов программ отображения. Использование единого результирующего ИРОЬ-файла исключало возможность расхождения между изображением, просматриваемым на экране монитора, и твердой копией, полученной с помощью графопостроителя. В качестве средства визуализации выходных графических файлов на экранах дисплеев мы использовали программу БРЬОТ [9], разработанную в Чехии и приобретенную в НИИ ПМК по лицензии.

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

нии просматриваемых фрагментов. Поэтому была предпринята попытка перехода на формат True Type Font (TTF), являющийся более естественным для работы в среде Windows. Первый этап этой работы был связан с использованием системных функций для извлечения координат точек контуров, хранящихся в ttf-файлах, и их преобразованием в формат команд HP-GL [10]. Одновременно пришлось проанализировать большое количество существующих ttf-шрифтов с целью подбора близких по очертаниям к картографическим и их доводки до удовлетворительного качества. В результате резко возросло полиграфическое качество создаваемых документов, но вместе с этим почти вдвое увеличился объем выходного графического файла. Для морских навигационных карт метрового размера эти объемы начали исчисляться десятками и сотнями мегабайт. Со всей остротой всплыла извечная программистская проблема уменьшения объема обрабатываемой информации и повышения скорости ее обработки. Наверное, при современных размерах оперативной и внешней памяти с объемами графических файлов можно было и смириться, но время многократного преобразования больших векторных изображений в растровые и анализа их видимости было достаточно серьезным препятствием.

Почему быстродействию визуализатора цифровых карт уделяется столь пристальное внимание? Дело в том, что процесс создания цифровых моделей сопряжен со сканированием и распознаванием элементов нагрузки далеко не идеальных бумажных карт. Поэтому помимо технической погрешности сканера и ошибок программы распознавания вносят свой вклад и расположение документа на рабочем поле, и деформация носителя, и разрывы в контурах, и ошибки оператора в процессе диалога с программой ввода. Мы уже упоминали, что ручное изготовление карт сопряжено с различными отступлениями от стандартов (высота символов, межсимвольные интервалы переменной длины и т.п.). Поэтому только что сформированная цифровая модель нуждается в тщательном визуальном просмотре и редактировании, которое выполняет квалифицированный картограф. Подобного типа процесс происходит и при внесении различных обновлений в ранее созданные цифровые карты. Если учесть, что размеры некоторых знаков и символов в подписях зачастую не превышают 1-2 мм, то без увеличения соответствующих фрагментов на экране не обойтись. Стандартный диапазон коэффициентов увеличения 4-8. Вторым обстоятельством, затрудняющим поиск объектов, попадающих в

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

С самых ранних этапов создания системы КАРТ-ДОК мы старались найти и апробировать различные методы, ускоряющие процесс визуализации графических файлов. Одним из первых вариантов было создание так называемого «старого файла», исключавшего процесс многократной интерпретации ЫРОЬ-команд при повторных сеансах работы с одной и той же базой. Следующая находка была предложена в курсовом проекте З.А. Матвеева, который обратил внимание на регулярность перемещения окна просмотра по горизонтальной или вертикальной полосе карты. Идея заключалась в том, чтобы при переходе к смежному кадру не формировать очередное изображение заново, а сохранять часть предыдущего. Это позволило на 30-40% ускорить процесс вывода на дисплей. Представлялась достаточно перспективной и попытка модифицировать решение задачи об отсечении отрезка кадром видимости. В отличие от известных классических алгоритмов время их работы предлагалось сократить за счет решения массовой задачи отсечения. При этом анализ очередного отрезка прямой учитывал результат обработки предыдущего отрезка, конец которого автоматически являлся началом следующего. Такой прием вдвое сокращал время решения задачи отсечения [11]. Однако реальный прорыв, сокративший время визуализации на один-два порядка, был предложен в работе З.А. Матвеева, который в 2009 г. окончил аспирантуру, а в 2011 г. защитил кандидатскую диссертацию на тему «Алгоритмы отображения большеформатных цифровых карт». Основная идея этой работы состояла в предварительной обработке исходного ЫРвЬ-файла с целью формирования иерархической кластерной модели графического образа карты [12]. В кластеры группировались графические команды исходного файла,

которые достаточно близко «прилегали» друг к другу по координатам x и у. Иерархия кластеров обеспечивала мгновенное изменение масштаба отображения текущего кадра. С каждым кластером связывался минимальный ограничивающий прямоугольник MBR (Minimal Bounding Rectangle), анализ взаимоотношений которого с кадром просмотра заменял решение 20-100 задач отсечения элементов кластера. Свой вклад в совершенствование методов кластеризации HPGL-файла внес магистр ВМК Д.К. Леденцов, который усовершенствовал редактор условных знаков. На стадии проектирования графического образа условного знака можно вычислить границы соответствующего MBR и занести их в команду-комментарий с кодом CO, появившуюся в версии HP-GL/2. Это исключало из этапа предварительной обработки, сделанной З.А. Матвеевым, анализ всех команд, отображающих дискретные условные знаки. Аналогичное включение MBR, окаймляющих все подписи, было предпринято А. И. Кузнецовым в программе КАРТ-ДОК.

Довольно неожиданной находкой оказалась возможность сократить на 35-40% объем HPGL-файла, резко увеличившийся в связи с переводом надписей в формат TTF. Дело в том, что координаты контуров и параметры сплайнов, извлекаемые из формата TTF, выдавались утилитами Windows в абсолютных значениях, тогда как приращения смежных координат редко превышали 1-2 единицы длины (в HP-GL стандартной единицей длины считается 1/40 мм).

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

об универсальном преобразователе UniRas [13] векторного представления (основным форматом вывода в системе КАРТ-ДОК по-прежнему остается стандарт HP-GL) в наиболее распространенные растровые форматы. Идея UniRas, в известной мере, повторяет схему универсального алгоритмического машинно-ориентированного языка АЛМО, разработанного в 60-х годах и успешно примененного для создания серии трансляторов с разных алгоритмических языков в коды отечественных ЭВМ. Среди наиболее популярных векторных форматов выбирается сравнительно небольшое общее ядро, которому в соответствие ставится такое же небольшое ядро, выбранное из растровых представлений. Затем строится конвертор вектор-растр, реализующий этот минимальный переход. К полученному преобразователю присоединяются довольно простые насадки, обеспечивающие пре-

образование во внутренний векторный формат УБ на входе конвертора и из внутреннего растрового формата КБ в формат итогового изображения. Для достижения максимального быстродействия внутренний преобразователь написан на языке ассемблера. Таким образом, нам удалось заменить многолетнего посредника БРЬОТ, преобразующего формат ЫР-вЬ в растровый формат (ВМР-формат), и дос-

тичь при этом на 1-2 порядка более высокого быстродействия по сравнению с универсальным пакетом РЬо1о8Ьор.

Решение проблемы создания качественных издательских шаблонов было практически найдено в связи с созданием в НИИ ПМК серии барабанных лазерных построителей «КОРАЛ» [ 14]. Их рабочее поле имело размер 660*900 мм, а диаметр светового пятна регулировался в диапазоне от 5 до 15 мкм. К сожалению, значительная часть малой серии этих устройств была приобретена предприятиями, производившими печатные платы. До настоящего внедрения этой техники в практику картографических производств дело не дошло из-за известных проблем с финансированием в период 90-х годов. Единственный образец топографической карты, изготовленной по опытным издательским оригиналам, получил довольно высокую оценку профессиональных картографов.

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

В течение долгого времени редактор условных знаков не использовал возможности аппроксимации контуров кубическими сплайнами. Устранить этот дефект помогла дипломница А.В. Чернышёва (2005 г.), которая не только модифицировала редактор, но и с его помощью создала один из картографических шрифтов в формате ЫР-вЬ. На наш взгляд, его графические качества совсем не уступают йГ-стандар-там, а созданная таблица символов имеет гораздо меньший объем и проще в эксплуатации. Для отображения этих символов даже не нужно создавать новых функций, т. к. она может обслуживаться уже существующими в КАРТ-ДОК процедурами.

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

любая ошибка во внутренней точке контура заставляет его вернуться и заново пересчитать все приращения. В связи с этим мы сформировали еще одну версию редактора, использующую абсолютные локальные координаты [15]. Такие координаты проще подбирать, и ошибка в одной из точек не требует изменения остальных точек контура. Для сохранения формата таблиц, используемых в системе КАРТ-ДОК, в новом редакторе были предусмотрены режимы ввода и вывода графических описаний как в абсолютных, так и в относительных координатах.

Последнее изменение в редакторе условных знаков было связано с хранением двухбайтовых координат и использованием команды изменения характеристик пера (ширина линий и цвет). Это позволило описывать многокрасочные конструкции с линиями разной толщины, впервые появившиеся в наборе условных знаков для внутреннего судоходства, а потом широко используемые в международном стандарте S-57.

Еще одна попытка серьезного расширения инструментальных средств была связана с использованием единого формата TTF как для кодирования шрифтов, так и для описания конфигураций дискретных знаков. Впервые мы столкнулись с этой идеей при анализе файлов демоверсии коммерческой системы dKartNa-vigator, разработанной российско-норвежской группой Morintech Navigation (http://www.mo-rintech.no, http://www.morintech.ru). Нас очень удивило присутствие в этой системе файлов с расширением .ttf, в которых были обнаружены образы дискретных знаков из стандарта S-57. Ручной перевод изображений этих знаков в формат HP-GL у одного из авторов статьи занял три недели. Это было связано с подготовкой в НИИ ПМК очередной версии системы АСО-ИМК, ориентированной на формат S-57. Планировавшийся заказчик этой работы не смог представить нам соответствующий каталог графических образов условных знаков, а в описании стандарта графика отсутствовала. Вскоре С.Д. Подоговой (2011 г.) был успешно защищен дипломный проект по разработке инструментальных средств для создания условных знаков на базе расширения стандарта TTF. Она написала и довела до стадии внедрения редактор TrueTypeSignCreator, который наряду со стандартом TTF мог создавать описания многоцветных дискретных знаков с возможностью их поворота на произвольный угол. В самой свежей диссертации магистра Д.К. Леденцова (2012 г.) проведен сравнительный анализ обоих подходов к кодировке и отображению условных знаков. Несмотря на более экономную схему коди-

рования координат контура в формате TTF, эти файлы по стандартам фирм Apple и Microsoft обязаны содержать от 10 до 24 управляющих таблиц, что осложняет как их подготовку, так и использование. Скорость отображения HPGL-таблиц оказалась на 5-6% выше. В рамках выпускной работы Д.К. Леденцов разработал и апробировал конвертор автоматического преобразования форматов описаний (TTF ^ HPGL). Для этой цели он использовал свободно распространяемую в Интернете библиотеку FreeType.lib.

Опыт многолетней разработки систем отображения картографической продукции по ее цифровым моделям подтвердил правильность выбора промышленного стандарта HP-GL в качестве основного графического языка для создания библиотек условных знаков и, возможно, специализированного набора шрифтов. Этот язык существенным образом ориентирован на широкую гамму плоттеров, выпускаемых различными производителями. По прозрачности его графических команд и точности воспроизведения самых сложных обводов с ним не могут сравниться ни достаточно запутанный формат описания контуров букв (глифов) в TTF, ни язык описания страниц Postscript с его стековой интерпретацией. В качестве технической базы для создания образцов многоцветных карт можно использовать практически любой современный цветной плоттер формата A0, обладающий высокой скоростью вывода и поддерживающий точность воспроизведения не хуже 600-800 dpi. Для подготовки издательских оригиналов на сегодня пригодны только лазерные плоттеры формата A0, обеспечивающие вывод на специальную неусадочную пленку. К перспективным работам в области развития программного обеспечения систем визуализации электронных карт, на наш взгляд, следует отнести разработку или использование программ качественного цветоделения, а также развитие средств создания библиотек условных знаков предметной области и специализированных шрифтов.

Список литературы

1. Максимов В.С. Использование машинной графики в системах автоматизированного проектирования на базе ЕС ЭВМ. Горький: Изд-во ГГУ, 1979. 78 с.

2. Условные знаки для топографических карт масштабов 1:25000, 1:50000, 1:100000. М.: Военнотопографическое управление Генерального штаба, 1983. 93 с.

3. Рябов А.Н. Программные средства вывода гра-

фической информации для координатографа КПА-1200 на ЕС ЭВМ. ГосФАП, «Алгоритмы и программы». Вып. 7. 1982. Рег. № П005843.

4. Кетков Ю.Л., Максимов В.С. Макроязык описания графических элементов // Методы и средства обработки сложной графической информации: Тезисы докл. 2-й Всесоюзной конф. Горький, 1985. С. 111-112.

5. Гордион М.М., Кетков Ю.Л., Куракина И.М. и др. Программа воспроизведения ломаных линий и эквидистант на базе пакета ГРАФОР. Деп. сборник «Системные и прикладные программы». Горьк. ун-т, Горький, 1984. С. 12-38. №4911-85 ДЕП.

6. Кетков Ю.Л., Лютова Н.В., Тафорина Н.М., Урусова Л. А. Инструментальный комплекс для формирования библиотек картографических шрифтов и дискретных условных знаков // Распознавание образов и анализ изображений: новые информационные технологии: Тезисы докл. 2-й Всерос. конф. Ульяновск, 1995. Ч. 4.

7. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Visual BASIC, C++ Builder, Delphi. СПб.: БХВ-Петербург, 2002. 464 с.

8. Кузнецов А.И. Технология переноса комплекса КАРТ-ДОК в среду Windows // Методы и средства обработки сложной графической информации. VII Всероссийская с участием стран СНГ конференция: Тезисы докладов. Н.Новгород: НИИ ПМК ННГУ, 2003. С. 67-68.

9. Novy A. SPLOT Reference Guide for HP-GL/2. [Электронный ресурс]. URL: http://www.swplot.com/

splot.htm.

10. Кузнецов А.И. Использование TTF-шрифтов при подготовке издательских оригиналов электронных карт // 15-я Международ. конф. по компьютерной графике и её приложениям «GraphiCon 2005»: Труды конференции. Новосибирск, 2005. С. 386-388.

11. Кетков Ю.Л., Кирьянов С.К. Оптимизация времени отображения векторных графических изображений большого формата // Труды 11-й Международной конференции по компьютерной графике и машинному зрению «ГРАФИКОН'2001». Н. Новгород, 2001. С. 215-216.

12. Кетков Ю.Л., Матвеев З.А. Автоматическое создание кластерной модели графического образа электронных карт в формате HP-GL // Приволжский научный журнал. 2011. №1. С. 37-41.

13. Кузнецов А. И. Универсальный растеризатор. // Технологии Microsoft в теории и практике программирования: Материалы конференции. Н. Новгород, 2007. С. 140-142.

14. Кетков Ю.Л., Кузнецов А.И. Подготовка издательских оригиналов с помощью фотоплоттера КОРАЛ // Математика и кибернетика 2003. Сборник научных статей юбилейной научно-технической конференции факультета ВМК ННГУ и НИИ ПМК. Н.Новгород: ННГУ, 2003. С. 162-164.

15. Кетков Ю.Л., Кузнецов А.И. Создание графических примитивов в формате HP-GL // 15-я Международная конференция по компьютерной графике и её приложениям «GraphiCon 2005»: Труды конференции. Новосибирск, 2005. С. 378-381.

UPGRADING FUNCTIONAL PROPERTIES OF A DIGITAL MAP VISUALIZER Yu.L. Ketkov, A.I. Kuznetsov, D.K. Ledentsov, S.D. Podogova

The article sums up the long-term work of staff members of the Research Institute for Applied Mathematics and Cybernetics, N.I. Lobachevsky State University of Nizhni Novgorod, and students majoring in the field of development of digital map visualization systems at the Department of Computer Software of the State University of Nizhni Novgorod. We discuss main directions of the work that was aimed at: improving graphic arts quality of digital images and hard copies produced; increasing the display speed of cartographic documents on the screens of monitors and modern plotters; expanding a set of tools used to create images of symbols and fonts.

Keywords: geoinformatics, graphical format, KART-DOC.