¿Generalizando el archivo poligonal manteniendo la topología en QGIS?

35

Tengo un archivo de formas poligonales, que necesito generalizar. ¿Cómo puedo generalizar los polígonos y asegurarme de que no haya errores topológicos como "astillas"?

Ya probé:

  1. Vector -> Herramientas de geometría -> polígonos a líneas
  2. Vector -> Herramientas de geometría -> simplificar geometrías ... aquí ya puedo ver en la pantalla, que estoy produciendo superposiciones y huecos, pero ahora lo intento
  3. Vector -> Herramientas de geometría -> líneas a polígonos

y aquí el programa muestra un error y falla

ingrese la descripción de la imagen aquí

Kurt
fuente
¿Hay alguna noticia sobre este tema?
Oystein
desafortunadamente: no
Kurt

Respuestas:

16

GRASS es consciente de la topología. Puede usar v.generalize de la caja de herramientas Procesamiento para simplificar polígonos y si los datos de entrada son topológicamente correctos, también lo hará la salida.

ingrese la descripción de la imagen aquí

bajo oscuro
fuente
usando el instalador de Windows obtengo un error (falta dependencia), cuando intento ejecutar v.generalize. ¿Necesitas una configue especial?
Kurt
@ Kurt: ¿El instalador independiente? No estoy seguro de qué versión de GRASS incluye. En la configuración de Procesamiento puede especificar si GRASS 6.xo 7.xy dónde está instalado. Intente ajustar estas configuraciones a su configuración.
oscuro
Sí, uso el instalador independiente. Siguiendo su consejo, desactivé grass 7 a través de las opciones de procesamiento y configuré la ruta para qrass 6 correctamente. este camino no era correcto, un remanente de un qgis anterior. Ahora puedo ejecutar v.generalize, pero al final obtengo un nuevo error: la capa de salida no se pudo abrir y finalmente el mensaje dice que grass parece estar correctamente instalado y configurado. ¿Me podría dar alguna sugerencia o sugerencia?
Kurt
Por lo general, este error significa que el geoprocesamiento falló en algún momento. Debe examinar el registro que se genera mientras se ejecutan las herramientas para ver dónde ocurre el error.
oscuro
7

Esto puede verse como un preliminar a la respuesta de @ Underdark por la cual puede limpiar la topología de la capa vectorial antes de generalizar. GRASS tiene una función v.clean que contiene una serie de herramientas para reparar la capa, tales como:

  • ajustar qué líneas 'encaja' al vértice más cercano
  • rmdangle que elimina cualquier molesto cuelga
  • rmdupl que elimina las características de geometría duplicada

y varios otros que se muestran en la imagen a continuación:

v.limpiar

También puede establecer el umbral dependiendo de qué tan sensible desea que se ejecuten las herramientas. Personalmente, tiendo a usar la función Verificar validez de geometría en QGIS ( Vector > Herramientas de geometría > Verificar validez de geometría ) para verificar cualquier error y, si existe, usar la herramienta adecuada en v.clean . Una vez que se eliminan los errores, debería estar en una mejor posición para generalizar.

¡Espero que esto ayude!

Joseph
fuente
3
Y si una simple reducción de vértices es suficiente, v.generalize no es necesario, ya que la herramienta de poda puede hacerlo.
Gabor Farkas
gracias por su preliminar a la respuesta de @ Underdark, que contiene información valiosa. aunque no lo dije explícitamente, por supuesto, el archivo poligonal, que quería generalizar, está topológicamente limpio [porque; basura - basura :-)]
Kurt
@Kurt, eso tiene sentido :)
Joseph
2

¿Has intentado usar MapShaper ? He encontrado que esta es una buena forma de generalizar polígonos; También hay una versión sin conexión si desea descargar el código.

Una alternativa podría ser convertir esto a GeoJson y luego a TopoJson, que admite la "simplificación de la forma de preservación de la topología" https://github.com/mbostock/topojson

djq
fuente
He probado Mapshaper, es realmente una gran herramienta
Kurt
1
Un comentario más: como dice el título: Estoy buscando una solución con qgis. Mapshaper, en mi opinión, no conserva la topología (¡Pruébelo usted mismo haciendo una generalización muy fuerte!). Topojson: este es un montón de código fuente javascript, que en mi opinión solo es útil para programadores
Kurt
Uy, se perdió el único aspecto de QGIS. Sin embargo, QGIS maneja geojson; Me pregunto si no tendría sentido de trabajo en la funcionalidad topojson simplificación en un plugin de QGIS para que sea accesible a los no programadores
DJQ
Continúo la línea fuera del tema: OpenJUMP tiene una herramienta "Simplificar la cobertura de polígonos" para este propósito.
user30184
0

Acabo de hacer una prueba rápida y la herramienta "Simplificar geometrías" en el menú Vector parece respetar la topología. Intenté con y sin la opción "Activar edición topológica" marcada en Opciones de ajuste. ¿Has probado esto?

EDITAR: Esto se hizo directamente en el archivo de polígono, ¿por qué primero convertirías a líneas?

Darren Cope
fuente
Hola Darren, gracias por la pista, lo intentaré con la edición topológica enablr
Kurt
1
Hola Darren, en mi humilde opinión, no respeta la topología. no hay diferencia con "habilitar la edición topológica". Supongo que esto se debe a que la generación general genera una nueva capa, mientras que "habilitar la edición topológica" parece funcionar solo con capas existentes seleccionadas. ¿Podría hacer una gerneralización muy muy fuerte y verificar nuevamente, si tiene una topología correcta ahora? gracias
Kurt
1
Kurt Interesante. ¡Parece que tienes razón cuando haces una fuerte generalización! ¡Lo siento!
Darren Cope
1
Esta casilla de verificación desaparece en QGIS 2.2 (quizás antes) en caso de que alguien busque
lynxlynxlynx
0

No es la misma discusión aquí , mi respuesta final es que SAGA hace el trabajo para usted.

Niculita Mihai
fuente
Después de su respuesta en esa discusión, parece que SAGA no conserva la topología. Al menos ya no.
Oystein