Condiciones en la calculadora de campo de modelador


9

Quiero verificar un archivo vectorial si hay una columna "Fuente".

Si es así, nada que hacer. Si no hay una columna "Fuente", debe crearse y rellenarse con '0'.

¿Es esto posible hacerlo a través del modelador?

Respuestas:


10
  1. Crea un nuevo script desde:

    Processing Toolbox > Scripts > Tools > Create new script
    
  2. Use algo como lo siguiente:

    ##Example=name
    ##Layer=vector
    
    from qgis.core import QgsField
    from PyQt4.QtCore import QVariant
    
    layer = processing.getObject(Layer)
    idx = layer.fieldNameIndex('Source')
    
    if idx != -1:
        pass
    else:
        layer.startEditing()
        layer.dataProvider().addAttributes( [ QgsField("Source", QVariant.Int) ] )
        layer.updateFields()
        for feat in layer.getFeatures():
            layer.changeAttributeValue(feat.id(), layer.fieldNameIndex('Source'), '0')
        layer.commitChanges()
    
  3. Guarde el script en su C:/Users/You/.qgis2/processing/scripts/directorio. Entonces deberías poder llamar a este script en tu modelador.


1
@Pimpel - Muy bienvenido, me alegro de que haya ayudado =)
Joseph
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.