Utiliser Éliminer (licence ArcInfo requise)
Élimine les polygones en les fusionnant avec des polygones voisins possédant la plus grande surface ou la plus longue bordure partagée. Eliminer est souvent utilisé pour supprimer les petits polygones de ruban résultant d’opérations de superposition, telles que Intersection ou Union.
http://help.arcgis.com/fr/arcgisdesktop/10.0/help/index.html#//00170000005p000000.htm
Utilisateurs d'ArcGIS 10 Remarque: il existe une NOUVELLE fonctionnalité dans les options de cet outil.
Il est maintenant possible de conserver le POLYGONE ou POLYLINE d'origine avec l'option> ex_features (Facultatif) Polyligne ou classe d'entités polygonales en entrée ou couche définissant des limites de polygone, ou des parties de celles-ci, à ne pas supprimer.
Pour effectuer cette opération manuellement dans QGIS, accédez à
Settings|Project Properties...
l'General
onglet Sur l' onglet en bas,Snapping options...
vérifiez le calque que vous souhaitez accrocher, définissez le mode surto vertex
et définissez la tolérance sur une valeur inférieure à la distance la plus courte entre deux points. Si vous n'êtes pas sûr, définissez les unitéspixels
et la tolérance sur quelque chose comme 5, de sorte que s'il y a des détails difficiles, vous pouvez effectuer un zoom avant et vous assurer que vous n'accrochez pas au mauvais sommet.Editez ensuite votre couche vectorielle, sélectionnez l'outil Nœud et déplacez les points errants vers leurs homologues.
Le faire automatiquement est un peu plus compliqué. Autant que je sache, AFAIK QGIS ne dispose pas de plug-in pour l’automatiser. Bien que PostGIS soit basé sur GEOS, qui dispose de fonctions de capture, il n’est pas exposé à PostGIS. Il serait peut-être possible d'écrire une requête pour vérifier chaque point d'un polygone à la recherche de voisins à l'intérieur de la distance de capture, mais cela me dépasse actuellement.
GRASS contient v.clean.snap auquel vous pouvez accéder via QGIS, mais il existe l'étape supplémentaire de créer un jeu de données GRASS.
la source
Si vous connaissez QGIS: Dans le tronc 1.9 de QGIS (peut être installé en tant que qgis.dev via le programme d’installation OSGEO, voir page d’accueil de qgis) est une nouvelle fonction du menu vectoriel intitulée "Éliminer les polygones de ruban", qui fait exactement ce que vous voulez. vouloir. Vous pouvez sélectionner les polygones problématiques et les fusionner avec des polygones adjacents en fonction d'une limite ou d'une proposition de zone. Essaye le!
la source
Si vous êtes un utilisateur de QGIS, vous bénéficiez de toute la puissance de GRASS, car il s’agit d’un SIG entièrement topologique. Dans QGIS, activez le plug-in GRASS, créez un emplacement / un jeu de cartes où importer vos données.
Ouvrez le mapset et importez votre couche sale avec v.in.ogr: jouez avec les deux paramètres avancés "seuil de capture pour les limites" et "taille minimale de la zone à importer".
Vous pouvez également utiliser les options fournies par le module v.clean.
la source
ArcGIS a des règles de topologie qui vous aideront à identifier et à corriger les lacunes dans vos données, telles que ce à quoi vous faites référence. Pour créer des règles de topologie, vous aurez besoin d'une licence ArcEditor ou ArcInfo et stockerez votre classe d'entités dans un jeu de données d'entité dans une géodatabase personnelle ou un fichier.
Vous voudrez probablement implémenter la règle " Doit ne pas avoir de lacunes ". Une fois que vous avez créé la base de règles avec toutes les règles que vous jugez nécessaires, vous souhaitez valider la topologie qui identifiera toutes les erreurs dans vos données.
Ensuite, à l'aide de l' inspecteur d'erreurs et de l' outil Corriger les erreurs de topologie , vous pouvez sélectionner individuellement ou en bloc les erreurs à corriger et la manière de les corriger (par exemple, créer de nouveaux polygones pour combler les vides ou fusionner avec des polygones plus grands à proximité). .
la source
Il existe une fonction "Éliminer les polygones de ruban" dans QGIS 2.12 (Lyon) Toolbox. Je suis sûr que c'est aussi dans une version antérieure.
la source
Eh bien, j'ai utilisé une fonction PostGIS (que j'utilise directement sur mon QGIS) qui exécute une capture récursive pour résoudre ce problème. Les résultats sont assez bons, il faut juste un bon joice de valeurs de tolérance pour obtenir les meilleurs résultats. Si vous êtes prêt à essayer, vérifiez-le (dans mon cas, les géométries sont toutes multi, d'où le st_multi dans mon execute):
la source
Pas une solution parfaite, mais une de ces deux choses fonctionne pour moi dans la plupart des cas:
Dans QGIS, enregistrez la couche au format GEOJSON. Mais avant d'enregistrer, dans la boîte de dialogue "Enregistrer la couche sous", définissez la précision des coordonnées sur 3 (la valeur par défaut est 15). Cela aura pour effet d'unir les sommets très proches les uns des autres.
Allez sur Mapshaper , téléchargez le fichier et cliquez sur "simplifier". Dans le coin supérieur gauche, il vous indiquera le nombre d'intersections de lignes trouvées et vous permettra de les corriger. Je trouve que ce correctif fonctionne environ la moitié du temps.
la source
Je ne l’ai pas utilisé, mais ET Geowizards , qui apporte de nombreux outils de traitement d’ArcEditor et ArcInfo à la licence de niveau ArcView (également appelé ArcGIS Standard), comporte un assistant d’élimination qui "élimine les polygones indésirables en les fusionnant dans les polygones voisins. en les supprimant " . La boîte à outils de l’assistant vous coûtera 250 USD ( liste de prix ).
la source
J'ai rencontré le même problème qui, en explorant les outils, m’a permis de régler très facilement, bien que je ne connaisse pas la logique. ! [Dans les outils, accédez à la boîte à outils Gestion des données, accédez à la classe d'objets et exécutez le script d'intégration par un double clic] [1]
dans la fenêtre Script, sélectionnez la classe d'objets posant problème et dans la tolérance XY, ajoutez la valeur de la distance en mesurant la distance à l'aide de l'outil de mesure en plusieurs points et obtenez une valeur moyenne, mettez cette valeur dans l'environnement de tolérance et appliquez le problème à résoudre. pas maintenant comment mais résolu avec une précision d'environ 90%. ! [entrez la description de l'image ici] [2]
J'ai essayé toutes les autres méthodes décrites dans les réponses ci-dessus, mais il était difficile et fastidieux d'obtenir des corrections automatisées pour les espaces entre les polygones adjacents.
la source