ฉันต้องการตรวจสอบไฟล์เวคเตอร์ถ้ามีคอลัมน์ "แหล่งที่มา"
ถ้าใช่ไม่มีอะไรให้ทำ หากไม่มีคอลัมน์ "แหล่งที่มา" ควรสร้างและเติมด้วย '0'
เป็นไปได้ไหมที่จะทำผ่านตัวสร้างโมเดล
ฉันต้องการตรวจสอบไฟล์เวคเตอร์ถ้ามีคอลัมน์ "แหล่งที่มา"
ถ้าใช่ไม่มีอะไรให้ทำ หากไม่มีคอลัมน์ "แหล่งที่มา" ควรสร้างและเติมด้วย '0'
เป็นไปได้ไหมที่จะทำผ่านตัวสร้างโมเดล
คำตอบ:
สร้างสคริปต์ใหม่จาก:
Processing Toolbox > Scripts > Tools > Create new script
ใช้สิ่งต่อไปนี้:
##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()
บันทึกสคริปต์ในC:/Users/You/.qgis2/processing/scripts/
ไดเรกทอรีของคุณ จากนั้นคุณควรจะสามารถเรียกสคริปต์นี้ในผู้สร้างโมเดลของคุณ