Cómo crear un modelo de procesado en QGIS (El Model Builder de QGIS)

El modelador de procesado de QGIS es la herramienta análoga a Model Builder en ArcGIS, que permite crear modelos complejos con una interfaz gráfica simple y fácil de usar.

Cuando nos encontramos trabajando en un SIG, la mayoría de operaciones de análisis que ejecutamos no son aisladas, sino que forman parte de un conjunto de operaciones. Empleando un modelo esa cadena de procesos puede ser ejecutada en un único proceso. No importa la cantidad de pasos y diferentes algoritmos que pueda implicar, un modelo se ejecuta como un solo proceso o algoritmo, ahorrando tiempo y esfuerzo, que es proporcional al volumen del modelo.

Videotutorial:

¿Por qué usar un modelo para realizar geoprocesamiento?

Podríamos mencionar infinidad de beneficios de utilizar dicha herramienta pero, de entre todas ellas, destacamos tres principalmente:

  • Claridad: Nos permite ver de forma gráfica como procesaremos la información, lo que nos permite separar entre procesos, flujo de información y resultados.
  • Eficiencia y precisión: Nos permite borrar datos intermedios, que en ocasiones olvidamos borrar, pudiendo generar confusiones con los resultados finales. En caso de modificación, podemos volver a correr el modelo cambiando cualquiera de ellos. De igual forma al automatizar la tarea las posibilidades de error se reducen.
  • Los modelos son reciclables. Podemos correr el mismo proceso una y otra vez, con la posibilidad de cambiar parámetros y predecir distintos escenarios.

¿Cómo funciona el constructor de modelos?

Se considera “modelo” aquella secuencia de operaciones analíticas que conduce a la obtención de un resultado, y cuya complejidad suele requerir la generación de un esquema previo que indique el flujo de datos: cuáles son los datos de entrada, las operaciones implicadas, los datos de salida, y cómo el “output” de una operación pasa a ser el “input” de otra.

Podemos localizar el modelador de procesado de QGIS dentro de la caja de herramientas.

models1

El modelador presenta una interfaz en la que se muestra la estructura del modelo y el flujo de trabajo que representa. En la parte izquierda de dicha interfaz, encontramos un panel con dos pestañas, que se emplean para agregar nuevos elementos al modelo.

modelador de procesado

La creación de un modelo se compone de dos pasos fundamentales:

  • Definición de los “inputs” necesarios. Estos “inputs” se añaden a la ventana de parámetros, por lo que el usuario puede establecer sus valores al ejecutar el modelo. Este es en sí mismo un algoritmo, por lo que la ventana de parámetros se genera automáticamente.
  • Definición del flujo de trabajo. Utilizando los datos de entrada del modelo, el flujo de trabajo se define mediante la adición de algoritmos y seleccionando como usan esos “inputs” o “outputs” generados por otros algortimos que ya están en el modelo.

Teniendo en cuenta el proceso de trabajo necesario para la creación del modelo que hemos descrito hasta ahora, vamos a ponerte un ejercicio práctico para que puedas comprobar la funcionalidad de ésta herramienta.

Para la realización del ejercicio puedes descargarte las capas necesarias pinchando aquí.

El objetivo de este tutorial es crear un modelo que una por localización (Spatial join) los atributos de una capa de municipios (municipios.shp) sobre una capa de zonas arqueológicas (zonas_arqueo.shp), que nos indique el nombre del municipio, provincia, comarca, etc… en el que se ubican dichos yacimientos arqueológicos (todos éstos atributos se encuentran en la tabla de la capa de municipios). Una vez haya realizado dicha operación, el modelo deberá de generar un buffer sobre la capa resultante.

El resultado final será una capa de tipo poligonal con el área de influencia (buffer) que especifiquemos y que recoja todos los datos referentes al municipio al que pertenecen dichas zonas arqueológicas (zonas_arqueo.shp) extraídos de la capa de municipios (municipios.shp).

Comencemos!

Definición de inputs

En primer lugar, cargamos las capas indicadas en un proyecto en blanco de QGIS y, una vez cargadas, accedemos a la Caja de herramientas y, en el menú Models/Tools seleccionamos Create new model.

create new model

El primer paso para crear un modelo es definir los inputs que éste necesita, esto lo realizamos desde la pestaña Entradas, en la parte izquierda de la interfaz.

entradas

Haz doble clic sobre el parámetro Vector layer para añadir las capas municipios.shp y zonas_arqueo.shp al modelo como inputs.

Se abrirá la ventana de definición del parámetro, las configuramos de la siguiente forma:

parameter definiition

Nota: Dependiendo del parámetro en sí mismo, el cuadro de diálogo que nos muestra la herramienta puede contener sólo un elemento requerido o varios como es éste caso (Nombre de parámetro, tipo de capa….)

El aspecto de la interfaz será el siguiente:

modelador de procesado capas

Definición del flujo de trabajo

Ya hemos introducido los inputs para la primera operación, vamos a incluir el algoritmo/proceso necesario para realizar la unión espacial (Spatial Join), para ello sobre la pestaña Algoritmos, en el buscador, escribe Join by location…

join by location

Haz doble clic sobre dicho algoritmo y aparecerá la ventana Join by location para la introducción de parámetros.

En ella indicamos:

  • Capa destino (Target layer): zonas_arqueologicas.shp
  • Capa para unión de atributos (Join vector layer): municipios.shp
  • Método de selección: Atributos de la geometría que coincida espacialmente.
  • Podemos indicar además que se generen una serie de estadísticas en la ejecución de la herramienta (Statistics for summary)
  • Geometría de salida (Output geometry): la misma que la capa zonas_arqueologicas.shp (shape de tipo punto).
  • Indicamos que en la tabla resultado únicamente aparezcan los atributos de la capa destino que coincidan espacialmente con los atributos de la capa de unión (Output table).
  • En capa de salida (Output layer) podemos indicar el nombre de la capa resultado del proceso, si éste no es definitivo (como es nuestro caso) no es necesario indicar ninguno, el modelador generará un archivo de tipo temporal.

parametros join by location

Tras pulsar en Aceptar el logaritmo queda incluido en la interfaz, en él podemos apreciar los parámetros de entrada (Output table, Output geometry, etc…) y el resultado del proceso o algortimo Output layer.

Podrás apreciar que las capas de municipios y zonas arqueológicas (inputs del algoritmo) se han conectado automáticamente al mismo.

modelador_join by location

Vamos a introducir ahora el segundo algoritmo que forma parte de nuestro modelo, buffer. Para ello, y de nuevo sobre la pestaña Algoritmos, escribe el nombre de la herramienta en el buscador para localizarla.

modelador de procesado buffer

Introduce los siguientes parámetros en la ventana Fixed distance buffer:

  • Capa de entrada (Input layer): capa resultado del proceso anterior (Output layer from algorithm Join by location).
  • Distancia de buffer (Distance): 2000 metros.
  • Segmentos (Segments): deja el valor por defecto.
  • Disolver resultado (Dissolve result): No.
  • Capa de salida (Buffer OutputVector): zonas_arqueo_municipios.

Cuando empleamos la salida (output) de un algoritmo anterior como input de otro algoritmo, de forma automática, el algoritmo anterior se convierte en padre del actual, es decir, se ejecutará en primer lugar.

fixed distance buffer

Tras pulsar en Aceptar el logaritmo se añade a la interfaz y podrás comprobar que el Output del logaritmo Join by location se ha conectado automáticamente como Input del logaritmo Fixed distance buffer.

modelador de procesos QGIS completo

Por último, y al haber otorgado un nombre a la capa resultado (OutputVector) se genera un resultado estable (zonas_arqueo_municipios.shp).

Los elementos del modelo pueden ser arrastrados a una posición diferente dentro de la interfaz del mismo, para cambiar la forma de visualización de la estructura del modelo y hacerlo más claro e intuitivo. Los vínculos entre los elementos se actualizan automáticamente.

Puedes guardar el modelo creado para poder reutilizarlo posteriormente en una operación posterior, con la única necesidad de modificar los input del mismo, para ello has de indicar el nombre del modelo y de grupo.

nombre modelo procesado

Por último, ejecutamos el modelo haciendo clic sobre el botón Ejecutar boton ejecutar modelador y aparecerá en pantalla la ventana en la que se nos solicita que indiquemos las capas a las que se corresponden los Inputs y el directorio para guardar la capa resultado.

parametros tutorial modelador

Pulsamos el botón Run y el modelo comienza a ejecutarse. En la pestaña Log nos informa del proceso de ejecución.

Log modelador de procesado final

Listo!. Ya tenemos nuestra capa con un buffer de 2 Kms sobre las zonas arqueológicas con la información relativa al municipio al que pertenecen.

capa con un buffer de 2 Kms sobre las zonas arqueológicas con la información relativa al municipio al que pertenecen

Si quieres aprender más sobre el constructor de modelos apúntate a nuestro curso online de QGIS avanzado!

Let’s connect!

Date de alta en nuestro newsletter
y recibe este ebook gratuito

Y una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos

14 comentarios en “Cómo crear un modelo de procesado en QGIS (El Model Builder de QGIS)”

  1. Buenas,

    He estado buscando como poder usar en el Modelador de procesado las herramientas que proporcionan los Plugin, pero no he sido capaz de encontrarlo.

    ¿Es posible hacer lo que busco?

  2. Hola Diego, soy de Uruguay, estoy buscando la barra de herramientas de procesado y no logro que aparezca para hacer el ejercicio. Tengo instalado la versión 2.14 de qgis

    Te agradecería que me dieras alguna pauta a seguir

    Gracias

    • Hola Simón,

      La caja de herramientas de procesado has de activarla desde el menú Procesos, por defecto al instalar QGIS esta aparece desactivada.

      Un saludo!

  3. Hola, estoy probando el modelador gráfico con la versión 11 de QGIS. Tengo dos capas poligonales y quiero hacer un intersect entre ellas. No funciona, sale un mensaje de Volcado fallido y se cierra el programa. He probado un buffer sobre capas puntuales y lo hace bien. Sabéis qué puede ser? Si hago el intersect desde el mapa, es decir , utlitzando las herramientas de geoproceso, funciona. Muchas gracias.

  4. Hola Diego,
    Estoy armando un modelo y quiero dividir una capa raster por un valor constante. No logro encontrar la herramienta analoga de ArcGis «divide». ¿Sugerencias?

    • Hola Paula,

      En QGIS puedes emplear la calculadora ráster para realizar este proceso, se encuentra en el menú Ráster.
      Además, puedes crear un ráster con un valor constante mediante el algoritmo Create constant raster layer (que encontrarás en la Caja de Herramientas de Procesado) y, como te digo, dividir tu ráster de origen entre la constante con la calculadora.

      Un saludo!

  5. Por lo que he visto, en el modelador gráfico de procesos de QGIS Pisa y anterios versiones inmediatas ha desaparecido el comando «join by location».
    Por menú sí tenemos este comando (Vector > Data Management Tools > Join Attributes By Location), pero no aparece ni en de referido Modelador de procesos ni tampoco en la caja de herramientas de procesado. Por otro lado, por línea de comandos encontramos «Join by location» que nos ofrece unas cosas y «spatial join» que nos ofrece otras posibilidades topológicas de detección para la unión. El problema grave es que, como decía al principio, en el modelador de procesos no aparece, por lo que salvo que se me esté escapando algo, no podemos introducir este algoritmo básico en los procesos automáticos. ¿Sabéis porqué ocurre esto? Un saludo

    • Hola Francisco,

      El algoritmo Join Attributes by Location sí está disponible para el modelador en la versión 2.10 de QGIS, asegúrate de que tienes la Caja de herramientas de procesado en el modo Advanced Interface, de lo contrario no estará disponible.

      Un saludo!

  6. Casi todas las dudas que me surgen con software GIS me las resuelve mappinggis. Sois muy buenos y se agradece mucho vuestro gran trabajo. Saludos a todos.

    • Hola Alex,

      Muchas gracias por tu comentario y por seguirnos. Espero que podamos continuar sirviendo de ayuda a todos aquellos interesados en los Sistemas de Información Geográfica y aportando nuestro granito de arena a la difusión del conocimiento.

      Un saludo!

  7. Hola,

    Os quiero comentar que hay un bug en el QGIS que hace que salte un error en la ventana de salida que dice «[Errno 9] Bad file descriptor». Para solucionar ese error hay que entrar en la carpeta en la que tengamos instalado QGIS (p.e.: «C:\OSGeo4W64\apps\qgis») y, de ahí, como se especifica en este enlace de Victor Olaya, eliminar una línea de código del archivo phyton: https://github.com/qgis/QGIS/commit/322cd0d03bfa7b1971c04a0adff973619289f583

    Os lo digo porque en el trabajo hemos estado dos días calentándonos la cabeza porque nos salían errores cada dos por tres.

    Un saludo

    • Hola Carlos,

      Muchas gracias por tu aporte que, además de a nosotros, servirá de ayuda a aquellas personas que utilizan este software.

      Un saludo!

Los comentarios están cerrados.