сглаживание линий

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
AndreyL
Завсегдатай
Сообщения: 483
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

сглаживание линий

Сообщение AndreyL » 29 май 2011, 12:05

Вопрос такой - при ручном дешифрировании точки далеко не всегда лежат точно на линии, есть некоторое "вихляние". Существуют ли в АркГИС штатные средства сглаживания линий? Или какие-то подходы. В идеале хотелось бы получить аппроксимацию линии чем-нибудь типа набора кривых Безье (как в Кореле)

Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

Re: сглаживание линий

Сообщение syroezhka » 29 май 2011, 12:54

www.youtube.com/watch?v=GzMphdcUmxo
Тоже самое, но над всем векторным слоем сразу - ToolBox - Data Menagement - Generalization - Smooth polyline/Smooth polygon
Для этого должен быть ArcInfo не ниже 9.3.
Обратите внимание, что при сглаживании, размер файла увеличивается в несколько раз

AndreyL
Завсегдатай
Сообщения: 483
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

Re: сглаживание линий

Сообщение AndreyL » 29 май 2011, 13:16

Ага, спасибо! У меня, правда, 9.2 (по причине тормознутости компьютера), но то, что есть в видеоуроке скорее больше подойдет.

Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

Re: сглаживание линий

Сообщение syroezhka » 29 май 2011, 13:29

AndreyL писал(а):но то, что есть в видеоуроке скорее больше подойдет.
Эх, а я уже видео сдела для сглаживания всего шейпа, по типу того, которое на youtube.
Ну ниче, выложу, что б не пропадало :D
generalization.rar
(414.27 КБ) 470 скачиваний

AndreyL
Завсегдатай
Сообщения: 483
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

Re: сглаживание линий

Сообщение AndreyL » 29 май 2011, 13:52

Тоже спасибо! Полезная вещь.

AndreyL
Завсегдатай
Сообщения: 483
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

Re: сглаживание линий

Сообщение AndreyL » 30 май 2011, 09:01

Вот некоторые результаты довольно беглого исследования предложенных инструментов.

Я ошибался, считая, что инструмент Smooth из набора Advanced Editing решит мою задачку. На картинке результаты сглаживания с разным значением параметра максимального смещения (параметр смещения в метрах).
Smooth.png
Smooth.png (18.24 КБ) 12085 просмотров
Есть большое подозрение, что сей алгоритм пытается провести плавную линию через некоторые вертексы, игнорируя остальные, т.е. что-то типа сплайна по выбранным вертексам.

Использование инструмента ToolBox - Data Menagement - Generalization - Smooth polyline (есть в 9.2) с алгоритмом Безье_Интерполяция тоже дает на выходе сплайн, но точно проходящий через все вертексы.
Bezier.png
Bezier.png (12.35 КБ) 12085 просмотров
Наиболее интересные результаты, с точки зрения поставленной задачи, показывает инструмент Smooth polyline с алгоритмом PAEK. Вот результаты с разной толерантностью (толерантность опять же в метрах).
PAEK.png
PAEK.png (18.42 КБ) 12085 просмотров
Теперь вопрос - есть ли какие-нибудь рекомендации по выбору параметра толерантности?

AndreyL
Завсегдатай
Сообщения: 483
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

Re: сглаживание линий

Сообщение AndreyL » 30 май 2011, 11:58

Еще вопрос в продолжение: есть ли где-нибудь описание алгоритма PAEK?

Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

Re: сглаживание линий

Сообщение syroezhka » 30 май 2011, 12:00

Ваши картинки отлично иллюстрируют методы. Дальше вольный перевод хелпа:
PAEK (Polynomial Approximation with Exponential Kernel) - полиномиальная аппроксимация с экспоненциальным ядром. Метод рассчитывает сглаженную кривую, которая не проходит через вершины.
Параметр Smoothing Tolerance контролирует длину смещения, при расчете новых вершин. Чем меньше длина - тем более точное сглаживание и тем дольше время обработки.
BEZIER_INTERPOLATION - интерполяция, при которой сглаженная кривая проходит чрез вершины.

Я пользовалась PAEK для сглаживания полигонов. Мне особенно нравилось, что площади до сглаживания и после, отличались на мизерный процент. Параметр сглаживания выбирала, исходя из необходимой плановой точности результирующей карты. Например, для 100К ставила 50м

Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

Re: сглаживание линий

Сообщение syroezhka » 30 май 2011, 12:20

AndreyL, ESRi ссылается на статью
www.springerlink.com/content/yvmdclcrx29rn5be/
Но у меня научного доступа к шпрингеру сейчас нету, поэтому, оценить ее содержание я не могу.

AndreyL
Завсегдатай
Сообщения: 483
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

Re: сглаживание линий

Сообщение AndreyL » 31 май 2011, 05:16

syroezhka писал(а):... у меня научного доступа к шпрингеру сейчас нету, поэтому, оценить ее содержание я не могу.
Я, к сожалению, тоже пока не нашел этой статьи - более поздние Грибовские есть, а этой нет. Будем искать.

Тимур
Интересующийся
Сообщения: 19
Зарегистрирован: 04 май 2012, 20:30
Репутация: 2
Откуда: ЗБС МГУ

Re: сглаживание линий

Сообщение Тимур » 14 мар 2014, 20:25

Вот статья, если ещё нужно
Вложения
chp%3A10.1007%2F3-540-45868-9_22.pdf
вот статья Smoothing and Compression of Lines Obtained by
Raster-to-Vector Conversion
(188.35 КБ) 644 скачивания

Ответить

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

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

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