От бумажной карты к ГИС. Опыт векторизации топографических карт в среде Spotlight - Полозюк Валерий Николаевич
С помощью инструмента
строим верхнюю и нижнюю стороны рамки: каждую — по трем точкам (например, верхний левый угол рамки + пересечение верхней стороны рамки и осевого меридиана листа + верхний правый угол рамки). Настраиваем сетку как километровую и включаем режим . Затем, используя привязку к узлам сетки, инструментами Отрезок по точкам или Полилиния строим векторную километровую сетку так, чтобы концы отрезков сетки находились за пределами листа карты — для получения пересечений построенной рамки и линий километровой сетки.Теперь мы имеем полный набор векторных пересечений для создания набора калибровочных пар в диалоге Калибровка. Используя инструмент
и включив режим векторной привязки эту работу проделать совсем несложно. Калибровочные пары по километровой сетке проще и быстрее задать с помощью инструмента .В первый раз результат калибровки (рис. 4) вас просто ошеломит. Впрочем, это скоро проходит — к хорошему привыкаешь быстро.
Рис. 4
-
Векторизация
Оговоримся сразу: «Тюменбургаз» ведет работы по векторизации карт тундровых областей, где практически отсутствуют населенные пункты, крайне бедна растительность, но часто встречаются области болот и заболоченности (рис. 2).
Формат обмена данных Mapinfo накладывает жесткие ограничения на используемые типы графических объектов[1]: допустимы лишь точка, линия, ломаная (полилиния), область (замкнутая полилиния), дуга, текст, прямоугольник, скругленный прямоугольник, эллипс. Определиться с тем, какие типы объектов мы должны получить, лучше до начала векторизации. Присутствие в MIF-файлах объектов типа «текст» нежелательно: весь текст на топографической карте является либо обозначением уровня (отметки), либо сообщением о свойствах какого-либо объекта — другими словами, его атрибутом. Кроме того, для пересчета MIF-файлов из одной координатной системы в другую мы используем программу «Geographic Calculator 4.01», а с объектами типа «текст» эта программа работает, мягко говоря, некорректно. Объект типа «дуга» вполне может быть частью полилинии, описывающей горизонталь или ручей, но крайне неудобен при векторном редактировании (это личное мнение автора, с которым вы, разумеется, вправе не согласиться). Поскольку в нашем случае почти не встречаются населенные пункты, то и объекты правильной формы (прямоугольники, скругленные прямоугольники и эллипсы) создавать не приходится — по крайней мере в автоматическом режиме…
Наибольший объем работ по векторизации топокарт приходится на оцифровку рельефа и гидрографии. Первое место прочно удерживают горизонтали. Их удобно оцифровывать в автоматическом режиме — горизонталями является большинство объектов коричневого цвета. А вот при оцифровке гидрографии выяснится, что синим цветом на карте обозначено слишком много объектов. Так что для векторизации рек, ручьев и т. д. удобнее использовать трассировку. Но и горизонтали, и ручьи, и границы озер и рек желательно получить в виде полилиний и замкнутых полилиний, поэтому окончательный набор объектов для конверсии выглядит так, как это показано на рис. 5.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Рис. 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 м) в метрах.