Я хочу проверить векторный файл, если есть столбец «Источник».
Если да, то ничего не поделаешь. Если столбец «Источник» отсутствует, его следует создать и заполнить «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/
каталоге. Тогда вы сможете вызвать этот скрипт в своем моделере.