Научная статья на тему 'Разработка алгоритмов визуализации векторных электронных навигационных карт'

Разработка алгоритмов визуализации векторных электронных навигационных карт Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
241
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НАВИГАЦИОННО-ИНФОРМАЦИОННЫЕ СИСТЕМЫ / ВЕКТОРНЫЕ ЭЛЕКТРОННЫЕ КАРТЫ / АЛГОРИТМЫ ВИЗУАЛИЗАЦИИ / АЛГОРИТМЫ АВТОМАТИЧЕСКОЙ КОНВЕРТАЦИИ ПРАВИЛ / ПРОГРАММНАЯ ИНТЕРПРЕТАЦИЯ ПРАВИЛ / NAVIGATION-INFORMATION SYSTEM / VECTOR ELECTRONIC CHART / VISUALIZATION ALGORITHM / ALGORITHM OF AUTOMATIC CONVERSION OF RULES / PROGRAM INTERPRETATION OF RULES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Томаржевская А.С., Захаров А.С.

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

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

Development of visualization algorithms for vector electronic navigation charts

Algorithms for interpreting rules for visualization of vector electronic navigational charts that comply with international standard S101 are investigated. The advantages and disadvantages of the considered algorithms are discussed in detail. Structure of electronic charts and visualization rules, in particular classification of map objects, their properties, and methods of display are considered. A modification of the algorithm of the software interpretation of the visualization rules, which implemented their prior conversion into executable instructions is proposed. A scheme of the algorithm of pre-conversion of visualization rules is presented. The proposed modification allows to avoid additional rules processing when choosing instructions for visualization and thus to improve the software performance. Peculiarities of the proposed algorithm in comparison with the known analogues, the most important of which is the need to supply accompanying software, are described. Experimental comparison of time expenditure on visualization of electronic maps containing different numbers of objects of different types is performed. Application of the pre-conversion rules is shown to ensure a gain in performance software for the visualization of vector electronic navigational charts of more than 15 % in comparison with the algorithm of software interpretation of the visualization rules. The proposed algorithm is recommended for the use in modern navigation and information systems.

Текст научной работы на тему «Разработка алгоритмов визуализации векторных электронных навигационных карт»

УДК 629.05:[004.42] DOI: 10.17586/0021-3454-2017-60-8-787-792

РАЗРАБОТКА АЛГОРИТМОВ ВИЗУАЛИЗАЦИИ ВЕКТОРНЫХ ЭЛЕКТРОННЫХ НАВИГАЦИОННЫХ КАРТ

А. С. Томаржевская, А. С. Захаров

Университет ИТМО, 197101, Санкт-Петербург, Россия E-mail: tomarzhevskaya@yandex.ru

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

Ключевые слова: навигационно-информационные системы, векторные электронные карты, алгоритмы визуализации, алгоритмы автоматической конвертации правил, программная интерпретация правил

Введение. В морской навигации широко используются навигационно-информационные системы (НИС) [1—3]. Судовая НИС осуществляет получение, хранение и обработку данных, необходимых для перемещения судна из порта отправления в порт назначения. Результатом обработки является информация, необходимая для эффективной и безопасной навигации.

В ходе работы НИС используются векторные электронные навигационные карты [4, 5]. Описание электронных навигационных карт предоставляется в специальном формате, соответствующем стандарту, определяемому „Международной гидрографической организацией" [6]. Для каждого стандарта представления карт определен свой свод правил визуализации электронных карт.

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

Для нового стандарта представления карт S101 [7, 8] правила визуализации предоставляются в формате XSLT [9] (extensible Stylesheet Language Transformations). В них описаны методики визуализации объектов карты, используемые в зависимости от типа объекта, его свойств (атрибутов) и др. Существует несколько методов интерпретации данных правил:

1) непосредственное применение XSLT с целью получения программной интерпретации правил визуализации для каждой карты. Основным недостатком этого метода является низкая производительность из-за необходимости конвертации карты из оригинального внутреннего формата представления карт в формат XML [10] (eXtensible Markup Language) с последующей обратной конвертацией после применения XSLT;

2) разработка программы на языке программирования C++ [11], реализующей правила визуализации. Необходимость повторного выпуска программного обеспечения (ПО) при каждом изменении правил визуализации создает трудности при использовании этого метода в современных НИС;

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

Альтернативным подходом является использование алгоритмов на основе предварительной конвертации правил визуализации (ПКПВ) из предоставляемого формата в инструкции визуализации на языке программирования C++. Такой подход обеспечивает высокую скорость обработки правил визуализации в НИС и позволяет изменять их на стороне клиента без повторного выпуска программного обеспечения.

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

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

Площадной объект

• заполнение связной области цветом

• заполнение связной области символами

• выделение контуров цветом

• выделение контуров символами

• отображение символа

• отображение текста

Линейный объект

• выделение контуров цветом

• выделение контуров символами

• отображение символа

• отображение текста

Точечный объект

• отображение символа

• отображение текста

Рис. 1

Правила визуализации карт содержат следующую информацию:

1) цветовая схема [13];

2) стили отображения линий;

3) список используемых символов;

4) список инструкций для визуализации объектов каждого класса.

Для правильного отображения электронных карт в НИС правила должны быть преобразованы в набор инструкций (см. рис. 1) с учетом характеристик объектов и связей между ними.

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

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

Для разработки программного обеспечения, отвечающего за конвертацию правил визуализации, использовался интерпретируемый язык программирования Python [14], так как в нем реализован удобный и высокоэффективный функционал для работы с документами формата XML [15]. Схема алгоритма ПКПВ представлена на рис. 2.

Рис. 2

В результате выполнения алгоритма генерируются файлы, содержащие список инструкций для визуализации всех объектов электронной карты на языке программирования С++, которые затем преобразуются при помощи компилятора [16] в динамически подключаемые библиотеки [17], используемые в НИС.

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

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

Экспериментальная оценка времени работы алгоритмов на основе ПИПВ и ПКПВ проводилась с использованием компьютера на базе процессора Intel Core i7-4790 с номинальной тактовой частотой 3,6 ГГц.

На рис. 3 проиллюстрировано время визуализации электронных карт (п — номер карты) с использованием алгоритмов ПКПВ и ПИПВ. /, мс

8

7

6

5

4

3

2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 п

[] — ПКПВ [] — ПИПВ Рис. 3

Видно, что использование ПКПВ обеспечило выигрыш во времени визуализации электронных навигационных карт более чем на 15 % по сравнению с немодифицированным алгоритмом ПИПВ.

Результаты оценки времени интерпретации правил визуализации представлены на рис. 4 (а — с использованием алгоритма ПИПВ, б — алгоритма ПКПВ).

13% 1%

87 %

□ Применение правил визуализации

П Визуализация карты

99 %

Применение

правил

визуализации

Визуализация карты

Рис. 4

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

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

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

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

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

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

СПИСОК ЛИТЕРАТУРЫ

1. Bergmann M. Hydrographic data as the basis for integrated e-Navigation data streams // Marine Navigation and Safety of Sea Transportation: Advances in Marine Navigation. 2013. Vol. 63. P. 371—374.

2. Burrough P. A., McDonnellR., Burrough P. A., McDonnellR. Principles of geographical information systems // Data Models and Axioms. 1998. Vol. 333. P. 17—34.

3. Chang K. T. Introduction to geographic information systems. NY: McGraw-Hill, 2016. 420 p.

4. Zhong-Ren P., Chuanrong Z. The roles of geography markup language (GML), scalable vector graphics (SVG), and Web feature service (WFS) specifications in the development of Internet geographic information systems (GIS) // J. of Geographical Systems. 2004. Vol. 6. P. 95—116.

5. Xiaoxia W., Chaohua G. Electronic chart display and information system // Geo-spatial Information Science. 2002. Vol. 5. P. 7—11.

6. International Hydrographic Organization [Электронный ресурс]: <http://www.iho.int>.

7. Park D., Park S. E-Navigation-supporting data management system for variant S-100-based data // Multimedia Tools and Applications. 2015. Vol. 74. P. 6573—6588.

8. Standard S-100: The New IHO Geospatial Standard for Hydrographic Data, Ward, Alexander, Greenslade and Pharaoh, March 2008 and revisions 2009. 325 р.

9. XSL Transformations (XSLT) [Электронный ресурс]: <http://www.w3.org/TR/xslt20>.

10. Extensible Markup Language [Электронный ресурс]: <http://www.w3.org/XML>.

11. Страуструп Б. Язык программирования C++. М.: Бином, 2012. 1136 с.

12. International Hydrographic Organization. Specifications for chart content and display aspects of ecdis, Edition 6.1.0. MONACO, October 2014. 44 р.

13. COLOROTATE [Электронный ресурс]: <http://learn.colorotate.org/color-models/#.WCDS8vmLSUk>.

14. Лутц М. Изучаем Python. СПб: Символ-Плюс, 2015. 1280 c.

15. The ElementTree XML API [Электронный ресурс]: <https://docs.python.org/2/library/xml.etree.elementtree.html>.

16. Tanenbaum S., Bos H. Modern Operating Systems. Prentice Hall, 2015. 1136 p.

17. Grune D., van Reeuwijk K., Bal H., Jacobs C., Langendoen K. Modern Compiler Design. Springer, 2012. 822 p.

18. Lua [Электронный ресурс]: <https://www.lua.org/>.

Анна Сергеевна Томаржевская Алексей Сергеевич Захаров

Рекомендована кафедрой информационных систем

Сведения об авторах

студентка; Университет ИТМО; кафедра информационных систем; E-mail: tomarzhevskaya@yandex.ru

канд. техн. наук; Университет ИТМО; кафедра компьютерной фотоники и видеоинформатики; E-mail: zakharov_alexey1@mail.ru

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

Ссылка для цитирования: Томаржевская А. С., Захаров А. С. Разработка алгоритмов визуализации векторных электронных навигационных карт // Изв. вузов. Приборостроение. 2017. Т. 60, № 8. С. 787—792.

DEVELOPMENT OF VISUALIZATION ALGORITHMS FOR VECTOR ELECTRONIC NAVIGATION CHARTS

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

A. S. Tomarzhevskaya, A. S. Zakharov

ITMO University, 197101, St. Petersburg, Russia E-mail: tomarzhevskaya@yandex.ru

Algorithms for interpreting rules for visualization of vector electronic navigational charts that comply with international standard S101 are investigated. The advantages and disadvantages of the considered algorithms are discussed in detail. Structure of electronic charts and visualization rules, in particular classification of map objects, their properties, and methods of display are considered. A modification of the algorithm of the software interpretation of the visualization rules, which implemented their prior conversion into executable instructions is proposed. A scheme of the algorithm of pre-conversion of visualization rules is presented. The proposed modification allows to avoid additional rules processing when choosing instructions for visualization and thus to improve the software performance. Peculiarities of the proposed algorithm in comparison with the known analogues, the most important of which is the need to supply accompanying software, are described. Experimental comparison of time expenditure on visualization of electronic maps containing different numbers of objects of different types is performed. Application of the pre-conversion rules is shown to ensure a gain in performance software for the visualization of vector electronic navigational charts of more than 15 % in comparison with the algorithm of software interpretation of the visualization rules. The proposed algorithm is recommended for the use in modern navigation and information systems.

Keywords: navigation-information system, vector electronic chart, visualization algorithm, algorithm of automatic conversion of rules, program interpretation of rules

Data on authors

Anna S. Tomarzhevskaya — Student; ITMO University, Department of Information System;

E-mail: tomarzhevskaya@yandex.ru Alexey S. Zakharov — PhD; ITMO University, Department of Computer Photonics and Digital

Video Processing; E-mail: zakharov_alexey1@mail.ru

For citation: Тоmarzhevskaya А. S., Zakharov А. S. Development of visualization algorithms for vector electronic navigation charts. Journal of Instrument Engineering. 2017. Vol. 60, N 8. P. 787—792 (in Russian).

DOI: 10.17586/0021-3454-2017-60-8-787-792

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