모델러 필드 계산기의 조건


9

"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-가장 환영합니다. 기꺼이 도움이되었습니다 =)
Joseph
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.