Condizioni nel calcolatore di campo del modellatore


9

Voglio controllare un file vettoriale se c'è una colonna "Origine".

Se sì, niente da fare. Se non è presente alcuna colonna "Origine", è necessario crearla e riempirla con "0".

È possibile farlo tramite il modellatore?

Risposte:


10
  1. Crea un nuovo script da:

    Processing Toolbox > Scripts > Tools > Create new script
    
  2. Usa qualcosa di simile al seguente:

    ##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. Salva lo script nella tua C:/Users/You/.qgis2/processing/scripts/directory. Quindi dovresti essere in grado di chiamare questo script nel tuo modellatore.


1
@Pimpel - Molto gradito, felice che abbia aiutato =)
Joseph
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.