เงื่อนไขในตัวคำนวณฟิลด์ตัวสร้างโมเดล


9

ฉันต้องการตรวจสอบไฟล์เวคเตอร์ถ้ามีคอลัมน์ "แหล่งที่มา"

ถ้าใช่ไม่มีอะไรให้ทำ หากไม่มีคอลัมน์ "แหล่งที่มา" ควรสร้างและเติมด้วย '0'

เป็นไปได้ไหมที่จะทำผ่านตัวสร้างโมเดล

คำตอบ:


10
  1. สร้างสคริปต์ใหม่จาก:

    Processing Toolbox > Scripts > Tools > Create new script
    
  2. ใช้สิ่งต่อไปนี้:

    ##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. บันทึกสคริปต์ในC:/Users/You/.qgis2/processing/scripts/ไดเรกทอรีของคุณ จากนั้นคุณควรจะสามารถเรียกสคริปต์นี้ในผู้สร้างโมเดลของคุณ


1
@Pimpel - ยินดีต้อนรับมากที่สุดดีใจที่มันช่วย =)
โจเซฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.