Suite

Comment identifier les polygones avec des erreurs de ruban « drapeau »


En travaillant dans ArcMap, j'ai rencontré des erreurs dans une couche de polygones que j'appellerai "flagslivers" (tirés d'un langage similaire dans les parcelles appelé "flag lots"). Ces polygones de ruban (voir l'image ci-dessous) sont généralement composés d'un seul nœud supplémentaire que l'utilisateur a accidentellement ajouté.

Dans les images ci-dessous, le "drapeau" et le "mât de drapeau" sont une seule pièce où le "mât de drapeau" se chevauche. L'image de gauche a un total de 5 nœuds.

Lorsqu'elles sont vues seules, les erreurs sont très évidentes, mais lorsque plusieurs polygones sont adjacents, ils sont presque impossibles à voir car ils semblent être la limite entre 2 polygones.

Cela se produit probablement parce qu'ils utilisent un éditeur basé sur un fichier de formes, et donc je ne peux pas implémenter de règles d'édition basées sur la topologie pour empêcher que cela ne se reproduise à l'avenir.

Quelqu'un a-t-il un moyen d'identifier et de résoudre ces types d'erreurs ? Je préférerais une méthode automatisée d'identification et de résolution puisque les utilisateurs sur le terrain sont ceux qui ont créé les erreurs, mais je suis coincé à nettoyer après elles. Merci.


si vous avez accès aux outils Safe Fme, vous trouverez utile le transformateur appelé spikeRemover, jetez-y un coup d'œil. Vous pouvez essayer une version limitée téléchargeable de SAFE FME ou vérifier votre licence ArcGis pour "FME Extension for ArcGIS"

http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm

http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf


Je ne sais pas où votre problème se produit, ou où vous avez la possibilité de l'éviter/le résoudre. Mais j'ai beaucoup vu cela dans notre base de données SDE bien que les géométries dans SDE devraient toujours être correctes. Dans notre cas, c'est parce que nous avons importé des fichiers de formes à l'aide d'ArcObjects dans le SDE. Lorsque les géométries ont été stockées, elles se sont accrochées à la grille du SDE et ont ainsi créé des géométries incorrectes avec les éclats que vous décrivez lorsque la géométrie avait une pointe fine. Ceci parce que les fichiers de formes ont une double précision complète pour les coordonnées et le SDE une grille plus grossière.

Notre solution était de corriger les géométries lorsqu'elles étaient importées par :
1. Définissez la référence spatiale de la géométrie du fichier de formes sur la référence spatiale de la classe d'entités SDE correspondante
2. Alignez la géométrie sur la référence spatiale (IGeometry.SnapToSpatialReference())
3. Définissez ITopologicalOperator2.IsKnownSimple=false (important, sinon simplifier ne fait rien)
4. Effectuez une opération simplifiée. Pour les polygones, nous avons utilisé IPolygon.SimplifyPreserveFromTo()


Avec arcmap 9.3.1, j'ajouterais un champ appelé Flag (ou peut-être FlagFlag ?) et utiliserais le code VBA dans le calculateur de champ pour calculer ce champ.

Le code VBA assombrirait une variable en tant que ITopologicalOperator3 et la définirait sur le champ Shape.

Il appellerait ensuite la méthode IsSimpleEx pas si simple.

Définissez la valeur du champ Flag sur esriNonSimpleEnum. Vraisemblablement, l'erreur qui vous concerne reviendraitesriNonSimpleSelfIntersections.

Avec 10.0, il peut y avoir un moyen de le faire avec python dans la calculatrice (?)… Je ne suis pas sûr. J'utiliserais une commande complémentaire. IMO Esri devrait prendre en charge le c# dans le calculateur de terrain. Après tout, le compilateur c# est installé dans le cadre du framework .NET.

Mettre à jour

Le code que j'ai posté ici peut trouver des mâts de drapeau si vous appliquez une expression de définition"Left_OID" = "Right_OID"à la couche d'entités polyligne résultante.


Ce Script Python est un outil pratique

Élimine les polygones de ruban des fichiers de formes

"EliminateSlivers.py parcourt toutes les entités d'un fichier de formes de polygones et supprime celles du fichier de formes de sortie qui tombent en dessous d'un seuil de zone donné.

Les opérations de géotraitement et les tolérances d'agrégats pourraient entraîner l'accumulation de minuscules polygones de ruban supplémentaires. Ceux-ci peuvent être dénués de sens et pourraient fausser la fiabilité des données spatiales. »

Remarque : vous devrez tester avec différentes tolérances avec vos données (faites d'abord une copie de vos données)

http://arcscripts.esri.com/details.asp?dbid=14672


Ryan,

J'ai travaillé avec le bureau de l'étude des sols et j'ai vérifié périodiquement leurs polygones de sol. Ce que je fais est vérifié pour les éclats. J'envoyais la classe d'entités à la couverture, puis je les construisais pour étiqueter afin d'identifier les erreurs. Si vous voyez 2 étiquettes dans un polygone, c'est une erreur. S'il s'agit d'une étiquette par polygone, vous savez qu'elle est correcte. Je créerais une classe d'entités comme point pour marquer une erreur. Ou vous pouvez sélectionner une ou plusieurs étiquettes dans une nouvelle classe d'entités. De cette façon, vous pouvez revenir et corriger l'erreur. Cela fonctionne très bien pour moi avec les polygones de sol. Je l'utilise pour informer les pédologues afin de résoudre le problème.

C'est juste mon moyen d'identifier le problème. Juste partager ça avec vous.


Si l'identification n'est pas un point majeur et que le correctif automatisé n'est qu'un essai, essayez ceci. Ajoutez les données à un nouveau document cartographique vierge, puis ;

  • Créer une topologie de carte
  • sélectionner toutes les fonctionnalités
  • utiliser les fonctions de construction pour diviser les fonctions existantes

J'ai testé cela et cela semble fonctionner mais je ne sais pas si j'ai exactement répliqué votre source de données

Amusez-vous bien, CDB


Voilà, il y a plusieurs façons de résoudre ce problème et, à mon avis, la plus élégante consiste à utiliser une extension appelée GIS Data Reviewer. Le réviseur de données SIG vous permet de créer des vérifications personnalisées et simplifiées de la précision spatiale et des attributs en plus de la topologie de base. Dans la topologie, il y a des choses qui ne sont pas disponibles qui font partie des vérifications standard pour Data Reviewer comme

  • Fermeture 3D
  • Trou invalide
  • Expression SQL
  • Aire inférieure à la référence spatiale
  • Fonctionnalité sur fonctionnalité
  • et beaucoup plus

Je l'utiliserais pour interroger vos données. Une autre façon de procéder consiste à créer une nouvelle classe d'entités basée sur votre classe d'entités surfaciques existante. puis créez une nouvelle classe d'entités Polygon et remplissez-la avec les lignes à l'aide de l'outil de construction d'entités dans la barre d'outils Topologie. Cela signifierait alors que les éclats devraient alors s'afficher comme tels et que tout autre outil de topologie devrait détecter l'erreur. Ensuite, il s'agit de sélectionner, supprimer et remplacer les entités dans la classe d'entités existante.

J'espère que cela vous aidera, CDB


Voir la vidéo: Les polygones et les non-polygones P2 (Octobre 2021).