Tengo una capa de vector poligonal que representa el área inundada en una inundación. La capa ha sido producida de tal manera que algunas de las áreas están compuestas de múltiples polígonos conmovedores más pequeños (vea la captura de pantalla a continuación, etiquetada como "datos originales").
Me gustaría disolver los polígonos donde se tocan. Si uso la herramienta de geoprocesamiento disolver en fTools de QGIS, que usa la biblioteca GEOS, obtengo algunos resultados inesperados (consulte "disolver con fTools QGIS"). Parece que GEOS no usa un umbral para determinar si los polígonos se tocan, como se menciona en estos temas:
http://trac.osgeo.org/qgis/ticket/3126
http://trac.osgeo.org/qgis/ticket/3184
http://hub.qgis.org/issues/2806
El mismo enfoque en ArcGIS da el resultado esperado (ver "disolver con ArcGIS 10.1").
Aparentemente, esta es una "característica" de GEOS, en lugar de un error. ¿Hay alguna forma de arreglar los datos que tengo para producir el resultado esperado? Una pequeña pérdida de precisión (¿unos pocos cm?) Podría ser aceptable para mí. Idealmente, la solución sería algo que pudiera escribir en un complemento QGIS, como un paso de preprocesamiento.
Pregunta relacionada (sin respuestas): ¿Cómo establecer el valor de tolerancia de la herramienta de geoprocesamiento en QGIS?
Enlace a datos de muestra como un archivo de forma: https://www.dropbox.com/s/c8ns7wwfv289ad0/sample.zip
Respuestas:
En este caso, parece que necesita ayudar a la herramienta de disolución al arreglar primero la topología. Así es como puedes hacer esto en GRASS.
Cuando carga el archivo de forma, así es como GRASS lo ve:
Cada cruz marca un área. Puede ver que hay algunas cruces en las líneas de límite: estos son los polígonos de astilla causados por el ligero desplazamiento entre las líneas de límite.
Elimine los polígonos de astilla formados por los espacios entre los polígonos reales:
Ajusta las líneas de límite:
Rompe las líneas de límite en las nuevas intersecciones:
Elimine las líneas de límite ahora duplicadas:
Disuelve los polígonos.
Et voilà:
fuente
Use el comando GRASS GIS v.dissolve (en el complemento Sextante -> Comandos GRASS -> Vector)
Si reproduzco rápidamente tu ejemplo:
El resultado con v.dissolve:
Explicación
El problema es fácil de entender. Un archivo de forma no tiene topología, si dos áreas comparten un borde común, ese borde se digitalizaría dos veces y también se almacenaría por duplicado.
Usted ve esto claramente cuando intenta editar el archivo de forma:
GRASS GIS (como ArcGIS) es un GIS topológico. Cuando importa el archivo de forma en GRASS, la capa resultante tiene una topología: el borde común entre dos áreas existe una vez y se comparte.
Por esta razón, cuando desee disolver un archivo de forma ( disolver dos límites ) puede encontrar problemas (en QGIS, GvSIG, OpenJUMP o el antiguo ArcView 3.x), consulte ArcUserI: Descripción de la topología y los archivos de forma .
En GRASS, v.dissolve está diseñado para disolver límites comunes entre áreas con el mismo número de categoría.
fuente
v.dissolve
tiene un parámetro de tolerancia, que aborda el problema del OP.v.dissolve
parece funcionar, excepto que "llena" el pequeño cuadrado en el medio de las características. i.stack.imgur.com/AA59l.png