Lisser / généraliser un polygone dans QGIS?

38

Est-il possible de lisser ou de généraliser un polygone dans QGIS, peut-être en utilisant un plugin tel que le plugin generalizer pour les lignes?

Je pourrais convertir mes polygones en lignes, les lisser et les reconvertir en polygones, mais cela ne fonctionne pas pour mes polygones pour plusieurs raisons.

CARTE
la source

Réponses:

27

vous pouvez utiliser:

Vector menu -> Geometry tools -> Simplify Geometries

.

simp

A côté de cela, vous pouvez aussi utiliser l'algorithme Douglas-Peucker dans les postgis, vous pouvez donc l'utiliser dans les postgis, puis ajouter une couche postgis à qgis. vous trouverez des informations ici sur Simplifier: Réduisez le poids d’une géométrie.

SELECT simplify(the_geom,500) as simpgeom 
    FROM neighborhoods

simplifier

Aragon
la source
4
Cela simplifie les lignes, les rendant plus déchiquetées. Y a-t-il un moyen de les lisser (ce qui, je suppose, devrait interpoler certains points)?
Nate Wessel
Simplifier supprime simplement les sommets de la ligne ou du polygone, ce qui peut toujours laisser des lignes irrégulières. Vous voulez que le plug-in Generalizer se branche si vous voulez des lignes lissées.
MicheleTobias
1
Pour plus d'informations, cet outil a été déplacé dans QGIS 2.16 vers la boîte à outils Traitement / Géoalgorithmes QGIS / Outils de géométrie vectorielle / Simplifier la géométrie
gisnside le
20

La réponse d'Aragon est bonne pour la généralisation. La réponse de Bryan est bonne pour le lissage mais un peu compliquée. Voici deux alternatives pour le lissage:

  • Utilisez l' v.generalizeroutil GRASS de la boîte à outils Traitement. C'est le module sur lequel le plugin QGIS Generalizer dans la réponse de Bryan est construit. L'outil GRASS vous permet d'utiliser des polygones afin d'éviter les étapes de conversion en lignes et inversement. C'est un excellent outil avec beaucoup d'algorithmes de lissage / généralisation.
  • Utilisez l'approche 'old-school' de buffer-debuffer. Tamponnez simplement vos polygones d'un montant approprié (votre appel dépend de la nature des données et du degré de lissage requis). Ensuite, éliminez le tampon en appliquant la même valeur pour la distance du tampon, mais en le rendant négatif cette fois. Si vous dissolvez les tampons pour la première fois, vous pouvez souvent éliminer simultanément de petits espaces ou des trous pour les beignets si nécessaire (bien que cela ne soit pas toujours souhaitable, réfléchissez bien avant de choisir de le dissoudre).

Le lissage implique souvent l’ajout de sommets (en particulier avec la méthode tampon-debuffer). Après le lissage, vous pouvez ensuite appliquer la généralisation conformément à la réponse d'Aragon.

MappaGnosis
la source
1
Belle démonstration de l'approche tampon /
dépollution
Excellente idée! J'ai utilisé les deux approches, Ramer (lignes) et basée sur la surface, la dernière donnant des polys un peu plus lisses, mais qui ressemblent toujours à du fil de fer barbelé. J'espère que cette approche fonctionne mieux.
Culebrón
16

J'ai également eu de la chance en utilisant le plugin QGIS Generalizer (activer les plugins expérimentaux), puis:

Vector > Geometry Tools > Polygons to lines

Ensuite, utilisez le plugin Generalizer pour lisser les lignes et les sommets

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

Revenez ensuite les lignes en polygones

Vector > Geometry Tools > Polygons to lines

Cela permet de lisser les lignes et d’arrondir les angles. C'est un peu maladroit de devoir basculer entre les lignes et les polys, mais cela fonctionne. Je sais qu'il existe également des moyens de le faire via Grass, mais je les ai trouvées difficiles à configurer.

Bryan Kennedy
la source
C'est une approche utile: cependant, j'avais des trous dans mes polygones et je ne peux pas les recréer avec l'outil lignes-> polygone
Djana
6

Il est maintenant disponible l' Smooth geometryalgorithme via Processing Toolbox > QGIS geoalgorithms > Vector Geometry Tools.

  1. Prendre des objets géométriques en dents de scieentrez la description de l'image ici
  2. Définir les options (j'ai changé le Iterationschamp 5et suis satisfait du résultat)entrez la description de l'image ici
  3. Obtenir un objet lissé entrez la description de l'image ici
Mykola Kozyr
la source
Est-ce que "l'algorithme de géométrie lisse" est toujours une option valide? Comme je n'obtiens pas les résultats souhaités à l'aide d'autres algorithmes, je cherchais cet algorithme dans mon installation de QGIS 2.14 mais je ne pouvais pas le trouver. J'ai ensuite installé QGIS 2.18.16 mais je ne trouve toujours pas cet algorithme dans la barre d’outils de traitement. J'apprécierais toute aide pour le trouver ou l'installer.
Taya
1
Ok, solution à mon propre problème trouvé après le redémarrage du système. Il y avait un problème avec le plug-in de traitement juste après la fin de la nouvelle installation de QGIS 2.18. Le redémarrage du système et QGIS ont résolu ce problème et je peux voir le "algorithme de géométrie lisse" dans la boîte à outils de traitement.
Taya
Je devrais vérifier gisSE plus souvent :) Je suis heureux que vous ayez trouvé la solution
Mykola Kozyr
Je pense qu'il vous manque une étape ... J'ai la version française de mon installation de QGIS, je ne peux donc pas l'ajouter moi-même, mais quelque part dans la série, j'ai dû choisir "lisser".
user3386170
2

Faites un clic droit sur la carte principale (en haut) puis activez "boîte à outils" -> voir comme vous pouvez le voir sur l'image ci-dessous entrez la description de l'image ici

Soyol A
la source