Условия в моделере поля калькулятора


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 - Добро пожаловать, рад, что это помогло =)
Джозеф
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.