En el trabajo diario con datos espaciales en QGIS, mantener la consistencia y precisión de los campos es fundamental. Por suerte, QGIS ofrece herramientas que permiten automatizar la actualización de valores, desde cálculos simples como el área de un polígono hasta configuraciones más avanzadas utilizando GeoPackages. En este artículo exploraremos cómo actualizar automáticamente campos en QGIS de diferentes formas de lograrlo sin necesidad de recurrir a bases de datos externas.
Usar un campo virtual para cálculos dinámicos
Estos no almacenan valores directamente, sino que calculan dinámicamente el resultado basado en expresiones configuradas, por lo que la creación de campos virtuales pueden ser una opción útil.
A continuación se presenta un ejemplo de cómo calcular el área con un campo virtual:
- Abrir la tabla de atributos:
- Haz clic derecho en la capa y selecciona Abrir tabla de atributos.
- Crear un campo virtual:
- Haz clic en el icono Abrir calculadora de campos.
- Selecciona la opción Crear campo virtual.
- Asigna un nombre al campo (por ejemplo, area_virtual).
- Introduce la expresión: $area

- Guardar y visualizar:
- El campo virtual area_virtual calculará dinámicamente el área de cada entidad en función de su geometría actual, por lo que cada vez que editemos su geometría y guardemos los cambios se actualizará el área (en ediciones de nodos es necesario cerrar el modo edición y volver a iniciarlo para ver los cambios).
De forma sencilla podemos decir que los campos virtuales tienen como ventaja que calcula valores dinámicos en tiempo real sin necesidad de almacenamiento adicional, siendo así más ligero y sin modificar datos originales. Sin embargo, la principal limitación que tiene es que no permite guardar los valores en la tabla de atributos para usarlos fuera de QGIS.
Configurar valores predeterminados en el formulario de atributos
Una de las formas más sencillas de actualizar campos automáticamente es configurando valores predeterminados en el formulario de atributos de una capa (Shapefiles, GeoPackages…).
A continuación, se presenta un ejemplo para calcular automáticamente el área de un polígono:
- Abrir las propiedades de la capa:
- Haz clic derecho sobre la capa en el panel de capas y selecciona Propiedades.
- Acceder a la configuración del formulario de atributos:
- En la ventana de propiedades, selecciona la pestaña Formulario de atributos.
- Configurar el campo:
- Selecciona el campo que deseas actualizar automáticamente (por ejemplo, área_m2).
- En la columna Valores por omisión, introduce la expresión: $area

- Guardar y probar:
- Activa el modo de edición de la capa, y verás que cada vez que crees o edites un polígono, el campo area_m2 se actualizará automáticamente con el área calculada.
Nota: Para usar unidades específicas, como hectáreas o metros cuadrados, puedes personalizar la expresión: Por ejemplo, $area / 10000 para hectáreas.

Automatización mediante disparadores en un GeoPackage
El formato GeoPackage es ideal para proyectos locales y portátiles, siendo una solución potente y flexible que permite configurar campos calculados utilizando su compatibilidad con disparadores o Triggers. Esta característica permite ejecutar código SQL que actualiza campos automáticamente en respuesta a eventos, como insertar o actualizar entidades. Por tanto, esta opción nos permite actualizar automáticamente sin depender de bases de datos externas.
Como ejemplo, creamos una capa de tipo GeoPackage y automatizamos el cálculo automático del área, por un lado de los nuevos objetos creados y, por otro, de las modificaciones de los existentes:
- Crear la capa GeoPackage:
- Ve a Capa > Crear capa > Nueva capa GeoPackage… y define los campos necesarios (por ejemplo, nombre, area…).
- Conectar el Geopackage:
- Accede a Base de Datos > Administrador de bases de datos…
- Crea una nueva conexión a la capa geopackage previamente creada.

- Seleccionar tabla y abrir Ventana SQL:
- Selecciona la tabla de la capa conectada y abre la Ventana SQL para realizar la primera de las consultas que nos permitan automatizar los cálculos.

- Agregar un disparador o Trigger SQL al GeoPackage:
- Introduce el código SQL para crear un disparador que calcule automáticamente el área de los nuevos objetos creados.
- Introduce una nueva consulta con el código SQL para crear un disparador que calcule automáticamente el área de las modificaciones de los objetos existentes.


- Probar las consultas realizadas con Trigger:
- Activa el modo de edición y dibuja un polígono nuevo.
- Modifica la geometría de un polígono existente.
- El campo area se actualizará automáticamente con el valor correspondiente una vez guardes los cambios y cierres el modo edición.
Automatización con scripts en PyQGIS
Para usuarios avanzados, QGIS permite automatizar la actualización de campos utilizando scripts en Python (PyQGIS). Esto es útil cuando se requiere un control completo sobre cómo y cuándo se actualizan los datos.
Como ejemplo, se presenta un pequeño script que nos permite actualizar un campo con la fecha y hora actual cada vez que se edita una capa.
- Añadir capa:
- Añade la capa sobre la que queremos automatizar la actualización de uno de sus campos de la tabla. En este caso, se quiere actualizar el campo “last_edited”.

- Abrir consola de Python:
- Accede a Complementos > Consola de python

- Abrir nuevo editor de texto e incluir código:
- Pulsa en el símbolo (+) para abrir un nuevo editor en blanco y, a continuación, añade el siguiente código:

- Ejecutar script:
- Tras ejecutar el código se observa que el campo last_edited se completa con la fecha y hora de la actualización de la capa.

Conclusión
QGIS ofrece múltiples opciones para actualizar automáticamente campos en proyectos SIG, desde la creación de campos virtuales, a la configuración de valores predeterminados en el formulario de atributos hasta el uso del formato GeoPackage y scripts en PyQGIS. Elegir el método adecuado dependerá de las necesidades de tu proyecto, el nivel de automatización requerido y los recursos disponibles.
Con estas herramientas, puedes optimizar tus flujos de trabajo y garantizar la precisión de tus datos geográficos. En resumen:
- Elige campos virtuales para cálculos dinámicos ligeros sin afectar los datos originales.
- Usa valores predeterminados para simplicidad en cálculos básicos.
- Opta por disparadores si necesitas automatización robusta integrada en el archivo.
- Elige PyQGIS para máxima personalización en proyectos complejos.
¿Quieres comentarnos algo? Adelante!