Научная статья на тему 'Конвертация тематических и пользовательских условных обозначений из MapInfo в ArcGIS'

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

CC BY
856
49
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГИС / MAPINFO / ARCGIS / УСЛОВНЫЕ ОБОЗНАЧЕНИЯ / GIS / MAP SIGNS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Булдаков Иван Владимирович

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Булдаков Иван Владимирович

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

THEMATIC AND USER-DEFINED MAP SIGNS CONVERSION FROM MAPINFO TO ARCGIS

This work is devoted to the development of algorithm for thematic and user-defined map signs conversion from MapInfo format to ArcGIS format. There is no converter which can process all types of map signs: several of them are not support map signs conversion, other can convert only predefined subset of map signs. In this regard, the development of a method that can convert thematic and user-defined map signs is a very urgent. During the work, there were analyzed the MapInfo and ArcGIS thematic and user-defined map signs types and formats, and there were developed and implemented map signs conversion method.

Текст научной работы на тему «Конвертация тематических и пользовательских условных обозначений из MapInfo в ArcGIS»

УДК 004.021 + 004.624

И. В. Булдаков

Новосибирский государственный университет ул. Пирогова, 2, Новосибирск, 630090, Россия

[email protected]

КОНВЕРТАЦИЯ ТЕМАТИЧЕСКИХ И ПОЛЬЗОВАТЕЛЬСКИХ УСЛОВНЫХ ОБОЗНАЧЕНИЙ ИЗ МАРЮТО В АЯССК

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

Ключевые слова: ГИС, МарМо, АгсОТБ, условные обозначения.

Введение

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

В данной работе приведена классификация типов символов, используемых в системах Мар1пйэ и Агс018 для задания условных обозначений, описаны стили символов, произведен разбор форматов хранения символов МарТпйэ, предложен подход к конвертации символов,

Булдаков И. В. Конвертация тематических и пользовательских условных обозначений из МарШо в Агс01Б // Вестн. НГУ. Серия: Информационные технологии. 2017. Т. 15, № 2. С. 13-19.

ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2017. Том 15, № 2 © И. В. Булдаков, 2017

используемых в системе MapInfo, в символы, используемые системой ArcGIS. Работа выполнена в ООО «Дата Ист» в рамках проекта «TAB Reader».

Обзор инструментов конвертации

Обозначенная проблема характерна не только для геоинформационных систем, но и в целом для программного обеспечения, преобразующего географические данные из одного формата в другой. Был проведен анализ существующих решений конвертации геоданных из форматов, поддерживаемых системой MapInfo, в форматы, поддерживаемые системой ArcGIS. Рассматривались следующие программные продукты: утилиты, поставляемые с библиотекой абстракции геопространственных данных (GDAL/OGR) 1, Feature Manipulation Engine (FME) 2 (в том числе основанные на нем «Универсальный транслятор MapInfo» и дополнительный модуль «ArcGIS Data Interoperability» 4) и дополнительный модуль «TAB Reader» 5 для системы ArcGIS. Проведенный анализ показал, что ни один инструментарий конвертации геоданных из форматов, поддерживаемых системой MapInfo, в форматы, поддерживаемые системой ArcGIS, не обеспечивает полноценного преобразования. Все проанализированные решения работают только с векторными пространственными данными и атрибутивной информацией. Дополнительный модуль «TAB Reader» работает еще и с фиксированным набором условных обозначений. Данный набор включает только стандартные условные обозначения, поставляемые с последней (на момент выпуска модуля) версией системы MapInfo, которые конвертируются в растровые изображения. Конвертация условных обозначений, созданных пользователями, и тематических условных обозначений модулем не поддерживается.

Конвертация условных обозначений

Поскольку работа выполнялась в рамках расширения функциональности дополнительного модуля «TAB Reader», обеспечивающего прямое чтение и конвертацию пространственных данных в форматах MapInfo в системе ArcGIS, то накладывались следующие ограничения и допущения: на компьютере пользователя может быть не установлена система MapInfo, условные обозначения объектов в системах MapInfo и ArcGIS задаются с помощью символов различных типов, символы MapInfo задаются в текстовом виде, где указан тип символа, идентификатор символа (для нетематических символов) и параметры, определяющие стиль символа, символы ArcGIS должны быть представлены в виде объектов библиотеки ArcObjects.

Далее приведено описание типов символов, использующихся в системе MapInfo [2], где указано, что является идентификатором символа данного типа, параметры стиля символа, а также описан подход к конвертации символов данного типа.

Точечные символы-рисунки - символы на основе растровых изображений, задаются с помощью файлов форматов PNG, JPEG, GIF, BMP или Windows enhanced metafile 6. Идентификатор символа - имя файла изображения (в ArcGIS - путь). Стиль символа включает размер, цвет символа и фона (в MapInfo белый или прозрачный фон). Задается строкой вида «Symbol(<имя_файла>, <цвет>, <размер>, <фон>)». Поскольку описание символа MapInfo содержит только имена файлов изображений, то для конвертации необходимо указать директорию, где эти файлы расположены. Конвертация символов данного типа происходит следующим образом: в директории по имени выбирается файл изображения и на его основе создается символ-рисунок ArcGIS (объект класса PictureMarkerSymbol), параметры которого задаются в соответствии со стилем исходного символа.

1 GDAL/OGR. URL: http://www.gdal.org

2 Feature Manipulation Engine. URL: https://www.safe.com

3 Universal translator User Guide. URL: http://reference1.mapinfo.eom/software/mapinfo_pro/english/10.5/Universal TranslatorUserGuide.pdf

4 ArcGIS Data Interoperability Overview. URL: http://www.esri.com/software/arcgis/extensions/datainteroperability

5 Описание дополнительного модуля «TAB Reader». URL: https://tabreader.dataeast.com/

6 Enhanced Metafile Format. URL: https://msdn.microsoft.com/en-us/library/cc230514.aspx

Шрифтовые символы - векторные символы, соответствующие символам шрифтов. Идентификатор символа - название шрифта и номер символа в шрифте, стиль символа включает цвет и размер, помимо этого в MapInfo могут быть заданы контур (граница черного цвета) / гало (граница белого или выбранного цвета) / тень. Последние три параметра отсутствуют в ArcGIS. Шрифты также не хранятся вместе с пространственными данными, поэтому для конвертации требуется наличие установленного в операционной системе шрифта. Задается строкой вида «Font (<имя_шрифта>, <контур/гало/тень>, <размер>, <цвет>, <цвет_гало>)». В случае если в параметрах шрифтового символа MapInfo не заданы контур / гало и тень, этот символ будет конвертирован в шрифтовый символ ArcGIS (объект класса Character MarkerSymbol, в котором будут сохранены общие параметры), если параметры стиля включают контур / гало, то будет создан дополнительный «контурный» шрифтовый символ ArcGIS черного / выбранного цвета, размер которого на единицу больше, чем размер исходного символа, и эти два символа будут объединены в двуслойный символ, где «контурный» символ будет находиться на нижнем слое. Если параметры стиля включают тень, то при конвертации также будет создан дополнительный «теневой» шрифтовый символ ArcGIS серого цвета, смещенный на единицу вправо и вниз, и эти два символа будут объединены в двуслойный символ, где «теневой» символ будет находиться на нижнем слое.

Векторные символы в системе MapInfo представлены символами, совместимыми с MapInfo 3.0. Они задаются в файле стилей формата «Шрифт MapInfo (.fnt)» (схема формата представлена на рис. 1), стили могут быть отредактированы пользователем. Идентификатор символа - номер символа в наборе. Стиль символа включает цвет и размер. Задается строкой вида «Symbol(<идентификатор>, <цвет>, <размер>)». Поскольку описание символа содержит только его номер в наборе, необходимо указать путь к файлу стилей, откуда необходимо произвести считывание символов. Описание каждого символа содержит координаты узлов и цвет символа по умолчанию. Конвертация происходит следующим образом: по считанным координатам узлов строится векторное изображение формата Windows enhanced metafile, на его основе создается точечный символ-рисунок ArcGIS (объект класса PictureMarker Symbol), параметры которого задаются в соответствии со стилем исходного символа.

Для визуализации линейных объектов в системе MapInfo используется библиотека стилей линейных условных знаков, которая находится в файле формата «Стиль линий MapInfo (.pen)» (схема формата представлена на рис. 2) и может изменяться пользователем 7. Идентификатор символа - номер линии в наборе, стиль символа включает цвет и толщину линии. Задается строкой вида «Pen(<толщина>, <идентификатор>, <цвет>)». Поскольку описание символа содержит только его номер в наборе, необходимо указать путь к файлу стилей, откуда нужно произвести считывание символов. Каждый символ в библиотеке включает описания слоев, из которых состоит символ, эти описания включают размер слоя и описание примитивов (тип, расположение и цвет по умолчанию), расположенных на слое. Примитивы могут быть векторные простые (отрезок, штрих, левая и правая стрелки), векторные сложные (полилиния, полигон) и служебные (ри-совать-до-конца, пропустить-до-конца, разрыв - на слое располагается только один из них). Конвертация происходит в зависимости от примитивов, расположенных на слое. Если на слое расположен примитив рисовать-до-конца, то независимо от наличия других прими-

Шрифт MapInfo (.fnt)

Заголовок

Колшество символов

Заголовки символов

Смещение от нэнала файла

Описание символов

Координаты узлов _Цвет_

Рис. 1. Схема формата «Шрифт MapInfo»

7 Редактирование стилей линий MapInfo. URL: http://glab2007.narod.ru/a7lstyle.html

тивов создается простая линия (объект класса SimpleLineSymbol) заданной ширины и цвета. Если на слое расположены векторные символы, то для каждого примитива по координатам узлов строится векторное изображение формата Windows enhanced metafile, на его основе

создается точечный символ-рисунок ArcGIS (объект класса PictureMarkerSymbol). Если кроме векторных символов на слое нет других символов, то на основе точечных символов рисунков создаются линейные маркерные символы (объекты класса MarkerLine Symbol), для него задается шаблон, длина которого равна длине слоя за вычетом ширины символа, шаблон заполняется только в позиции начала примитива. Если помимо векторных символов на слое расположен примитив пропустить-до-конца, то для всех примитивов на слое, расположенных левее него, создается картографическая линия с пустым шаблоном и декоратором (некоторым символом) в начале линии, который является символом, соответствующим векторному примитиву. Аналогично для всех примитивов, расположенных правее, создается картографическая линия с пустым шаблоном и декоратором в конце линии. Если на слое расположен примитив разрыв, то части слоя, расположенные слева и справа от него, обрабатываются следующим образом: векторные символы слева от слоя обрабатываются как символы слева от примитива пропустить-до-конца, а часть справа от слоя обрабатывается как самостоятельный слой.

Визуализация полигональных объектов в системе

MapInfo осуществляется с помощью площадных зали-Рис. 2. Схема формата г, „ г

п - Л т е вок. Заливки представляют собой растровые изобра-

«Стиль линии MapInfo» ^ _ _

жения, которые хранятся в динамических библиотеках

в корневом каталоге программы, набор заливок может быть изменен пользователем8. Идентификатор символа - номер заливки в наборе, стиль символа включает цвет заливки, цвет фона и границу, которая задается как линейный символ. Задается строкой вида «Вг^Ц<идентификатор>, <цвет_заливки>, <цвет_фона>)». Поскольку описание символа содержит только его номер в наборе, необходимо указать путь к библиотеке стилей, откуда нужно произвести считывание символов. Конвертация происходит следующим образом: по идентификатору выбирается необходимое изображение, и на его основе создается символ-заливка ArcGIS (объект класса PictureFillSymbol), параметры которого задаются в соответствии со стилем исходного символа.

Для создания тематических карт система MapInfo позволяет пользователю задавать тематические символы [2; 3], представляющие собой композицию ранее перечисленных простых символов, отображаемых по определенному правилу. Далее приведено описание тематических символов MapInfo, включающее описание стиля, способ их задания и подход к конвертации в тематические символы ArcGIS [4] (для всех тематических символов простые символы, входящие в их состав, конвертируются по ранее описанным правилам).

Индивидуальные значения. Каждое отдельное значение некоторой характеристики объекта представляется собственным цветом или символом (способ задания стиля символа зависит от типа геометрии объекта). Задается строкой вида «Shade with <характеристика> Values <значение>:<символ> <значение>:<символ> ... default:<символ>». При конвертации создается объект класса UniqueValueRenderer, параметры которого заполняются в соответствии с параметрами исходного символа.

8 Редактирование стилей площадных заливок MapInfo. URL: http://glab2007.narod.ru/a/fills.html; Создание собственных стилей площадных заливок в MapInfo. URL: http://gis-lab.info/qa/mapinfo-custom-fill-patterns.html

Карта диапазонов сопоставляет символ с объектом в зависимости от попадания некоторой его характеристики в заданный диапазон значений. Стиль определяется выбором диапазонов значений и их наименований, а также выбором символа для каждого диапазона и символа, используемого по умолчанию (способ задания стиля символа зависит от типа геометрии объекта). Задается строкой вида «Shade with <характеристика> Ranges <нача-ло_диапазона>:<конец_диапазона><символ> <начало_диапазона>:<конец_диапазона> <символ> ... default:<символ>».

Градуированные символы. Сопоставляет с объектами точечные символы, размер которых либо прямо, либо обратно пропорционален значению некоторой характеристики объекта. Стиль задается выбором точечного символа и сопоставлением минимального и максимального размеров этого символа с минимальным и максимальным значениями характеристики. Задается строкой вида «Shade with <характеристика> Graduated <шт_значение>: <раз-мер_символа> <max_значение>:<размер_символа> <символ>». При конвертации создается объект класса ProportionalSymbolRenderer, параметры которого заполняются в соответствии с параметрами исходного символа.

Столбчатая диаграмма. Стиль диаграммы включает ее тип (с накоплением - Stacked Bar или без Bar), линейный символ границы столбцов, а также максимальное значение характеристики и заливку для каждого столбца. Задается строкой вида «Shade with <характеристика> <тип> <масштаб> <символ_границы> <размер> Style <заливка>, <заливка>, ...». При конвертации создаются объекты следующих классов: ChartRenderer и (в зависимости от типа исходного символа) StackedCharSymbol или BarChartSymbol, последние являются значением поля ChartSymbol первого объекта и определяют стиль отрисовки диаграммы, параметры ChartRenderer заполняются в соответствии с параметрами исходного символа.

Круговая диаграмма. Стиль диаграммы включает размер, угол поворота, линейный символ границы, а также заливку для каждого участка диаграммы. Задается строкой вида «Shade with <характеристика> Pie <угол_поворота> <размер> <символ_границы> Style <заливка>, <заливка>, . ». При конвертации создаются объекты классов ChartRenderer и PieChart Symbol, последний является значением поля ChartSymbol первого объекта и определяет стиль отрисовки диаграммы, параметры ChartRenderer заполняются в соответствии с параметрами исходного символа.

Плотность точек. Заполняет полигональные объекты точками таким образом, чтобы общее число точек внутри каждого объекта было пропорционально некоторой его характеристике. Стиль точки определяется формой (круг или квадрат), цветом, размером и весом. Задается строкой вида «Shade with <характеристика> Density <вес> <форма> <размер> <цвет>». При конвертации создается объект класса DotDensityRenderer, параметры которого заполняются в соответствии с параметрами исходного символа.

Реализация и апробация

На основе проведенной классификации типов символов, используемых в системе MapInfo, изучения объектной модели символов ArcGIS, представленной в библиотеке ArcObjects, проведенного разбора форматов библиотек пользовательских точечных, линейных и полигональных условных обозначений, а также формата задания условных обозначений в наборах данных форматов MapInfo было реализовано считывание и представление пользовательских и тематических условных обозначений в разработанной объектной модели. На основе представленного подхода к конвертации был реализован алгоритм преобразования объектов модели условных обозначений MapInfo в объекты условных обозначений ArcGIS и произведено его внедрение в программный продукт «TAB Reader». После этого было проведено тестирование алгоритма на рабочих наборах MapInfo, содержащих тематические карты, в которых применяются пользовательские условные обозначения различных типов и заданы тематические условные обозначения. Тестирование показало, что все положения подхода, на котором основан алгоритм, выполняются, и все условные обозначения были конвертированы корректно. Результат работы алгоритма на одной из тематических карт представлен на рис. 3.

Рис. 3. Пример работы алгоритма: исходные данные (слева) и результат работы (справа)

Заключение

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

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

1. Демиденко А. Г. Тенденции развития ГИС на примере продуктов КБ «Панорама» // Геоматика. 2010. № 3. С. 91-96.

2. MapInfo Professional 12.5. Руководство пользователя. Pitney Bowes Software, 2014. 540 р.

3. Ерунова М. Г., Гостева А. А. Географические и земельно-информационные системы. Ч. 2. Картографирование средствами инструментальной ГИС MapInfo: Метод. указания. Красноярск, 2004. 84 с.

4. Зейлер М. Моделирование нашего мира. Руководство ESRI по проектированию базы геоданных. ESRI Press, 1999. 254 с.

Материал поступил в редколлегию 10.04.2017

I. V. Buldakov

Novosibirsk State University 2 Pirogov Str., Novosibirsk, 630090, Russian Federation

[email protected]

THEMATIC AND USER-DEFINED MAP SIGNS CONVERSION FROM MAPINFO TO ARCGIS

This work is devoted to the development of algorithm for thematic and user-defined map signs conversion from MapInfo format to ArcGIS format. There is no converter which can process all types of map signs: several of them are not support map signs conversion, other can convert only predefined subset of map signs. In this regard, the development of a method that can convert thematic and user-defined map signs is a very urgent. During the work, there were analyzed the MapInfo and ArcGIS thematic and user-defined map signs types and formats, and there were developed and implemented map signs conversion method.

Keywords: GIS, MapInfo, ArcGIS, map signs.

References

1. Demidenko A. G. Trends in GIS development based on KB «Panorama» products. Geomatics, 2010, № 3, p. 91-96.

2. MapInfo Professional 12.5. User guide. Pitney Bowes Software, 2014, 540 p.

3. Erunova M. G., Gosteva A. A. Geographical and land information systems. Part 2. Mapping with MapInfo: guidelines. Krasnoyarsk, 2004, 84 p.

4. Zeiler M. Modeling Our World: The ESRI Guide to Geodatabase Concepts. ESRI Press, 1999, 254 p.

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