11 votos

Cómo usar QGIS calculadora de campo en python?

Me gustaría usar QGIS Calculadora de Campo en Python para actualizar la columna existente en función de ciertas condiciones?

¿Cómo puedo hacer esto?

7voto

Jauder Ho Puntos 3172

No hay prediseñadas de clase para hacer la magia de la calculadora de campo (estoy pensando en añadir que en algún momento) sin embargo es muy sencillo:

expression = QgsExpression("1 + 1")
# This allows field lookup
index = layer.fieldNameIndex("UpdateField")
expression.prepareFields(layer.pendingFields())
layer.startEditing()
for feature in layer.getFeatures():
    value = expression.evaluate(feature)
    layer.changeAttributeValue(feature.id(), index, value)

layer.commitChanges() 

Un par de notas: Estamos usando changeAttributeValue porque es más rápido, pero requiere para utilizar la función de identificación y de campo de índice, de otra manera que podría ser tan rápido, pero es más claro a leer es:

expression = QgsExpression("1 + 1")
# This allows field lookup
expression.prepareFields(layer.pendingFields())

layer.startEditing()
for feature in layer.getFeatures():
    value = expression.evaluate(feature)
    feature["UpdateField"] = value
    layer.updateFeature(feature)

layer.commitChanges() 

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X