39 votos

¿Generalizar el archivo de polígonos manteniendo la topología en QGIS?

Tengo un Shapefile de polígonos que necesito generalizar. Cómo puedo generalizar los polígonos y asegurarme de que no haya errores topológicos como "astillas".

Ya lo he intentado:

  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 sin embargo ahora intento
  3. Vector -> Herramientas de geometría -> líneas a polgones

y aquí el programa muestra un error y se bloquea

enter image description here

0 votos

¿Hay noticias sobre este tema?

0 votos

Desafortunadamente: no

18voto

tobes Puntos 19

GRASS es consciente de la topología. Puede utilizar v.generalizar de la caja de herramientas de Processing para simplificar los polígonos y si los datos de entrada son topológicamente correctos también lo será el resultado.

enter image description here

0 votos

Utilizando el instalador de Windows, obtengo un error (falta una dependencia) cuando intento ejecutar v.generalize. ¿Necesito una configuración especial?

0 votos

@Kurt: ¿El instalador independiente? No estoy seguro de qué versión de GRASS incluye. En la configuración de Processing puedes especificar si GRASS 6.x o 7.x y dónde se instala. Intenta ajustar estas configuraciones a tu configuración.

0 votos

Sí, uso el instalador de stanalone . Siguiendo tus consejos, he desactivado grass 7 a través de las opciones de procesamiento y he configurado correctamente la ruta de qrass 6. Esta ruta no era correcta, un resto de un qgis más antiguo. Ahora puedo ejecutar v.generalize, pero al final me sale un nuevo error: Output layer could not be opened y finalmente el mensaje dice que grass parece estar correctamente instalado y configurado. ¿podrían darme alguna sugerencia o pista?

8voto

Mue Puntos 2469

Esto puede ser visto como un preliminar a la respuesta de @Underdark por el cual se puede limpiar la topología de la capa vectorial antes de generalizando. GRASS tiene un v.limpiar que contiene una serie de herramientas para reparar la capa como:

  • snap que "encaja" las líneas en el vértice más cercano
  • rmdangle que elimina los molestos colgantes
  • rmdupl que elimina las características geométricas duplicadas

y varios otros que se muestran en la imagen siguiente:

v.clean

También puedes ajustar el umbral en función de la sensibilidad con la que quieras que funcionen las herramientas. Personalmente, tiendo a usar el Comprobar la validez de la geometría en QGIS ( Vector > Herramientas de geometría > Comprobar la validez de la geometría ) para comprobar si hay errores y, si los hay, utilizar la herramienta adecuada en v.limpiar . Una vez eliminados los errores, debería estar en mejores condiciones de generalizar.

Espero que esto ayude.

3 votos

Y si una simple reducción de vértices es suficiente, v.generalize no es necesario, ya que la herramienta prune puede hacerlo.

0 votos

Gracias por tu respuesta preliminar a la de @Underdark, que contiene valiosa información. aunque no lo dije explícitamente, por supuesto que el archivo-polígono, que quería generalizar, es topológicamente limpio [porque; basura - basura fuera :-)].

0 votos

@Kurt, eso tiene sentido :)

2voto

djq Puntos 7670

¿Has probado a utilizar MapShaper ? He descubierto que es una buena forma de generalizar los polígonos; también hay una versión offline si quieres descargar el código.

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

0 votos

He probado Mapshaper, es realmente una gran herramienta

1 votos

Un comentario más: Como dice el título: Estoy buscando una solución con qgis. Mapshaper imho no preserva la topología ( ¡Pruébalo tú mismo haciendo una generalización muy fuerte!). Topojson: esto es un montón de código fuente de javascript, que es, en mi opinión, sólo es útil para los programadores

0 votos

Oops, me perdí el aspecto de QGIS solamente. QGIS maneja geojson sin embargo, me pregunto si tendría sentido para trabajar en la funcionalidad de simplificación topojson en un plugin de QGIS para que sea accesible a los no programadores

0voto

Hugo Puntos 2156

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

EDIT: Esto se hizo directamente en el archivo de polígonos - ¿por qué convertir a líneas primero?

0 votos

Hola Darren, gracias por la pista, lo intentaré con la edición topológica enablr

1 votos

Hola Darren, imho no respeta la topología. no hay ninguna diferencia con "habilitar la edición topológica". Supongo que esto se debe a que la generalización genera un nuevo mientras que "habilitar la edición topológica" parece funcionar sólo con las capas existentes -seleccionadas-. ¿Podría hacer una gerneralización muy fuerte y comprobar de nuevo, si usted tiene una topología correcta ahora? gracias

1 votos

Kurt; Interesante. ¡Parece que tienes razón cuando haces una fuerte generalización! ¡Perdón!

-1voto

Niculita Mihai Puntos 582

Existe la misma discusión aquí Mi respuesta final es que SAGA hace el trabajo por ti.

0 votos

Siguiendo tu respuesta en esa discusión, parece que SAGA no preserva la topología. Al menos ya no.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X