Outdated version of the documentation. Find the latest one here.

.

Configurar aplicaciones externas

El entorno de procesamiento se puede extender el uso de aplicaciones adicionales. Actualmente, SAGA, GRASS, OTB (Orfeo Toolbox) y R son reconocidos, junto con algunas otras aplicaciones de línea de comandos que proporcionan funcionalidades de análisis de datos espaciales. Los algoritmos que dependen de una aplicación externa son administrados por su propio proveedor de algoritmos.

Esta sección le mostrará cómo configurar el entorno de procesamiento para incluir estas aplicaciones adicionales, y le explicará algunas de las características particulares de los algoritmos basados en ellos. Una vez que haya configurado correctamente el sistema, usted será capaz de ejecutar algoritmos externos de cualquier componente, como la caja de herramientas o el modelador gráfico, tal como lo hace con cualquier otro geoalgoritmo.

Por defecto, todos los algoritmos que dependen de aplicaciones externas no incluidas con QGIS no estarán habilitados. Pueden ser habilitados en el diálogo de configuración. Asegúrese de que la aplicación de la que depende esté instalada en el sistema. En caso de no hacerlo, los algoritmos aparecerán en la Caja de Herramientas, pero se emitirá un mensaje de error cuando se intente hacer uso de ellos.

Esto se debe a las descripciones de algoritmos (necesarios para crear el diálogo de parámetros y proporcionar la información necesaria sobre el algoritmo) no se incluyen con cada aplicación, pero con QGIS en lugar de. Es decir, que son parte de QGIS, por lo que ellos están en su instalación, incluso si no ha instalado ningún otro software. La ejecución del algoritmo, sin embargo, necesita de los binarios de la aplicación para ser instalada en su sistema.

Aclaración para los usuarios de Windows

Si no es un usuario avanzado y está ejecutando QGIS en Windows, podría no estar interesado en leer el resto de este capítulo. Asegure que la instalación de QGIS en su sistema utiliza el instalador independiente. Esto instalará automáticamente SAGA, GRASS y OTB en su sistema y configurarlos para que se pueden ejecutar desde QGIS. Todos los algoritmos de la vista simplificada de la caja de herramientas estarán listas para ser ejecutado sin necesidad de alguna configuración adicional. Si va a instalar mediante la aplicación OSGeo4W, asegúrese de seleccionar SAGA, OTB para la instalación.

Si quiere saber más sobre cómo funcionan estos proveedores, o si quiere utilizar algún algoritmo que no se encuentre en la Caja de Herramientas simplificada (como los scripts de R), siga leyendo.

Aclaración respecto a los formatos de archivos

Cuando se utiliza un software externo, la apertura de un archivo en QGIS no significa que se puede abrir y procesar bien en ese otro software. En la mayoría de los casos, otro software puede leer lo que ha abierto en QGIS, pero en algunos casos, eso puede no ser cierto. Al utilizar las bases de datos o formatos de archivo poco comunes, ya sea para capas raster o vectoriales, podrían surgir problemas. Si eso sucede, trate de utilizar formatos de archivo conocidos que este seguro que ambos programas entiendan, y comprobar la salida de la consola (en el historico y el diálogo de registro) para saber más acerca de lo que va mal.

Utilizar capas raster de GRASS es, por ejemplo, uno de los casos en los que pueden existir problemas y no completarse el trabajo si se invoca un algoritmo externo que use dicha capa como entrada. Por este motivo, estas capas no aparecerán como disponibles para los algoritmos.

Debe, sin embargo, no encontrar ningún problema en absoluto con las capas vectoriales, ya que QGIS convierte automáticamente desde el formato de archivo original a uno aceptado por la aplicación externa antes de pasar la capa a la misma. Esto suma tiempo de procesamiento adicional, que podría ser significativo si la capa tiene un tamaño grande, así que no se sorprenda si se necesita más tiempo para procesar una capa de una conexión de DB que lo hace para procesar una de un tamaño similar almacenada en un archivo de shape.

Los proveedores que no utilizan aplicaciones externas pueden procesar cualquier capa que se pueda abrir en QGIS, ya que son abiertas para el análisis mediante QGIS.

En cuanto a formatos de salida, todos los formatos reconocidos por QGIS como salida se pueden utilizar, tanto para capas ráster y vectoriales. Algunos proveedores no admiten determinados formatos, pero todos pueden exportar a los formatos de capa raster comunes que luego pueden transformarse con QGIS automáticamente. Al igual que en el caso de las capas de entrada, si es necesaria esta conversión, podría aumentar el tiempo de procesamiento.

Si la extensión del nombre de archivo especificado cuando se llama a un algoritmo no coincide con la extensión de cualquiera de los formatos reconocidos por QGIS, entonces se agregará un sufijo para establecer un formato predeterminado. En el caso de las capas ráster, la extensión .tif se usa, mientras que .shp se utiliza para las capas vectoriales.

Nota referente a las seleccion de capas vectoriales

External applications may also be made aware of the selections that exist in vector layers within QGIS. However, that requires rewriting all input vector layers, just as if they were originally in a format not supported by the external application. Only when no selection exists, or the Use only selected features option is not enabled in the processing general configuration, can a layer be directly passed to an external application.

En otros casos sólo es necesario exportar un conjunto de características seleccionadas, lo que hará que los tiempos de ejecución sean mayores.

SAGA

Los algoritmos de SAGA pueden ser ejecutados desde QGIS si se tiene SAGA instalado en su sistema y se puede configurar correctamente el entorno de procesamiento para que pueda encontrar ejecutables SAGA. En particular, se necesita la línea de comandos SAGA ejecutable para ejecutar algoritmos SAGA.

Si ejecuta Windows, tanto el instalador estándar como el de OSGeo4W incluyen SAGA junto con QGIS y la ruta se configura automáticamente, por lo qu eno es necesrio hacer nada más.

If you have installed SAGA yourself (remember, you need version 2.1), the path to the SAGA executable must be configured. To do this, open the configuration dialog. In the SAGA block, you will find a setting named SAGA Folder. Enter the path to the folder where SAGA is installed. Close the configuration dialog, and now you are ready to run SAGA algorithms from QGIS.

If you are running Linux, SAGA binaries are not included with SEXTANTE, so you have to download and install the software yourself. Please check the SAGA website for more information. SAGA 2.1 is needed.

In this case, there is no need to configure the path to the SAGA executable, and you will not see those folders. Instead, you must make sure that SAGA is properly installed and its folder is added to the PATH environment variable. Just open a console and type saga_cmd to check that the system can find where the SAGA binaries are located.

Sobre las limitaciones del sistema de cuadrícula de SAGA

Most SAGA algorithms that require several input raster layers require them to have the same grid system. That is, they must cover the same geographic area and have the same cell size, so their corresponding grids match. When calling SAGA algorithms from QGIS, you can use any layer, regardless of its cell size and extent. When multiple raster layers are used as input for a SAGA algorithm, QGIS resamples them to a common grid system and then passes them to SAGA (unless the SAGA algorithm can operate with layers from different grid systems).

The definition of that common grid system is controlled by the user, and you will find several parameters in the SAGA group of the settings window to do so. There are two ways of setting the target grid system:

  • Setting it manually. You define the extent by setting the values of the following parameters:

    • Resampling min X
    • Resampling max X
    • Resampling min Y
    • Resampling max Y
    • Resampling cellsize

    Nótese que QGIS volverá a muestrear las capas de entrada en dicha medida, incluso si no se solapan con ésta.

  • Setting it automatically from input layers. To select this option, just check the Use min covering grid system for resampling option. All the other settings will be ignored and the minimum extent that covers all the input layers will be used. The cell size of the target layer is the maximum of all cell sizes of the input layers.

Para los algoritmos que no utilizan múltiples capas raster, o para aquellos que no necesitan un único sistema de cuadrícula de entrada, no se realizará un remuestreo antes de invocar SAG y dichos parámetros no son utilizados.

Limitaciones para las capas multibanda

Unlike QGIS, SAGA has no support for multi-band layers. If you want to use a multiband layer (such as an RGB or multispectral image), you first have to split it into single-banded images. To do so, you can use the ‘SAGA/Grid - Tools/Split RGB image’ algorithm (which creates three images from an RGB image) or the ‘SAGA/Grid - Tools/Extract band’ algorithm (to extract a single band).

Limitaciones en el tamaño de celda

SAGA assumes that raster layers have the same cell size in the X and Y axis. If you are working with a layer with different values for horizontal and vertical cell size, you might get unexpected results. In this case, a warning will be added to the processing log, indicating that an input layer might not be suitable to be processed by SAGA.

Registro

When QGIS calls SAGA, it does so using its command-line interface, thus passing a set of commands to perform all the required operations. SAGA shows its progress by writing information to the console, which includes the percentage of processing already done, along with additional content. This output is filtered and used to update the progress bar while the algorithm is running.

Both the commands sent by QGIS and the additional information printed by SAGA can be logged along with other processing log messages, and you might find them useful to track in detail what is going on when QGIS runs a SAGA algorithm. You will find two settings, namely Log console output and Log execution commands, to activate that logging mechanism.

La mayoría del resto de proveedores que utilizan una aplicación externa y la invocan a través de la línea de comandos tienen opciones similares, de forma que las podrá encontrar también en otros lugares de la lista de ajustes de procesamiento.

R. Creating R scripts

La integración R en QGIS es diferente al de SAGA y es que no hay un conjunto predefinido de algoritmos que pueda ejecutar (a excepción de algunos ejemplos). En su lugar, debe escribir sus scripts y llamar a los comandos R, al igual que lo haría desde R, y de una manera muy similar a lo que vimos en la sección dedicada a scripts de procesamiento. En esta sección se muestra la sintaxis para usar y llamar a los comandos de R QGIS y cómo usar en QGIS los objetos (capas, tablas) en ellos.

The first thing you have to do, as we saw in the case of SAGA, is to tell QGIS where your R binaries are located. You can do this using the R folder entry in the processing configuration dialog. Once you have set that parameter, you can start creating and executing your own R scripts.

De nuevo, esto es diferente en Linux, dónde sólo hay que asegurarse de que el directorio de R está correctamente incluido en la variable de entorno PATH. Si R puede iniciarse simplemente escribiendo R en una consola, entonces la configuración es correcta.

Para añadir un nuevo algoritmo que invoque a una función de R (u otro script de R que se haya creado anteriormente y se quiera tener disponible desde QGIS), es necesario crear un archivo de script que indique al entorno de procesamiento cómo realizar dicha operación y los comandos de R necesarios para ello.

R script files have the extension .rsx, and creating them is pretty easy if you just have a basic knowledge of R syntax and R scripting. They should be stored in the R scripts folder. You can set this folder in the R settings group (available from the processing settings dialog), just like you do with the folder for regular processing scripts.

Let’s have a look at a very simple script file, which calls the R method spsample to create a random grid within the boundary of the polygons in a given polygon layer. This method belongs to the maptools package. Since almost all the algorithms that you might like to incorporate into QGIS will use or generate spatial data, knowledge of spatial packages like maptools and, especially, sp, is mandatory.

##polyg=vector
##numpoints=number 10
##output=output vector
##sp=group
pts=spsample(polyg,numpoints,type="random")
output=SpatialPointsDataFrame(pts, as.data.frame(pts))

Las primeras líneas, que comienzan con el símblo doble de comentario en Python (##), indican a QGIS las entradas del algoritmo descritas en el archivo y las salidas que éste generará. Estas líneas utilizan la misma sintaxis que los scripts de SEXTANTE que vimos anteriormente por lo que no las describiremos aquí de nuevo.

Cuando se declara un parámetro de entrada, QGIS usa esa información con dos finalidades: crear la interfaz de usuario que solicita al usuario el valor de dicho parámetro y crear la variable correspondiente en R que se pueda usar después como entrada para los comandos en R.

In the above example, we are declaring an input of type vector named polyg. When executing the algorithm, QGIS will open in R the layer selected by the user and store it in a variable also named polyg. So, the name of a parameter is also the name of the variable that we can use in R for accesing the value of that parameter (thus, you should avoid using reserved R words as parameter names).

Spatial elements such as vector and raster layers are read using the readOGR() and brick() commands (you do not have to worry about adding those commands to your description file – QGIS will do it), and they are stored as Spatial*DataFrame objects. Table fields are stored as strings containing the name of the selected field.

Tables are opened using the read.csv() command. If a table entered by the user is not in CSV format, it will be converted prior to importing it into R.

Additionally, raster files can be read using the readGDAL() command instead of brick() by using the ##usereadgdal.

Si se es un usuario avanzado y no quiere QGIS para crear el objeto que representado la capa, puede utilizar la etiqueta ##passfilename para indicar que prefiere una cadena con el nombre de archivo en su lugar. En este caso, le corresponde abrir el archivo antes de realizar cualquier operación sobre los datos que contiene.

Con la información anterior, se puede comprender la primera línea de nuestro primer script de ejemplo (la primera línea que no comienza con un comentario de Python).

pts=spsample(polyg,numpoints,type="random")

La variable polygon ya contiene un objeto SpatialPolygonsDataFrame, por lo que se puede utilizar para llamar al método spsample, al igual que numpoints, que indica el número de puntos a añadir a la rejilla de ejemplo creada.

Since we have declared an output of type vector named out, we have to create a variable named out and store a Spatial*DataFrame object in it (in this case, a SpatialPointsDataFrame). You can use any name for your intermediate variables. Just make sure that the variable storing your final result has the same name that you used to declare it, and that it contains a suitable value.

En este caso, el resultado obtenido del método spsample ha de ser convertido de forma explícita a un objeto de tipo SpatialPointsDataFrame, since it is itself an object of class ppp, which is not a suitable class to be returned to QGIS.

If your algorithm generates raster layers, the way they are saved will depend on whether or not you have used the #dontuserasterpackage option. In you have used it, layers are saved using the writeGDAL() method. If not, the writeRaster() method from the raster package will be used.

Si ha utilizado la opción #passfilename, las salidas se generan utilizando el paquete raster (mediante writeRaster()), incluso cuando no se utiliza para las entradas.

Si el algoritmo no genera ninguna capa, sino más bien en su lugar regresa un texto en la consola, tiene que indicar lo que desea que la consola mostrará una vez finalizada la ejecución. Para ello, basta con iniciar la línea de comandos que producen los resultados que desea imprimir con el signo > `(‘mayor’). La salida de todas las otras líneas no se mostrará. Por ejemplo, aquí está el archivo de descripción de un algoritmo que realiza una prueba normalmente en un determinado campo (columna) de los atributos de una capa vectorial:

##layer=vector
##field=field layer
##nortest=group
library(nortest)
>lillie.test(layer[[field]])

The output of the last line is printed, but the output of the first is not (and neither are the outputs from other command lines added automatically by QGIS).

Si su algoritmo crea algún tipo de gráficos (utilizando el método plot()), añada la siguiente línea:

##showplots

This will cause QGIS to redirect all R graphical outputs to a temporary file, which will be opened once R execution has finished.

Tanto los resultados gráficos como de consola, se mostrará en el gesto de resultados de procesamiento.

For more information, please check the script files provided with SEXTANTE. Most of them are rather simple and will greatly help you understand how to create your own scripts.

Nota

Las bibliotecas rgdal y maptools se cargan por defecto, por lo que no tiene que añadir el comando correspondiente ``library()``(sólo hay que asegurarse de que los dos paquetes se instalaron en su distribución R). Sin embargo, otras bibliotecas adicionales que pueda necesitar tener ser cargaran de forma explícita. Sólo tiene que añadir los comandos necesarios al inicio de su script. También tiene que asegurarse de que los paquetes correspondientes se instalen en la distribución R utilizada por QGIS. El marco de procesamiento no se hará cargo de alguna instalación de paquete. Si ejecuta un script que requiere un paquete que no está instalado, la ejecución fallará y SEXTANTE intentará detectar qué paquetes hacen falta. Debe instalar las bibliotecas que faltan manualmente antes de poder ejecutar el algoritmo.

GRASS

Configurar GRASS no es muy diferente de la configuración de SAGA. En primer lugar, la ruta de la carpeta GRASS debe ser definido, pero solo si se ejecuta en Windows. Adicionalmente, un interprete de comandos (usualmente msys.exe, que se puede encontrar en la mayoría de distribuciones GRASS para Windows) tiene que ser definido y establecer la ruta también.

Por defecto, el marco de procesamiento intenta configurar el conector de GRASS para utilizar la distribución GRASS que se incluye junto con QGIS. Esto debería funcionar sin problemas en la mayoría de los sistemas, pero si tiene problemas, puede que tenga que configurar el conector GRASS manualmente. Además, si usted desea utilizar una instalación diferente de GRASS, puede cambiar esta configuración y seleccionar la carpeta donde está instalada la otra versión. GRASS 6.4 es necesaria para que los algoritmos funcione correctamente.

Si se utiliza Linux, hay que asegurarse de que GRASS está correctamente instalado y que se puede ejecutar sin problemas desde una consola.

GRASS algorithms use a region for calculations. This region can be defined manually using values similar to the ones found in the SAGA configuration, or automatically, taking the minimum extent that covers all the input layers used to execute the algorithm each time. If the latter approach is the behaviour you prefer, just check the Use min covering region option in the GRASS configuration parameters.

The last parameter that has to be configured is related to the mapset. A mapset is needed to run GRASS, and the processing framework creates a temporary one for each execution. You have to specify if the data you are working with uses geographical (lat/lon) coordinates or projected ones.

GDAL

No es necesaria ninguna configuración adicional para ejecutar los algoritmos de GDAL. Al estar estos incluidos en QGIS, los algoritmos infieren su configuración de forma automática.

Caja de Herramientas de Orfeo

Orfeo Toolbox (OTB) algorithms can be run from QGIS if you have OTB installed in your system and you have configured QGIS properly, so it can find all necessary files (command-line tools and libraries).

As in the case of SAGA, OTB binaries are included in the stand-alone installer for Windows, but they are not included if you are runing Linux, so you have to download and install the software yourself. Please check the OTB website for more information.

Once OTB is installed, start QGIS, open the processing configuration dialog and configure the OTB algorithm provider. In the Orfeo Toolbox (image analysis) block, you will find all settings related to OTB. First, ensure that algorithms are enabled.

Entonces, configurar la ruta al directorio donde las aplicaciones de línea de comandos y las librerías de OTB se encuentran instaladas:

  • nix Normalmente, el directorio de aplicaciones de OTB apunta a `/usr/lib/otb/applications`` y el directorio con los programas de línea de comandos de OTB es `/usr/bin``.

  • win If you use the OSGeo4W installer, then install otb-bin package and enter C:\OSGeo4W\apps\orfeotoolbox\applications as OTB applications folder and C:\OSGeo4W\bin as OTB command line tools folder. These values should be configured by default, but if you have a different OTB installation, configure them to the corresponding values in your system.

TauDEM

Para utilizar este proveedor, es necesrio instalar las herramientas de linea de comandos de TauDEM.

Windows

Please visit the TauDEM homepage for installation instructions and precompiled binaries for 32-bit and 64-bit systems. IMPORTANT: You need TauDEM 5.0.6 executables. Version 5.2 is currently not supported.

Linux

There are no packages for most Linux distributions, so you should compile TauDEM by yourself. As TauDEM uses MPICH2, first install it using your favorite package manager. Alternatively, TauDEM works fine with Open MPI, so you can use it instead of MPICH2.

Descargar el código fuente de TauDEM 5.0.6 <http://hydrology.usu.edu/taudem/taudem5.0/TauDEM5PCsrc_506.zip>`_ y extraer los archivos en algún directorio.

Abrir el archivo linearpart.h , y después de la línea

#include "mpi.h"

añadir una nueva linea con

#include <stdint.h>

y obtendrá

#include "mpi.h"
#include <stdint.h>

Guardar los cambios y cerrar el archivo. Ahora abir tiffIO.h, buscar la línea #include "stdint.h" y sustituir las comillas ("") con <>, para obtener

#include <stdint.h>

Guardar los cambios y cerrar el archivo. Crear un directorio de compilación y entrar en él

mkdir build
cd build

Configure your build with the command

CXX=mpicxx cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..

y entonces compilar

make

Finalmente, para instalar TauDEM en /usr/local/bin, ejecutar

sudo make install