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?

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.


1
@Impel - Selamat datang, senang itu membantu =)
Joseph
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.