Сглаживание / обобщение многоугольника в QGIS?


38

Можно ли сгладить или обобщить многоугольник в QGIS, возможно, используя плагин, такой как плагин generalizer для линий?

Я мог бы преобразовать свои полигоны в линии, сгладить их и преобразовать обратно в полигоны, но это не работает для моих полигонов по нескольким причинам.

Ответы:


27

вы можете использовать:

Vector menu -> Geometry tools -> Simplify Geometries

,

простофиля

Кроме того, вы можете использовать алгоритм Дугласа-Пекера и в postgis, поэтому вы можете использовать его в postgis, а затем добавить слой postgis в qgis. Вы можете найти некоторую информацию здесь о Упрощении: Уменьшите вес геометрии.

SELECT simplify(the_geom,500) as simpgeom 
    FROM neighborhoods

simplfy


4
Это упрощает линии, делая их более неровными. Есть ли способ сгладить их (что, я думаю, придется интерполировать некоторые точки)?
Нейт Вессель

Упрощение просто удаляет вершины из линии или многоугольника, которые все еще могут оставлять неровные линии. Вы хотите подключить Генерализатор, если вы хотите сглаженные линии.
MicheleTobias

1
Для получения дополнительной информации этот инструмент был перемещен в QGIS 2.16 на панель инструментов Обработка / Геоалгоритмы QGIS / Инструменты векторной геометрии / Упрощенная геометрия
gisnside

20

Ответ Арагона хорош для обобщения. Ответ Брайана хорош для сглаживания, но немного запутан. Вот две альтернативы для сглаживания:

  • Используйте v.generalizerинструмент GRASS из панели инструментов Обработка. Это модуль, на котором построен плагин обобщителя QGIS в ответе Брайана. Инструмент GRASS позволяет вам использовать многоугольники, чтобы вы могли избежать шагов преобразования в линии и обратно. Это отличный инструмент с множеством алгоритмов сглаживания / обобщения.
  • Используйте подход старой школы буферного дебаффера. Просто буферизуйте полигоны на соответствующую сумму (ваш вызов зависит от характера данных и степени сглаживания, которую вам требуется). Затем отмените буферизацию, применив то же значение для буферного расстояния, но на этот раз сделав его отрицательным. Если вы растворяете буферы в первый раз, вы часто можете одновременно устранить небольшие пробелы или дырки от бублика, если это требуется (хотя это не всегда желательно, поэтому тщательно подумайте, прежде чем выбрать растворение).

Сглаживание часто означает добавление вершин (особенно с помощью метода buffer-debuffer). После сглаживания вы можете применить обобщение в соответствии с ответом Арагона.


1
Хорошая демонстрация подхода буфера /
дебуфера

Отличная идея! Я использовал оба подхода, Ramer (линии) и основанный на области, последний дает немного более гладкие полы, но все еще похож на колючую проволоку. Надеюсь, что этот подход работает лучше.
culebrón

16

Мне также повезло с использованием плагина QGIS Generalizer (включите экспериментальные плагины), а затем:

Vector > Geometry Tools > Polygons to lines

Затем используйте плагин Generalizer, чтобы сгладить линии и вершины

Plugins > Generalizer > Generalizer
Algorithm: "Chaiken's Algorithm"

Затем поверните линии обратно в многоугольники

Vector > Geometry Tools > Polygons to lines

Это делает работу лучше, фактически сглаживая линии и закругляя углы. Это немного неуклюже, когда приходится переключаться между строками и полисами, но это работает. Я знаю, что есть способы сделать это и через Grass, но я нашел их сложными в настройке.


Это полезный подход: однако, у меня были дыры в моих многоугольниках, и я не могу воссоздать их с помощью инструмента линии-> многоугольник
Джана,

6

Теперь доступен Smooth geometryалгоритм через Processing Toolbox > QGIS geoalgorithms > Vector Geometry Tools.

  1. Возьмите неровные геометрические объектывведите описание изображения здесь
  2. Установить параметры (я изменил Iterations поле на 5и был удовлетворен результатом)введите описание изображения здесь
  3. Получить сглаженный объект введите описание изображения здесь

Является ли «алгоритм гладкой геометрии» по-прежнему допустимым вариантом? Поскольку я не получаю желаемых результатов, используя другие алгоритмы, я искал этот алгоритм при установке QGIS 2.14, но не смог его найти. Затем я установил QGIS 2.18.16, но все еще не могу найти этот алгоритм на панели инструментов обработки. Буду признателен за любую помощь в поиске или установке.
Тая

1
Хорошо, решение моей проблемы найдено после перезагрузки системы. Возникла проблема с плагином обработки сразу после завершения новой установки QGIS 2.18. Перезапуск системы и QGIS исправили это, и я вижу «Алгоритм гладкой геометрии» внутри панели инструментов обработки.
Тая

Я должен чаще проверять gisSE :) Я рад, что вы нашли решение
Николай Козырь

Я думаю, что вы пропустили шаг ... У меня есть французская версия для моей установки QGIS, поэтому я не могу сам добавить шаг, но где-то по ходу дела я должен был выбрать "lisser".
user3386170

2

Щелкните правой кнопкой мыши на главной плате (вверху), затем активируйте «панель инструментов» -> посмотрите, как вы можете видеть на картинке ниже. введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.