La línea de comandos

Introducción

La línea de comandos de SEXTANTE permite a los usuarios más avanzados hacer un uso mas ágil del programa y automatizar tareas mediante la creación de sencillos scripts.

La interfaz

Para empezar a utilizar la línea de comandos en SEXTANTE haz clic en el icono correspondiente y podrás ver lo siguiente:

La línea de comandos de SEXTANTE está basada en BeanShell. BeanShell es un interprete de código de Java en modo script que permite ejecutar dinámicamente la sintaxis estándar de Java y comandos comunes, como los de Perl y JavaScript.

Si se quiere profundizar y conocer BeanShell puedes visitar tu página web. En este capítulo sólo haremos mención a los elementos de BeanShell relacionados con los algoritmos de análisis geográfico de SEXTANTE.

SEXTANTE añade nuevos comandos que permiten ejecutar los algoritmos y obtener nueva información geográfica de los datos que se estén usando, entre otras cosas.

Los usuarios de Java pueden crear pequeños scripts y programas combinando los elementos de Java con los comandos de SEXTANTE. Sin embargo, quien no este familiarizado con Java puede usar la línea de comandos de SEXTANTE para ejecutar un proceso o un conjunto de ellos, simplemente llamando al correspondiente método del algoritmo.

En las próximas líneas se puede encontrar una descripción detallada de todos los comandos de SEXTANTE.

Obtener información sobre los datos

Todos los algoritmos necesitan datos para ser ejecutados con éxito. Las capas geográficas y tablas son identificadas usando el nombre que tienen en la tabla de contenidos de la aplicación SIG que se este usando.

El comando data() escribe una lista de todos los objetos de datos disponibles que pueden ser usados, junto con el nombre particular de cada uno de ellos. Llamando a un dato se obtendrá algo como esto:

RASTER LAYERS
-----------------
mdt25.asc

VECTOR LAYERS
-----------------
Curvas de nivel

TABLES
-----------------

Hay que tener en cuenta que algunos SIG permiten tener varias capas de información (datos) con el mismo nombre. SEXTANTE cogerá el primero de esos nombres, por tanto seria conveniente renombrar los datos para cada uno de ellos si tuvieran el mismo nombre.

El comando describe (nombre del objeto) permite obtener información sobre un objeto o dato concreto. Para referirnos a ese objeto, usamos el nombre que tiene en la tabla de contenidos. A continuación se muestra una serie de ejemplos con este comando donde se obtiene información sobre una capa vectorial, una capa raster y una tabla.

>describe points.shp
Type: Vector layer - Point
Number of entities: 300
Table fields: | ID | X | Y | SAND | SILT | CLAY | SOILTYPE | EXTRAPOLAT |

>describe dem25.asc
Type: Raster layer 
X min: 262846.525725
X max: 277871.525725
Y min: 4454025.0
Y max: 4464275.0
Cellsize X: 25.0
Cellsize Y: 0.0
Rows: 410
Cols: 601

>describe spatialCorrelation.dbf
Type: TableNumber of records: 156
Table fields: | Distance | I_Moran | c_Geary | Semivariance |

Obtener información sobre los algoritmos de análisis geográfico

Una vez descritos los datos vamos a ver a continuación los algoritmos que se pueden usar para extraer el máximo provecho posible para el análisis.

Cuando se ejecuta un algoritmo con el gestor de extensiones de SEXTANTE, se usa la ventana de parámetros con varios campos, cada uno de ellos corresponden a un sólo parámetro. En SEXTANTE cada algoritmo de análisis espacial es identificado por un comando. Cuando se usa la línea de comandos de SEXTANTE, se debe conocer que parámetros son necesarios, para pasar los valores correctos y usar el método que haga correr el algoritmo. SEXTANTE posee un método para describir en detalle un algoritmo. Pero antes necesitamos conocer el nombre del algoritmo, y para ello utilizamos el comando algs(). Se muestra a continuación una parte de los algoritmos de SEXTANTE.

bsh % algs();
acccost-------------------------------: Accumulated cost(isotropic)
acccostanisotropic--------------------: Accumulated cost (anisotropic)
acccostcombined-----------------------: Accumulated cost (combined)
accflow-------------------------------: Flow accumulation
acv-----------------------------------: Anisotropic coefficient of variation
addeventtheme-------------------------: Points layer from table
aggregate-----------------------------: Aggregate
aggregationindex----------------------: Aggregation index
ahp-----------------------------------: Analytical Hierarchy Process (AHP)
aspect--------------------------------: Aspect
buffer--------------------------------: Buffer

En la izquierda hay una lista con el nombre de cada algoritmo. Este nombre es el que se tiene que usar para hacer referencia en la línea de comandos. En la derecha se puede ver el nombre del algoritmo en el actual lenguaje, el cual es el mismo nombre que identifica el algoritmo en el Gestor de extensiones. Sin embargo, el nombre no es el mismo ya que depende del lenguaje actual en la aplicación SIG, y por lo tanto puede ser usado para llamar al algoritmo.

A continuación vamos a ver como obtener una lista de parámetros que un algoritmo necesita para que se ejecute con éxito. Para ver la descripción de los parámetros que requiere un algoritmo usa el comando describealg(nombre_del_algoritmo). Recordar que se debe usar el nombre del algoritmo (lado izquierdo), no la descripción del algoritmo (lado derecho).

Por ejemplo, si queremos calcular la acumulación de flujo desde un MDE, necesitamos ejecutar el correspondiente modulo, el cual, de acuerdo a la lista de algoritmos ags(), es identifacado como accflow. Una descripción de las entradas y salidas de dicho algoritmo podemos ver a continuación:

>describealg("accflow")
Usage: accflow(DEM[Raster Layer]
               WEIGHTS[Optional Raster Layer]
               METHOD[Selection]
               CONVERGENCE[Numerical Value]
               FLOWACC [output raster layer])

Ejecutando algoritmos

Para ejecutar los algoritmos utilizamos el comando runalg. La sintaxis es la siguiente:

> runalg{name_of_the_algorithm, param1, param2, ..., paramN)

La lista de parámetros para añadir depende del algoritmo que quieras ejecutar. Para ver una lista de parámetro debemos utilizar el comando describealg.

Los valores se introducen de manera diferente, dependiendo del tipo de parámetro. Veamos los diferentes tipos de parámetros y cómo deben introducirse sus valores correspondientes para ejecutar con éxito el algoritmo.

Si se quiere utilizar un valor por defecto de un parámetro de entrada hay que escribir una almohadilla (#). En los parámetros opcionales, el uso del valor por defecto es equivalente a no utilizar entrada alguna.

Los parámetros de entrada como las cadenas de texto o los valores numéricos tiene valores por defecto. Para usar estos, escribir ``#'' en la entrada correspondiente en lugar del valor de expresión.

Los objetos de salida, como la ruta de salida, pueden ser salvadas a un fichero temporal usando el signo ``#''. Si lo que quieres es salvar la capa de salida a un fichero permanente, escribe el nombre del fichero de salida.

Ajustar las características de la capa raster de salida

Si intentas ejecutar cualquier algoritmo que genere nuevas capas raster, las creará con un tamaño de celda y una extensión automática calculada a partir de la capa raster de entrada. Este funcionamiento puede ser modificado usando el comando autoextent.

> autoextent("true"/"false)

Por defecto, tiene valor verdadero (true). Sin embargo, si quieres definir una extensión y tamaño de celda en particular para todas las capas raster de salida, debes usar el comando extent.

Usage: extent(raster layer[string])
       extent(vector layer[string], cellsize[double])
       extent(x min[double], y min[double],
              x max[double], y max[double], 
              cell size[double])
Type "autoextent" to use automatic extent fitting when possible

Al establecer una extensión fija, automáticamente se desactiva el ajuste automático (es decir, como si ejecutaras un comando autoextent false).

Ejecutando modelos

Para ejecutar un modelo desde la línea de comandos debe utilizarse el comando model, con una sintaxis similar al comando runalg. En este caso, en lugar del nombre del algoritmo como primer parámetro, debe introducirse el nombre del fichero donde está almacenado el modelo, que obligatoriamente debe encontrarse en la carpeta de modelos establecida en la configuración de SEXTANTE. Los restantes parámetros son los correspondientes en cada caso al propio modelo, del mismo modo que en el caso de ejecutar un algoritmo con el comando runalg;

Manejo de capas desde la consola

Puedes realizar algunas operaciones de gestión de capas desde la interfaz en línea de comandos, como por ejemplo:



volaya 2009-06-04