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?

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.


1
@Pimpel - Sehr willkommen, froh, dass es geholfen hat =)
Joseph
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.