8 votos

¿Polígono de tampón hasta que golpea el vecino usando PyQGIS?

Tengo un shapefile compone de un número de polígonos. Los vecinos de polígonos a menudo comparten un atributo.

Lo que necesito hacer es búfer de estos polígonos se basa en el atributo común. Sin embargo, me gustaría ampliar dijo buffers hasta que se cumplan, punto en el cual se puede detener.

Tengo un precipitado armar la maqueta:

poorlyDrawExample

Todo lo que tengo de código sabia es la siguiente:

from qgis.core import *
from qgis.analysis import *

layer=qgis.utils.iface.activeLayer() 

QgsGeometryAnalyzer().dissolve(layer, "D:/test_dissolved.shp", onlySelectedFeatures=False, uniqueIdField=3, p=None)

La verdad yo no soy muy versado en el QGIS documentación de la API y a pesar de mis mejores esfuerzos, no puedo encontrar un método adecuado para ello. QgsGeometryAnalyzer().dissolve me permite disolver el buffer pero eso no es lo que busco.

Tal vez debería estar mirando en otra dirección aquí?

5voto

CoderP Puntos 11

Algo que podría intentar es un proceso de thiessen donde usted voronoi los polígonos disuelven por atributos similares. No sé lo que esto sería en python pero tal vez los pasos son útiles para usted.

2voto

bugmenot123 Puntos 770

Usted probablemente querrá explorar trama de funciones de análisis. Ver la Creación de la línea central de cada polígono en el cañón submarino de la base de datos a través de ArcGIS for Desktop Basic? y la Creación de Thiessen (Voronoi) polígonos utilizando las líneas (en lugar de puntos) como las características de entrada? para más inspiración.

Esto requiere el uso de una adecuada resolución de la trama de curso.

1voto

mathieu Puntos 53

Yo tenía un poco relacionada con la tarea, el otro día. En theorie, polígonos de voronoi con (ponderado) de la construcción de centrepoints que debería ser la solución para su caso, pero no funciona para mí; PostgreSQL no es lo que usted pidió, pero, como una solución, si es el 'eje' entre cada edificio que está después del primer paso, el uso de PostGIS ST_ApproximateMedialAxis podría ser vale la pena intentarlo. Tendrías que crear una base de polígonos para toda el área de estudio y cortar la construcción de polígonos antes de aplicar la función en el polígono de la base para obtener resultados relacionados. Podría funcionar, puede que 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