Используя плагин QGIS + GRASS:
Добавьте панель инструментов Grass из окна «Управление плагинами».
Ваши линии должны быть вектором травы, поэтому конвертируйте их в новый или существующий набор карт GRASS.
На панели инструментов GRASS выберите Инструменты GRASS ...
Ищите модуль: v.generalize ( учебник WIKI здесь )
Затем вы можете выбрать несколько различных обобщающих алгоритмов:
Обратите внимание на алгоритмы: Chaiken, Hermite или даже скользящее среднее. Также есть несколько других!
Различия можно увидеть в картинках вики:
из Wiki: «Обратите внимание, что разница между« Chaiken »и« Hermite »заключается в том, что линии, производимые« Chaiken »,« вписывают »оригинальные линии, тогда как« Hermite »линии« описывают »исходные линии, как можно видеть на изображение [выше]. (Черная линия - оригинальная линия, зеленая линия - «Чайкен», а синяя - «Эрмит»)
Используя uDig + jgrasstools или grass:
Если вам сложно получить желаемый результат от vgeneralize от GRASS, попробуйте последнюю версию uDig с jgrasstools . Вы также можете взять траву из того же места, что и jgrasstools.
После установки и запуска uDig включите Spatial Toolbox : Window> Show View> Other ...
Снимите панель инструментов для удобства чтения (щелкните правой кнопкой мыши вкладку Spatial Toolbox> Detach ...):
Загрузите необходимые модули jgrasstools и grass (опционально):
Не забудьте установить параметры травы (указать исполняемый файл grass или файл bat в windows, или команду grass в linux, например, / usr / bin / grass), если вы также загрузите jar-файл grass:
В заключение! Используя инструменты из jgrasstools (не трава), вы можете легко обобщить линию с помощью Vector Processing> LineSmootherJaiTools
Убедитесь, что правильно настроили ввод и вывод (работает только с шейп-файлами, поэтому нет необходимости конвертировать ваши данные в наборы / местоположения для травы) :
Закончив настройку допуска на сглаживание (0,0 - 1,0) и ввода / вывода, нажмите кнопку «Воспроизведение» в окне «Пространственная панель инструментов» (вверху справа):
Полученные результаты: