モデラーフィールド計算機の条件


9

「Source」の列があるかどうかを調べたいのですが。

はいの場合、何もする必要はありません。「Source」列がない場合は、作成して「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.