Bedingungen im Modellierfeldrechner

9

Ich möchte eine Vektordatei überprüfen, wenn eine Spalte "Quelle" vorhanden ist.

Wenn ja, nichts zu tun. Wenn keine Spalte "Quelle" vorhanden ist, sollte diese erstellt und mit '0' gefüllt werden.

Ist dies über den Modellierer möglich?

Pimpel
quelle

Antworten:

10
  1. Erstellen Sie ein neues Skript aus:

    Processing Toolbox > Scripts > Tools > Create new script
    
  2. Verwenden Sie etwa Folgendes:

    ##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. Speichern Sie das Skript in Ihrem C:/Users/You/.qgis2/processing/scripts/Verzeichnis. Dann sollten Sie dieses Skript in Ihrem Modellierer aufrufen können.

Joseph
quelle
1
@Pimpel - Sehr willkommen, froh, dass es geholfen hat =)
Joseph