Estoy buscando un método para buffer geometrías pasando una lista de valores de cantidad de buffer en QGIS. Las capas de polígonos resultantes deben tener un sufijo con la cantidad de buffer de alguna manera. Al pasar, por ejemplo, (10,13,15) esperaría el siguiente resultado (dibujado con Inkscape):
Lo que he intentado hasta ahora:
- Ninguna de las herramientas disponibles en QGIS (barra de menús y geoprocesamiento) acepta la entrada de esa lista.
- El complemento 'Multi Ring Buffer' solo calcula buffers equidistantes.
-
El siguiente script funciona hasta ahora, pero
QgsGeometryAnalyser.buffer()
parece carecer de un parámetro para cuántos segmentos aproximar (así que obtengo bonitos 20-hedros al hacer buffering de un punto)radios = [10.0, 13.0, 15.0] for r in radios: shapeout = 'c:\\temp\\point_buf_%s' % r QgsGeometryAnalyser.buffer(iface.mapCanvas.currentLayer(), shapeout, r, False, False, -1)
1 votos
Sin saber cómo está distribuida tu columna de búfer, es un poco complicado, pero echando un vistazo rápido, GRASS podría ser una buena opción. Echa un vistazo a "v.buffer.column". Si utilizas esta herramienta dentro del modelador gráfico de QGIS, podrás automatizar todo el proceso y dar a cada resultado su propio título. Un poco largo, pero podría funcionar.
1 votos
Puedes intentar usar Sextante (ver esta respuesta) en lugar de QgsGeometryAnalyser. Tiene un argumento de "segmento" que podría ser útil.
0 votos
El complemento Multi-distance buffer QGIS permite la especificación de un conjunto de distancias de búfer, por lo que si la entrada manual es una opción, ese complemento debería resolver tu problema.