Eu tenho uma camada vetorial de polígono representando a área inundada em uma inundação. A camada foi produzida de tal maneira que algumas áreas são compostas por vários polígonos menores que tocam (veja a captura de tela abaixo, denominada "dados originais").
Eu gostaria de dissolver os polígonos onde eles tocam. Se eu usar a ferramenta de geoprocessamento dissolve no fTools do QGIS, que usa a biblioteca GEOS, obtive alguns resultados inesperados (consulte "dissolver com o QGIS fTools"). Parece que o GEOS não usa um limite para determinar se os polígonos estão tocando, conforme mencionado nestes problemas:
http://trac.osgeo.org/qgis/ticket/3126
http://trac.osgeo.org/qgis/ticket/3184
http://hub.qgis.org/issues/2806
A mesma abordagem no ArcGIS fornece o resultado esperado (consulte "dissolver com o ArcGIS 10.1").
Aparentemente, esse é um "recurso" do GEOS, e não um bug. Existe alguma maneira de corrigir os dados que eu tenho para produzir o resultado esperado? Uma pequena perda de precisão (alguns cm?) Pode ser aceitável para mim. Idealmente, a solução seria algo que eu poderia escrever em um plug-in QGIS, como uma etapa de pré-processamento.
Pergunta relacionada (sem respostas): Como definir o valor de tolerância da ferramenta de Geoprocessamento no QGIS?
Link para dados de amostra como um shapefile: https://www.dropbox.com/s/c8ns7wwfv289ad0/sample.zip