Извлечение и согласование полигональных покрытий

Обсуждение бесплатной версии EasyTrace
Ответить
alexm
Новоприбывший
Сообщения: 5
Зарегистрирован: 30 май 2011, 08:34
Репутация: 0

Извлечение и согласование полигональных покрытий

Сообщение alexm » 01 авг 2011, 15:58

К нам обратились специалисты, занимающиеся задачами геоморфологии (только не спрашивайте меня, что это такое!).

Суть задачи сводилось к следующему:
- Имеются два результата дешифрирования на одну и ту же территорию. Фактически, это изображения сплошных полигональных покрытий, нанесённые фломастерами поверх топографической карты.
Одно покрытие называется Natural, другое Artificial. Теоретически, значительная часть линий границ соответствующих полигонов должна совпадать на обоих покрытиях. Практически - это линии, нарисованные от руки. И лежат они как угодно...

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

Решение задачи сводится к следующему:
- Извлечь полигональные покрытия отдельно с растров Natural и Artificial;
- Согласовать векторные границы покрытий в пределах указанного допуска;
- Обработать особые случаи, возникающие в местах сопряжения границ;

Для решения этой задачи был выполнен ряд доработок пакета Easy Trace:
- добавлена новая утилита "Извлечение границ полигонов";
- доработана функция "Согласование границ" утилиты "Коррекция топологии";
- добавлен новый инструмент "Согласование линий".

1. Исходные растры выглядят примерно так:

растр Natural
Изображение
растр Artificial
Изображение

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

растр Natural
Изображение
растр Artificial
Изображение

3. После выделения границ в виде чёрно-белого растра, была выполнена их автоматическая векторизация. Естественно, полученный "вектор" неизбежно содержит некоторый "мусор". Источником мусора являются дефекты выделения бинарного растра и векторизованные подписи к полигонам.

"Скелеты" линий после автовекторизации
Изображение

4. Для отделения "зёрен от плевел" использовалась новая утилита "Извлечение границ полигонов".
Её задача - перенести на отдельный слой векторные линии, из которых можно собрать полигоны с площадью не менее заданной. При этом игнорируются, а точнее "сшиваются", короткие разрывы в линиях и объединяются мелкие полигоны, возникшие из-за прилипших к границам подписей.

Окно утилиты "Извлечение границ полигонов"
Изображение
Результат применения утилиты
Изображение


5. После коррекции границ и сборки полигональных покрытий получаем два векторных слоя "Artificial" и "Natural". Полигоны в покрытиях атрибутированы в соответствии с подписями.

Полигоны слоя Natural
Изображение
Полигоны слоя Artificial
Изображение

7. “Одинаковые” границы полигонов покрытий "Natural" и "Artificial" имеют значительные расхождения. Эталонным покрытием является покрытие "Natural" (зелёные лигнии), к нему будут подтянуты границы полигонов слоя "Artificial" (желтые линии).

Границы обоих полигональных слоёв
Изображение

Утилита "Коррекция топологии". Включена опция "Согласование границ"
Изображение

Границы после обработки утилитой
Изображение

7. То, что не смогла автоматически подтянуть утилита "Коррекция топологии",
обрабатывается новым инструментом "Согласование линий".

ВИДЕО: Инструмент согласования линий >>

8. В результате получены два согласованных полигональных покрытия.
Время выполнения работы 4 - 5 часов на лист (а точнее на два совмещённых листа) карты.

Изображение

Ответить

Вернуться в «EasyTrace»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 17 гостей