jueves, 30 de noviembre de 2017

Usando Processing qgis:intersection en QGIS 2.99 (Windows)

Siguiendo con las pruebas en QGIS 2.99 con Windows hoy le toca el turno a Processing qgis:intersection. Escogí esta herramienta porque tenía unos parámetros (INPUT_FIELDS y OVERLAY_FIELDS) novedosos para mi que imaginé se pasaban como lista y así fue.

El conjunto completo de parámetros a usar es el siguiente:

INPUT:  <QgsProcessingParameterFeatureSource>
 Input layer

OVERLAY:  <QgsProcessingParameterFeatureSource>
 Intersection layer

INPUT_FIELDS:  <QgsProcessingParameterField>
 Input fields to keep (leave empty to keep all fields)

OVERLAY_FIELDS:  <QgsProcessingParameterField>
 Intersect fields to keep (leave empty to keep all fields)

OUTPUT:  <QgsProcessingParameterFeatureSink>
 Intersection

Con base en lo anterior se elaboró el código siguiente:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import processing

registry = QgsProject.instance()

Polygon8 = registry.mapLayersByName('Polygon8')
Polygon4 = registry.mapLayersByName('Polygon4')

output = 'c:/Users/usuario/pyqgis_data/intersection_p8_p4.shp'

processing.run('qgis:intersection', 
               {'INPUT':Polygon8[0], 
                'INPUT_FIELDS': ['FID', 'min', 'max'],
                'OVERLAY':Polygon4[0], 
                'OUTPUT':output})

intersection = QgsVectorLayer(output,
                              'intersection_p8_p4',
                              'ogr')

QgsProject.instance().addMapLayer(intersection)

cuya ejecución en la Python Console de QGIS 2.99 produjo el efecto deseado (la intersección corresponde a los dos features color verde oscuro); tal como se aprecia en la imagen a continuación:


En la imagen anterior se observa en la tabla de atributos los tres campos seleccionados de Polygon8 y el único disponible en Polygon4. Cuando no se seleccionan los 'OVERLAY_FIELDS', por defecto, se incorporan todos los disponibles en la capa de intersección.

No hay comentarios: