miércoles, 15 de febrero de 2017

Utilizando saga:linepolygonintersection en PyQGIS

Siguiendo con los métodos de Processing, hoy se va a considerar 'linepolygonintersection'. Este produce, a diferencia del anterior, un vectorial de línea. No obstante, se va a cambiar la forma de visualizar la capa automatizando la carga al Map Canvas. Para ello, se utiliza el paso generado alaeatoriamente cuando se usa como parámetro None en la opción correspondiente.



Con la ayuda del plugin visualizamos todas las opciones de 'intersection' para corroborar que allí está 'saga:linepolygonintersection':


y luego averiguamos cuales son los parámetros a usar en el comando respectivo:


Para esta situación:


se empleó el código siguiente:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import processing
 
registry = QgsMapLayerRegistry.instance()

polygon4 = registry.mapLayersByName('polygon4')
line_new = registry.mapLayersByName('line_new')
 
path = processing.runalg('saga:linepolygonintersection', line_new[0], polygon4[0], 0, None)

layer = QgsVectorLayer(path['INTERSECT'],
                           'intersection',
                           'ogr')

registry.addMapLayer(layer)

que ejecutado en la Python Console de QGIS permite visualizar automáticamente el vectorial rojo de la imagen a continuación:


El vectorial visualizado de esta manera debe ser grabado en otro directorio del disco porque está en uno temporal (desaparecerá de allí al apagar el equipo ), es decir, se comporta casi como una memory layer.

No hay comentarios: