От бумажной карты к ГИС. Опыт векторизации топографических карт в среде Spotlight - Валерий Николаевич Полозюк
Шрифт:
Интервал:
Закладка:
В первый раз результат калибровки (рис. 4) вас просто ошеломит. Впрочем, это скоро проходит — к хорошему привыкаешь быстро.
Рис. 4
-
Векторизация
Оговоримся сразу: «Тюменбургаз» ведет работы по векторизации карт тундровых областей, где практически отсутствуют населенные пункты, крайне бедна растительность, но часто встречаются области болот и заболоченности (рис. 2).
Формат обмена данных Mapinfo накладывает жесткие ограничения на используемые типы графических объектов[1]: допустимы лишь точка, линия, ломаная (полилиния), область (замкнутая полилиния), дуга, текст, прямоугольник, скругленный прямоугольник, эллипс. Определиться с тем, какие типы объектов мы должны получить, лучше до начала векторизации. Присутствие в MIF-файлах объектов типа «текст» нежелательно: весь текст на топографической карте является либо обозначением уровня (отметки), либо сообщением о свойствах какого-либо объекта — другими словами, его атрибутом. Кроме того, для пересчета MIF-файлов из одной координатной системы в другую мы используем программу «Geographic Calculator 4.01», а с объектами типа «текст» эта программа работает, мягко говоря, некорректно. Объект типа «дуга» вполне может быть частью полилинии, описывающей горизонталь или ручей, но крайне неудобен при векторном редактировании (это личное мнение автора, с которым вы, разумеется, вправе не согласиться). Поскольку в нашем случае почти не встречаются населенные пункты, то и объекты правильной формы (прямоугольники, скругленные прямоугольники и эллипсы) создавать не приходится — по крайней мере в автоматическом режиме…
Наибольший объем работ по векторизации топокарт приходится на оцифровку рельефа и гидрографии. Первое место прочно удерживают горизонтали. Их удобно оцифровывать в автоматическом режиме — горизонталями является большинство объектов коричневого цвета. А вот при оцифровке гидрографии выяснится, что синим цветом на карте обозначено слишком много объектов. Так что для векторизации рек, ручьев и т. д. удобнее использовать трассировку. Но и горизонтали, и ручьи, и границы озер и рек желательно получить в виде полилиний и замкнутых полилиний, поэтому окончательный набор объектов для конверсии выглядит так, как это показано на рис. 5.
Рис. 5
Вывод из опыта работы: если необходимо оцифровать одни только объекты гидрографии (например, для строительного проектирования, оформления земельных отводов крупных объектов), то использование трассировки по цветному растру повышает производительность в 2–2,5 раза. Применение автоматической векторизации при полной оцифровке листа карты ускоряет работу в 4–5 раз. Не сочтите это рекламой, но я искренне восхищен возможностями программы Spotlight Pro! Впрочем, вернемся к процессу оцифровки.
Выполнив бинаризацию оттенков коричневого цвета, получаем внедренный растр, при осмотре которого можно заметить, что он требует некоторого редактирования. В областях с большой плотностью горизонталей происходит слияние растровых линий (рис. 6), и программа вряд ли сможет самостоятельно разобраться в этой мешанине.
Рис. 6
Справиться с ситуацией помогает инструмент
. Несколько движений мышью — и внедренный растр приобретает осмысленный вид (рис. 7).Рис. 7
В ситуациях, подобных той, что приведена на рис. 8, используется инструмент
.Рис. 8
Поскольку после векторизации потребуется время на редактирование векторной линии, проще привести растр к виду, представленному на рис. 9. По окончании редактирования растра достаточно будет выполнить операцию заливки дырок, и такие объекты будут распознаваться как одна непрерывная полилиния.
Рис. 9
Итак, весь процесс оцифровки листа карты сводится к следующим процедурам:
• бинаризация рельефа (оттенки коричневого цвета);
• преобразование растра в векторы;
• редактирование полученных векторов (расслоение, задание уровней и атрибутов, объединение разрозненных полилиний и т. п.);
• трассировка объектов гидрографии;
• оцифровка оставшихся объектов вручную (консервативно настроенным пользователям AutoCAD рекомендую проделать эту часть работы в любимой программе: нажмите Сохранить как… и выберите формат DWG).
Экспорт
Экспорт полученных данных из Spotlight Pro в AutoCAD не представляет никакой сложности, а вот об экспорте в Mapinfo следует поговорить подробнее. По результатам экспорта Spotlight создает два файла с одинаковым именем и с расширениями MIF и MID. MIF-файл — это база данных, где собрана информация о типах векторных объектов и координатах их узловых точек (графическая информация). МID-файл — база табличных данных, характеризующих соответствующий графический объект (имя слоя, атрибут, уровень, тип и цвет линии и т. д.). Наличие MID-файла не обязательно, но содержащаяся в нем информация пригодится для дальнейшей работы в Mapinfo.
В заголовке MIF-файла прописывается система координат «План-схема» («NonEarth») и указываются единицы измерения, которые мы выбрали при создании системы координат (рис. 10).
Рис. 10
Импорт в Mapinfo будет корректным, если исправить предложение CoordSys, указав необходимую проекцию и единицы измерения[2]. Что касается примера, приведенного на рис. 10, координаты объектов получены для 4-й зоны проекции Гаусса-Крюгера (осевой меридиан — 21 градус, начальная широта — 0 градусов, масштабный множитель — 1, смещение осевого меридиана по оси у — 4 500 000 м) в метрах.
Исправленный заголовок MIF-файла показан на рис. 11.
Рис. 11
Теперь MIF-файл готов к импорту в Mapinfo. Правда, при экспорте данных из Spotlight Pro версии 5 (и всех ее модификаций) возникает еще одна проблема, избавиться от которой мы так и не смогли. Дело в том, что в процессе экспорта значений уровней объектов происходит их «масштабирование». То есть значение уровня, присвоенное при оцифровке объекта в Spotlight, изменяется кратно масштабу, выбранному при задании системы координат (напомню, что в нашем случае был задан масштаб 1:25). Получается, что горизонталь с уровнем 75 метров после экспорта расположится на уровне 3 метра.
Подобная информация записывается в MID-файле (рис. 12). В третьей колонке этого файла содержатся значения уровней, подлежащие исправлению. Исправляем мы их в Microsoft Excel, но сохранять исправления приходится жонглируя форматами и бдительно следя за тем, чтобы в качестве разделителей оставались запятые, а в качестве десятичных разделителей — точки. Если кто-то сможет предложить более простой способ — пишите автору на e-mail [email protected], буду очень благодарен. Пользователям AutoCAD, столкнувшимся с такой ситуацией, посоветую разве что указывать увеличенное значение при задании уровня объекта в Spotlight. Это довольно неудобно, но исправлять уровень каждого объекта из AutoCAD еще неудобнее.
Рис. 12
Представители компании Consistent Software