Страница 1 из 1
сглаживание линий
Добавлено: 29 май 2011, 12:05
AndreyL
Вопрос такой - при ручном дешифрировании точки далеко не всегда лежат точно на линии, есть некоторое "вихляние". Существуют ли в АркГИС штатные средства сглаживания линий? Или какие-то подходы. В идеале хотелось бы получить аппроксимацию линии чем-нибудь типа набора кривых Безье (как в Кореле)
Re: сглаживание линий
Добавлено: 29 май 2011, 12:54
syroezhka
www.youtube.com/watch?v=GzMphdcUmxo
Тоже самое, но над всем векторным слоем сразу - ToolBox - Data Menagement - Generalization - Smooth polyline/Smooth polygon
Для этого должен быть ArcInfo не ниже 9.3.
Обратите внимание, что при сглаживании, размер файла увеличивается в несколько раз
Re: сглаживание линий
Добавлено: 29 май 2011, 13:16
AndreyL
Ага, спасибо! У меня, правда, 9.2 (по причине тормознутости компьютера), но то, что есть в видеоуроке скорее больше подойдет.
Re: сглаживание линий
Добавлено: 29 май 2011, 13:29
syroezhka
AndreyL писал(а):но то, что есть в видеоуроке скорее больше подойдет.
Эх, а я уже видео сдела для сглаживания всего шейпа, по типу того, которое на youtube.
Ну ниче, выложу, что б не пропадало
Re: сглаживание линий
Добавлено: 29 май 2011, 13:52
AndreyL
Тоже спасибо! Полезная вещь.
Re: сглаживание линий
Добавлено: 30 май 2011, 09:01
AndreyL
Вот некоторые результаты довольно беглого исследования предложенных инструментов.
Я ошибался, считая, что инструмент Smooth из набора Advanced Editing решит мою задачку. На картинке результаты сглаживания с разным значением параметра максимального смещения (параметр смещения в метрах).

- Smooth.png (18.24 КБ) 12091 просмотр
Есть большое подозрение, что сей алгоритм пытается провести плавную линию через некоторые вертексы, игнорируя остальные, т.е. что-то типа сплайна по выбранным вертексам.
Использование инструмента ToolBox - Data Menagement - Generalization - Smooth polyline (есть в 9.2) с алгоритмом Безье_Интерполяция тоже дает на выходе сплайн, но точно проходящий через все вертексы.

- Bezier.png (12.35 КБ) 12091 просмотр
Наиболее интересные результаты, с точки зрения поставленной задачи, показывает инструмент Smooth polyline с алгоритмом PAEK. Вот результаты с разной толерантностью (толерантность опять же в метрах).

- PAEK.png (18.42 КБ) 12091 просмотр
Теперь вопрос - есть ли какие-нибудь рекомендации по выбору параметра толерантности?
Re: сглаживание линий
Добавлено: 30 май 2011, 11:58
AndreyL
Еще вопрос в продолжение: есть ли где-нибудь описание алгоритма PAEK?
Re: сглаживание линий
Добавлено: 30 май 2011, 12:00
syroezhka
Ваши картинки отлично иллюстрируют методы. Дальше вольный перевод хелпа:
PAEK (Polynomial Approximation with Exponential Kernel) - полиномиальная аппроксимация с экспоненциальным ядром. Метод рассчитывает сглаженную кривую, которая не проходит через вершины.
Параметр Smoothing Tolerance контролирует длину смещения, при расчете новых вершин. Чем меньше длина - тем более точное сглаживание и тем дольше время обработки.
BEZIER_INTERPOLATION - интерполяция, при которой сглаженная кривая проходит чрез вершины.
Я пользовалась PAEK для сглаживания полигонов. Мне особенно нравилось, что площади до сглаживания и после, отличались на мизерный процент. Параметр сглаживания выбирала, исходя из необходимой плановой точности результирующей карты. Например, для 100К ставила 50м
Re: сглаживание линий
Добавлено: 30 май 2011, 12:20
syroezhka
AndreyL, ESRi ссылается на статью
www.springerlink.com/content/yvmdclcrx29rn5be/
Но у меня научного доступа к шпрингеру сейчас нету, поэтому, оценить ее содержание я не могу.
Re: сглаживание линий
Добавлено: 31 май 2011, 05:16
AndreyL
syroezhka писал(а):... у меня научного доступа к шпрингеру сейчас нету, поэтому, оценить ее содержание я не могу.
Я, к сожалению, тоже пока не нашел этой статьи - более поздние Грибовские есть, а этой нет. Будем искать.
Re: сглаживание линий
Добавлено: 14 мар 2014, 20:25
Тимур
Вот статья, если ещё нужно