J'ai une couche vectorielle polygonale représentant la zone inondée lors d'une inondation. La couche a été produite de telle manière que certaines des zones sont composées de plusieurs petits polygones se touchant (voir capture d'écran ci-dessous, étiquetés "données originales").
Je voudrais dissoudre les polygones où ils se touchent. Si j'utilise l'outil de géotraitement Dissolve dans les fTools de QGIS, qui utilise la bibliothèque GEOS, j'obtiens des résultats inattendus (voir «Dissolution avec QGIS fTools»). Il semble que GEOS n'utilise pas de seuil pour déterminer si les polygones se touchent, comme mentionné dans ces problèmes:
http://trac.osgeo.org/qgis/ticket/3126
http://trac.osgeo.org/qgis/ticket/3184
http://hub.qgis.org/issues/2806
La même approche dans ArcGIS donne le résultat attendu (voir «Dissoudre avec ArcGIS 10.1»).
Apparemment, c'est une "fonctionnalité" de GEOS, plutôt qu'un bug. Existe-t-il un moyen de corriger les données dont je dispose pour produire le résultat attendu? Une petite perte de précision (quelques cm?) Pourrait être acceptable pour moi. Idéalement, la solution serait quelque chose que je pourrais écrire dans un plugin QGIS, comme une étape de prétraitement.
Question connexe (sans réponse): Comment définir la valeur de tolérance de l'outil de géotraitement dans QGIS?
Lien vers des exemples de données sous forme de fichier de formes: https://www.dropbox.com/s/c8ns7wwfv289ad0/sample.zip