lunes, febrero 14, 2011

Salidas numéricas

Llevo un tiempo sin escribir en el blog y se me han acumulado las cosas que contar, así que estos días voy a intentar ponerme al día y contar las novedades que he desarrollado últimamente, que no son pocas. Una de las más destacables es la incorporación de resultados numéricos desde un algoritmo de SEXTANTE.

Antes de esto, había algoritmos que generaban resultados numéricos (por ejemplo, estadísticas), aunque estos se presentaban como un resultado de texto, debidamente formateados. Eso permitía al usuario usar esos resultados, pero, al no existir semántico de ellos, no permitía que fuera el programa quien los utilizara para esas cosas. Ahora, al crear un algoritmo, se pueden declarar salidas numéricas que, aunque no se muestran (salvo en un caso particular que ahora veremos), están disponibles para hacer otras cosas con ellas. Esto permite, por ejemplo:

  • Usar salidas numéricas de un algoritmo como entradas de otro en el modelizador. He añadido ademas un nuevo algoritmo llamado "Calculadora", que permite modificar esos valores mediante operaciones aritméticas, de forma que puede hacerse que un algoritmo tome en uno de sus parámetros el valor de la media de una capa raster elevado al cuadrado, por ejemplo. Estoy en proceso de modificar la calculadora de mapas y la calculadora de campos para que puedan meterse esos valores como parte de las fórmulas.

  • Mejor estructuración de las salidas en ejecuciones múltiples. Si se ejecuta un algoritmo que genere alguno de esos textos con valores numéricos de forma iterativa, esto puede dar lugar a un número muy elevado de tales resultados, difíciles de aprovechar después. En ese caso, SEXTANTE ahora prepara dichos datos en una tabla, de forma que son más sencillos de analizar y más manejables.

domingo, febrero 13, 2011

Ejecución iterativa de algoritmos.

Una novedad que llevará la próxima versión de SEXTANTE (y que ya está disponible en las versiones diarias desde hace algún tiempo e incluso la presenté en las jornadas de gvSIG en diciembre) es la ejecución iterativa de algoritmos. Para todos aquellos algoritmos que toman como entrada alguna capa vectorial, es posible ejecutar dicho algoritmo sobre cada una de las entidades de esa capa. Es decir, que si, por ejemplo, contamos con una capa de polígonos con 10 entidades y ejecutamos el algoritmo "Cortar capa raster con capa de polígonos", al hacerlo iterativamente se ejecutará ese algoritmo 10 veces, tomando cada vez como entrada vectorial una capa que contiene un único polígono. De este modo se generarán 10 nuevas capas raster, automatizándose el proceso notablemente.

Un resultado similar se podría obtener anteriormente separando la capa vectorial en n capas vectoriales de una entidad y después recurriendo al proceso por lotes. Ahora SEXTANTE permite hacer eso en un único paso.

Para acceder a la ejecución iterativa de un algoritmo, basta pinchar sobre su nombre en la caja de herramientas. Aparecerán tantas opciones de ejecución vectorial como parámetros de tipo capa vectorial requiera el algoritmo, ya que no es posible iterar sobre varias capas a la vez, debiendo elegirse una de ellas en caso de que el algoritmo necesite varias.

Para más detalles, puede verse el video de la presentación de gvSIG que he mencionado, que está ya disponible aquí.