• Saltar a la navegación principal
  • Saltar al contenido principal
Geoinnova

Consultoría y Formación en SIG, Territorio y Medio Ambiente

  • Geoinnova
    • Quiénes somos
    • Coworking
    • Alianzas Estratégicas
    • Visor de proyectos Geoinnova
  • SIG y Desarrollo
    • Plugins QGIS
    • GeoNode
    • QElectricGIS
    • Planero Web
  • Consultoría Territorial
    • Planes de Emergencia Municipales de Protección Civil
    • Planes Urbanos de Actuación Municipal – PUAM
    • Evaluación Ambiental Estratégica de planes y programas
    • Minimización de Impacto Territorial y Declaración de Situación Individualizada en suelo no urbanizable
    • Turismo sostenible
  • Consultoría Ambiental
    • Trámites de Economía Circular
    • Prevención y gestión ambiental
    • Responsabilidad social corporativa
    • Estrategia de sostenibilidad
  • Formación
    • Todos los cursos
    • Formación para empresas
    • Máster y Diplomas
    • Cursos de QGIS Online Certificados
    • Cursos de programación, desarrollo SIG y geoservicios
    • Cursos de Teledetección
    • Cursos de Giswater
    • Cursos de SIG con ArcGIS
    • Cursos de Medio Ambiente
    • Campus
  • Divulgación
    • Blog
    • Tertulia Territorio Geoinnova
    • TFMs y otro trabajos de alumnos
    • Noticias
    • Webinars
    • Geolibrería
  • Contacto
    • Soporte – Tickets
Cursos SIG y Medio Ambiente APÚNTATE
SIG

Cómo actualizar automáticamente campos en QGIS: Guía práctica

28/01/2025 Deja un comentario

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.

Contenidos ocultar
Usar un campo virtual para cálculos dinámicos
Configurar valores predeterminados en el formulario de atributos
Automatización mediante disparadores en un GeoPackage
Automatización con scripts en PyQGIS
Conclusión

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.
Curso de herramientas Avanzadas en QGIS

Etiquetas: geopackage, pyqgis, python, qgis, sig

Apúntate a nuestra newsletter semanal

"*" señala los campos obligatorios

Este campo es un campo de validación y debe quedar sin cambios.
Consentimiento*

Artículos relacionados

cómo-digitalizar-en-Qgis-geoinnova-sig
Cómo digitalizar en QGIS: Guía completa paso a paso
01/09/2026
misiones-sentinel-copernicus-geoinnova
Las misiones Sentinel del programa Copernicus: qué observa cada una y para qué se utilizan
25/08/2026
Qfield-nueva-actualización-trabajo-de-campo-geoinnova
QField 4.2: precisión subcentimétrica y nuevas herramientas para el trabajo de campo
22/07/2026

Francisco Gomez Losada

Geógrafo. Máster en SIG de Código Abierto.
Técnico de Proyectos de Geoinnova.
Formador SIG, Catastro, Geoestadística y Evaluación de Impacto Ambiental.

Interacciones con los lectores

¿Quieres comentarnos algo? Adelante! Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Geoinnova
c/ Luis Morondo Urra nº 8 Bajo A
31006 Pamplona (Navarra)
info@geoinnova.org
+34 948 117 137

Horario de atención

Lunes a Viernes - 09:00 a 14:00 y de 16:00 a 19:00.
Fines de semana y Festivos - Exclusivamente por mail.
Horario de Verano (01 de julio al 30 de agosto): De lunes a viernes de 8 a 15h.

Otras páginas de interes

  • Promociones y descuentos en formación
  • Formación bonificada FUNDAE
  • Verificador y descarga de Certificados de aprovechamiento
  • Cursos certificable por QGIS.org

Legal

  • Aviso Legal
  • Política de privacidad
  • Política de seguridad
  • Política de cookies
  • Términos y condiciones
Entidad adherida a Confianza Online Certificado de inscripción en el Registro de huella de carbono, compensación y proyectos de absorción Logo Plazox Certificado de conformidad con el ENS

Todo el contenido publicado desde 2009 hasta 2026 en el Blog de Geoinnova por Geoinnova y colaboradores está licenciado bajo CC BY-NC-ND 4.0
Para usos específicos, contactar con Geoinnova.

© 2026 · Desarrollada por Geoinnova

Gestionar el Consentimiento de las Cookies
Utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. Lo hacemos para mejorar la experiencia de navegación y para mostrar anuncios personalizados. El consentimiento a estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.
  • Administrar opciones
  • Gestionar los servicios
  • Gestionar {vendor_count} proveedores
  • Leer más sobre estos propósitos
Personalizar
  • {title}
  • {title}
  • {title}