Tengo un archivo shape formado por varios polígonos. Los polígonos vecinos a menudo comparten un atributo.
Lo que necesito hacer es amortiguar estos polígonos en función del atributo común. Sin embargo, me gustaría expandir dichos búferes hasta que se encuentren, momento en el que pueden detenerse.
Tengo una maqueta a toda prisa:
Todo lo que tengo en cuanto al código es lo 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)
A decir verdad, no conozco muy bien la documentación de QGIS API y, a pesar de mis mejores esfuerzos, no puedo encontrar un método adecuado para esto.
QgsGeometryAnalyzer().dissolve
me permite disolver el búfer, pero eso no es lo que busco.
¿Debería estar mirando en otra dirección aquí?
Probablemente desee explorar las funciones de análisis de ráster. Consulte ¿Cómo crear una línea central para cada polígono en la base de datos de cañones submarinos utilizando ArcGIS for Desktop Basic? y ¿ Crear polígonos de Thiessen (Voronoi) usando líneas (en lugar de puntos) como características de entrada? para mayor inspiración
Esto requiere que utilice una resolución de trama adecuada, por supuesto.
fuente
Tuve una tarea ligeramente relacionada el otro día. En teoría, los polígonos voronoi con puntos centrales de construcción (ponderados) deberían ser la solución para su caso, pero no funcionó para mí; PostgreSQL no es lo que solicitó, pero, como solución alternativa, si se trata de la 'línea central' entre cada edificio que está buscando para el primer paso, vale la pena probar PostGIS ST_ApproximateMedialAxis . Tendría que crear un polígono base para toda el área de estudio y recortar los polígonos de construcción antes de aplicar la función en el polígono base para obtener resultados relacionados. Podría funcionar, podría no ...
fuente