Suite

Correction des polygones avec des erreurs « anneau non fermé »

Correction des polygones avec des erreurs « anneau non fermé »


J'ai un fichier de formes avec une seule fonction Polygon. Cette fonctionnalité a une erreur de géométrie "anneau non fermé" (vu ici dans QGIS):

J'ai essayé d'utiliser la mise en mémoire tampon et le GRASSv.nettoyercommande comme suggéré dans d'autres réponses, mais pas de chance. Je ne peux pas non plus trouver l'écart en inspectant visuellement la fonctionnalité (elle a l'air parfaite).

J'ai besoin d'une géométrie valide ici. Idéalement, j'aimerais avoir une solution Python/ligne de commande. Toute façon de le faire manuellement dans QGIS/ArcGIS serait également excellente.

METTRE À JOUR: ce shapefile peut être téléchargé ici.


Une des choses que je fais quand je reçois un "bague x non fermée" erreur pour un polygone est d'utiliser le Polygones en lignes outil de la barre d'outils : Vector > Outils de géométrie > Polygones en lignes… :

Maintenant, vous pouvez facilement voir où se trouve l'erreur visuellement. Heureusement, il existe une solution simple… utilisez le Lignes vers polygones outil du même menu!

Re-convertir cela devrait remplir l'anneau car aucune erreur n'a été trouvée en utilisant le Vérifier la validité de la géométrie outil.

J'espère que cela t'aides!


Éditer:

Vous pouvez utiliser le code suivant dans le Console Python pour faire l'opération ci-dessus :

import processing input = qgis.utils.iface.activeLayer() # Ou changer le chemin du fichier de formes (par exemple input = "C:/Test//example.shp") result = "C:/Test//result.shp" output_0 = processing.runalg("qgis:polygonstolines", input, None) output_1 = processing.runalg("qgis:linestopolygons", output_0['OUTPUT'], result)

En plus de la très bonne réponse de Joseph pour QGIS, vous pouvez utiliser l'outil "réparer la géométrie" dans ArcGIS. Vous trouverez ci-dessous la liste des erreurs corrigées.

Géométrie nulle : l'entité sera supprimée de la classe d'entités. Si les entités avec une géométrie nulle sont valides pour la façon dont les données sont modélisées Décochez l'option "Supprimer les entités avec une géométrie nulle" dans la boîte de dialogue, ou spécifiez l'option KEEP_NULL sur la ligne de commande ou dans le script, alors les entités ne seront pas supprimées lorsque rencontrés par cet outil. Segment court : le segment court de la géométrie sera supprimé. Ordre des anneaux incorrect - La géométrie sera mise à jour pour avoir un ordre des anneaux correct. Orientation de segment incorrecte - La géométrie sera mise à jour pour avoir une orientation de segment correcte. Auto intersections - Les segments de la géométrie qui se croisent seront divisés à leur intersection. **Anneaux non fermés** -Les anneaux non fermés seront fermés. Pièces vides : les pièces nulles ou vides seront supprimées.

Notez que si vous regardez le niveau "vertex", le début ET la fin de doivent être identiques afin de fermer la boucle.


Voir la vidéo: Angles des polygones réguliers