J'ai un fichier de formes contenant des entités avec des géométries en double, mais des attributs différents (par exemple, un polygone avec l'attribut XX et un polygone identique avec l'attribut XY). Je veux identifier les doublons, puis choisir celui avec les bons attributs, en supprimant l'autre.
J'ai essayé des outils de topologie dans OpenJump / Kosmo, mais sans succès. Ils ont un outil de suppression des doublons qui fait ce que je veux, sauf qu'il semble supprimer arbitrairement l'une des fonctionnalités plutôt que de me laisser choisir celle à conserver.
J'ai accès à QGIS, OpenJUMP, Kosmo, etc. et je peux installer d'autres outils open source / gratuits si nécessaire.
Pensées?
la source
C'est ce que j'utilise dans ces cas. Si je comprends bien, vous devrez faire une vérification manuelle pour décider lequel a le bon attribut. Ensuite, je le fais en deux étapes. Je crée d'abord une table ou une vue dans PostGIS avec les polygones dupliqués, puis j'ouvre cette table dans un SIG de bureau avec la couche d'origine où je veux supprimer les doublons. Cela me mènera aux doublons via ma table en double et je peux supprimer dans la table ou le fichier de formes d'origine ou quoi que ce soit.
La requête pour trouver les doublons ressemblera à ceci si vous avez un identifiant unique appelé gid et une colonne de géométrie appelée the_geom:
Il y a quelques variantes sur ST_Equals, mais je pense que ST_Equals est celui que vous voulez. Cela vous donnera un tableau avec les géométries en double et le gid (id) de la première et de la deuxième occasion du polygone. Cependant, vous obtiendrez deux fois la même paire de doublons, mais cela ne devrait pas avoir d'importance car vous voulez simplement qu'ils vous montrent où ils se trouvent.
HTH Nicklas
la source
Si vous utilisez PostGIS 1.5.x, consultez la fonction ST_HausdorffDistance ().
Les géométries en double donneront une valeur de 0. Utilisez-la comme les auto-jointures mentionnées. Assez soigné pour comparer des formes polygonales.
la source
Une façon plus simple de le faire. Calculez la zone dans votre SIG de bureau et triez par zone en ordre croissant ou décroissant. Vous devrez maintenant vérifier chaque ligne pour voir les objets dupliqués dans votre table d'attributs. C'est basé sur une supposition que vous n'avez jamais exactement la même zone pour les objets non dupliqués, même si cela peut parfois être faux.
la source