Điều kiện trong máy tính trường modeler


9

Tôi muốn kiểm tra tệp vectơ nếu có cột "Nguồn".

Nếu có, không có gì để làm. Nếu không có cột "Nguồn", nó sẽ được tạo và điền vào '0'.

Điều này có thể được thực hiện thông qua các mô hình?

Câu trả lời:


10
  1. Tạo một tập lệnh mới từ:

    Processing Toolbox > Scripts > Tools > Create new script
    
  2. Sử dụng một cái gì đó như sau:

    ##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. Lưu tập lệnh trong C:/Users/You/.qgis2/processing/scripts/thư mục của bạn . Sau đó, bạn sẽ có thể gọi tập lệnh này trong trình tạo mô hình của bạn.


1
@Pimpel - Rất hoan nghênh, rất vui vì nó đã giúp =)
Joseph
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.