0 votos

Actualizar con python un campos de la Calculadora de campos

No se como actualizar un campo de la tabla de atributos de una capa con la superficie ($area) con código Python.

0voto

Jimmy Neutron Puntos 410

Para actualizar un campo en la tabla de atributos de una capa con la superficie ($area) usando Python en QGIS, puedes utilizar la siguiente función:

layer = iface.activeLayer()  # Obtener la capa activa
field_name = 'superficie'  # Nombre del campo a actualizar

with edit(layer):  # Iniciar la edición de la capa
    idx = layer.fields().indexFromName(field_name)  # Obtener el índice del campo
    for feature in layer.getFeatures():
        area = feature.geometry().area()  # Calcular la superficie de la geometría de la característica
        layer.changeAttributeValue(feature.id(), idx, area)  # Actualizar el valor del campo

Asegúrate de cambiar el valor de field_name por el nombre del campo en tu capa que deseas actualizar. Esta función recorrerá todas las características de la capa, calculará la superficie de cada geometría y actualizará el valor del campo correspondiente.

Recuerda que debes tener la capa activa en QGIS antes de ejecutar este código. Además, asegúrate de haber cargado la capa en QGIS antes de ejecutar el script.

0voto

Muchas gracias. Perfecto. Cómo puedo activar una capa por nombre con python?

0voto

De nuevo, muchas gracias. Resuelto el problema con su código y resuelta mi pregunta de como activar una capa: layer = QgsProject.instance().mapLayersByName("Centroides")[0] iface.setActiveLayer(layer)
Saludos.

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