En este tutorial, vamos a mostrarte cómo crear un modelo de procesado en QGIS con el diseñador de modelos.
El diseñador de modelos 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.
¿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 diseñador de modelos (Model Designer)?
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 diseñador de modelos de QGIS dentro de la Caja de herramientas.
El diseñador de modelos 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.
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 algoritmos 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.
El primer paso para crear un modelo es definir los inputs que este necesita, esto lo realizamos desde la pestaña Entradas, en la parte izquierda de la interfaz.
Haz doble clic sobre el parámetro Capa vectorial 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:
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:
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 Unir atributos por localización…
Haz doble clic sobre dicho algoritmo y aparecerá la ventana Unir atributos por localización para la introducción de parámetros.
En ella indicamos:
- Capa destino (Unirse a las funciones en): zonas_arqueologicas.
- Predicado geométrico: Atributos de la geometría que intersecten.
- Capa para unión de atributos (Comparando con): municipios.
- Podemos indicar además que se añadan una serie de campos específicos en la ejecución de la herramienta (Campos a añadir)
- 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 (Tipo de unión).
- En capa de salida (Capa unida) 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 modelo generará un archivo de tipo temporal.
Tras pulsar en Aceptar el logaritmo queda incluido en la interfaz, en él podemos apreciar los parámetros de entrada y el resultado del proceso o algoritmo.
Podrás apreciar que las capas de municipios y zonas arqueológicas (inputs del algoritmo) se han conectado automáticamente al mismo.
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.
Introduce los siguientes parámetros en la ventana Buffer:
- Capa de entrada: capa resultado del proceso anterior (Capa de salida de Unir atributos por localización).
- Distancia de buffer: 2000 metros.
- Segmentos: deja el valor por defecto.
- Estilo de terminación: Redondo para que el resultado tenga un contorno redondeado.
- Estilo de ángulos: Igualmente vamos a escoger una forma redondeada para los ángulos.
- Disolver resultado: No.
- Capa de salida (Hecho buffer): 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.
Tras pulsar en Aceptar, el algoritmo se añade a la interfaz y podrás comprobar que el Output del logaritmo Unir atributos por localización se ha conectado automáticamente como Input del algoritmo Buffer.
Por último, y al haber otorgado un nombre a la capa resultado (OutputVector) se genera un resultado estable (zonas_arqueo_municipios).
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.
Por último, ejecutamos el modelo haciendo clic sobre el botón Ejecutar 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.
Pulsamos el botón Ejecutar y el modelo comienza a ejecutarse.
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.
Tutor de los cursos de QGIS, QGIS avanzado, QGIS aplicado a Urbanismo y Catastro, PostGIS, Teledetección con QGIS y Google Earth Engine, PostGIS y ArcGIS. Licenciado en Geografía y Master en SIG y Ordenación del Territorio. Echa un vistazo a todos nuestros cursos de SIG online.
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?
Hola Pablo,
No, no es posible introducir en el modelador de procesado los plugins como herramientas.
Un saludo!
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!
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.
Hola Anna,
Un volcado de memoria es un error interno que se produce en un programa. Lo mejor es que reportes dicho bug, tienes más información de cómo hacerlo en http://qgis.org/es/site/getinvolved/development/index.html.
Un saludo!
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!
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!
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!
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!