# El modelizador gráfico

# Introducción

El modelizador gráfico permite combinar varios algoritmos gráficamente, creando un proceso mayor que engloba varios subprocesos (algoritmos).

Cuando se trabaja con un SIG, la mayoría de las operaciones están separadas entre sí. Con el modelizar gráfico las distintos análisis se pueden encadenar para conseguir un proceso que englobe a varios algoritmos. De este modo, un sólo algoritmo, que se ha definido con el modelizador, puede ejecutar diferentes algoritmos, consiguiendo un mayor ahorro de tiempo y esfuerzo, especialmente para modelos complejos y largos. Procesos que implican varios pasos puede reducirse así a uno único, definiendo el flujo de datos entre los distintos algoritmos involucrados.

El modelizador cuenta con un lienzo de trabajo donde se ve la estructura del modelo planteado, y en la parte izquierda un conjunto de elementos que se pueden añadir al modelo para ir conformándolo progresivamente.

La creación de un modelo implica 2 pasos:

- Definición de las entradas necesarias. Éstas serán las que se le pidan al usuario que ejecute la extensión para llevar a cabo el correspondiente análisis. El modelo que se crea es en sí mismo un algoritmo de SEXTANTE y se relaciona como tal con los distintos elementos de la librería SEXTANTE.
- Definición del flujo de datos. Establecer cómo los datos seleccionados por el usuario y los generados por las distintas extensiones han de usarse para alimentar los procesos que componen el modelo.

# Definición de entradas

El primer paso para definir el modelo es la definición de las entradas. En la pestaña entradas de la parte izquierda de la ventana encontramos las siguientes opciones:

- Banda
- Capa raster
- Capa vectorial
- Cadena de texto
- Campo de tabla
- Coordenada (Punto)
- Tabla
- Tabla fija
- Entrada múltiple
- Selección
- Valor numérico
- Valor booleano

Haciendo doble clic sobre cada uno de ellos, aparece una ventana intermedia en la que podemos definir los parámetros particulares de esa entrada. Será preciso siempre asignarle una descripción, que es lo que el usuario verá una vez se ejecute el modelo. Algunas entradas, por su parte, requieren información adicional. Así, como se ve en la siguiente imagen, si se añade un valor numérico, es necesario especificar si se desea que esté acotado superior e inferiormente, el tipo de valor que es (entero o real), o el valor por defecto que tendrá.

Por cada entrada añadida se coloca un elemento en el lienzo, señalado con un signo de suma.

# Definición de procesos

Una vez que se han definido las entradas, debe definirse el conjunto de procesos que se van utilizar con ellas. Para ello, deben escogerse los distintos algoritmos de la pestaña Procesos, en la cual se encuentran éstos del mismo modo que en el gestor de extensiones habitual.

Haciendo doble clic sobre cualquiera de las extensiones, aparece un cuadro de diálogo similar al que encontramos si llamamos a esa misma extensión desde el gestor de extensiones de SEXTANTE.

Encontramos, no obstante, algunas diferencias. En primer lugar, no existen varias pestañas, sino únicamente la correspondiente a los parámetros. En segundo lugar, para las salidas generadas por la extensión, no existe la posibilidad de seleccionar si se grabarán en un archivo temporal o especificar el archivo que se desea utilizar. En su lugar, debe introducirse una descripción para la salida e indicar si se desea que esa salida se incorpore a la vista al acabar de procesar el modelo.

Si no se marca la casilla correspondiente, esa salida se genera y puede ser empleada como entrada para otro proceso, pero después no se mantiene. Si, por el contrario, se marca la casilla, esa salida se generará, y será el usuario en el momento de ejecutar el módulo quien elija dónde desea guardarla. La descripción que el usuario verá de ese resultado será la que se añada en este paso al definir el modelo.

La forma en que en estas ventanas de parámetros pueden introducirse valores es, en cierta medida, distinta a la que se presenta en la ejecución aislada de una extensión normal, adaptándose al contexto del modelizador en el que se encuentran. A continuación se puede ver por separado, para cada tipo de parámetro, siempre que existan diferencias apreciables.

- Capas (raster y vectoriales) y tablas. Se seleccionan de modo similar en una lista desplegable. No obstante, las opciones disponibles no son las capas o tablas cargadas en el SIG, sino las capas o tablas que han sido definidas como entradas al modelo o bien han sido generadas en alguno de los procesos previamente introducidos.
- Valores numéricos. Pueden introducirse valores fijos, simplemente tecleándolos de la forma habitual. La caja de texto, no obstante, es también un desplegable, y en él pueden seleccionarse los valores que en forma de parámetros se hayan introducido en el modelo, siempre que el modelo tenga alguna entrada de tipo valor numérico.
- Cadenas. Al igual que el caso anterior, puede teclearse directamente el valor o seleccionar una cadena de lista en caso de que exista alguna entrada compatible.
- Puntos. No existe la posibilidad de seleccionar las coordenadas en este paso, sino únicamente tomar un punto que haya sido definido como entrada, y que será especificado en el momento de ejecutar el modelo.
- Bandas. No puede saberse, en el momento de definir un modelo, el número de bandas de la que depende un parámetro de tipo banda. Por ello, se puede seleccionar bandas del 1 al 250, así como las bandas de entrada que hayan podido definirse en el modelo. La validez de esta banda se comprobará en tiempo de ejecución, y si la capa en cuestión no posee dicha banda, el modelo arrojará un error y no se ejecutará correctamente.
- Campo en tabla o capa. Al igual que en el caso anterior, los campos disponibles no pueden conocerse de antemano y mostrarse en una lista desplegable. Por ello, se ha de tomar, o bien un campo definido como entrada, y que el usuario lo seleccionará en el momento de ejecutar el modelo, o bien teclear directamente en nombre de dicho campo en la caja de texto. Si a la hora de ejecutar el modelo no existe un campo con dicho nombre, el modelo arrojará un error y no se ejecutará completamente.
- Selección. Aparecen las opciones del algoritmo, y además aquellas entradas de tipo selección que se hayan definido en el modelo.

Una vez que se rellenan los parámetros y se hace clic en Aceptar, se añade al lienzo de trabajo un nuevo elemento, señalado con un icono de proceso. Éste se encuentra enlazado a todas aquellas entradas o procesos preexistentes de los cuales tome datos, conformándose así la estructura del modelo.

# Edición del modelo sobre el lienzo

Una vez que el modelo ha sido diseñado y se han añadido todas las entradas y procesos que lo componen, puede ejecutarse pulsando el botón Ejecutar. No obstante, puede editarse para incorporar modificaciones, sin necesidad de que ello suponga añadir nuevos elementos. Si cualquier algoritmo del modelo genera capas raster, la pestaña Salida raster será añadida a la ventana.

Por una parte, pueden moverse los distintos elementos para que la configuración sea más clara que la que resulta por defecto y pueda verse de forma más intuitiva el flujo de datos. Para ello, basta pinchar sobre el elemento y arrastrar éste hasta la nueva posición. Los enlaces que muestran el flujo de datos entre procesos se actualizan inmediatamente.

Si se quieren cambiar los parámetros de un proceso, puede hacerse doble clic sobre él y la ventana de parámetros correspondiente volverá a aparecer para que nuevos parámetros sean seleccionados.

Para eliminar un proceso, debe hacerse clic con el botón derecho sobre él y seleccionar el comando Eliminar. Si este proceso alimenta a otros procesos (es decir, otros procesos dependen de él), SEXTANTE mostrará un mensaje de error indicando que no puede eliminarlo. Sólo pueden eliminarse aquellos procesos que, en el árbol del proceso global, se sitúan en un extremo y no tienen otros procesos que se ejecuten en base a ellos.

# Almacenamiento y recuperación de modelos

Una vez creado, un modelo puede almacenarse para futuros usos. Para ello, basta con hacer clic sobre el botón Guardar y seleccionar el nombre del fichero que contendra el modelo, que será un fichero XML con extensión .`model`. Haciendo clic sobre el botón Abrir, se abre un modelo ya guardado, pudiendo editarse o ejecutarse.

Los modelos guardados se podrán visualizarse, consultarse y ejecutarse en el gestor de extensiones de SEXTANTE, siempre que la carpeta de modelos seleccionada en la configuración de éste coincida con la carpeta de modelos establecida en SEXTANTE. Puedes configurar la carpeta de modelos abriendo el diálogo de configuración (en el gestor de extensiones encontrarás un botón en su parte inferior derecha) y haciendo clic después en el bloque de parámetros de configuración denominado ``Carpetas''. Cuando se lanza el gestor de extensiones, SEXTANTE buscará en esa carpeta y cargara los modelos que en ella encuentre, añadiéndolos al árbol de algoritmos.

Los modelos aparecen en el árbol de algoritmos dentro del grupo seleccionado en el desplegable que encontrarás en la parte superior derecha de la ventana del modelizador. En esa lista tienes todos los nombres de los grupos ya existentes (en los que se agrupan los algoritmos que vienen de serie con SEXTANTE), así como un grupo llamado ``Modelos''. Si ninguno de ellos te parece adecuado para incluir en él tu modelo, puedes definir tu propio grupo tecleando sobre la caja de texto de la propia lista desplegable, ya que ésta es editable. En la caja de texto contigua, introduce el nombre del modelo, que será con el que aparezca en el árbol de algoritmos.

Aunque un modelo es un algoritmo de SEXTANTE como tal y no existe diferencia a la hora de ejecutarlo y usarlo, éstos se muestran con un icono distinto para que sea más sencillo reconocerlos.

Los modelos guardados no sólo aparecerán en la ventana del gestor de extensiones, sino también en el árbol de algoritmos de la pestaña Procesos de la ventana del modelizador gráfico. Esto significa que se puede incorporar un modelo a otro modelo, justamente igual que al añadir un algoritmo simple.

La carpeta de modelos por defecto coincide con la carpeta de ayuda de SEXTANTE, y contiene algunos modelos de ejemplo que puedes abrir para estudiarlos y así comprender mejor el funcionamiento del modelizador. Los modelos tienen a su vez ayuda, que puedes también consultar. No olvides que, como se ha dicho, un modelo es un algoritmo más, por lo que su ayuda puede editarse de igual forma.