Warunki w kalkulatorze polowym

9

Chcę sprawdzić plik wektorowy, jeśli jest kolumna „Źródło”.

Jeśli tak, nic nie można zrobić. Jeśli nie ma kolumny „Źródło”, należy ją utworzyć i wypełnić „0”.

Czy można to zrobić za pomocą modelera?

Pimpel
źródło

Odpowiedzi:

10
  1. Utwórz nowy skrypt z:

    Processing Toolbox > Scripts > Tools > Create new script
    
  2. Użyj czegoś takiego:

    ##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. Zapisz skrypt w swoim C:/Users/You/.qgis2/processing/scripts/katalogu. Powinieneś być w stanie wywołać ten skrypt w swoim modelarzu.

Joseph
źródło
1
@Pimpel - Bardzo mile widziane, cieszę się, że pomogło =)
Joseph