Kondisi dalam kalkulator bidang pemodel

9

Saya ingin memeriksa file vektor jika ada kolom "Sumber".

Jika ya, tidak ada hubungannya. Jika tidak ada kolom "Sumber" itu harus dibuat dan diisi dengan '0'.

Apakah ini dapat dilakukan melalui pemodel?

Jerawat
sumber

Jawaban:

10
  1. Buat skrip baru dari:

    Processing Toolbox > Scripts > Tools > Create new script
    
  2. Gunakan sesuatu seperti berikut ini:

    ##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. Simpan skrip di C:/Users/You/.qgis2/processing/scripts/direktori Anda . Maka Anda harus dapat memanggil skrip ini di pemodel Anda.

Yusuf
sumber
1
@Impel - Selamat datang, senang itu membantu =)
Joseph