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

Configuration des applications tierces

Introduction

SEXTANTE peut être étendue par des applications tierces, qui sont exécutées directement depuis SEXTANTE. Pour l’instant, les logiciels SAGA, GRASS, OTB (Orfeo Toolbox) et R sont supportés, ainsi que des applications en ligne de commande qui proposent des fonctionnalités d’analyses spatiales. Les algorithmes reposant sur des applications tierces sont gérées par leur propres fournisseurs d’algorithme.

Ce chapitre vous montrera comment configurer SEXTANTE pour inclure ces applications additionnelles et vous expliquera quelques fonctionnalités particulières basées sur ces applications. Une fois le système configuré, vous pourrez exécuter les algorithmes externes depuis tout composant SEXTANTE tel que la boîte à outils ou le modeleur graphique, comme vous pourriez le faire depuis un géoalgorithme SEXTANTE préexistant.

Par défaut, tous les algorithmes qui reposent sur une application tierce non fournie avec QGIS sont désactivés. Vous pouvez les activer dans le fenêtre de configuration de SEXTANTE. Veuillez vérifier que l’application correspondante est préalablement installée sur votre ordinateur. Activer un fournisseur d’algorithmes non installé résultera en une erreur à l’exécution, bien que les algorithmes soient présent dans la boîte à outils.

La raison est que les descriptions des algorithmes (nécessaires pour créer la fenêtre de paramètres et donner à SEXTANTE les informations sur l’algorithme) ne sont pas fournis avec les applications mais sont inclus dans SEXTANTE. SEXTANTE les inclut d’office, mêm si vous ne les avez pas installé. Exécuter un algorithme nécessite évidemment que l’application tierce soit installée au préalable.

A propos des formats de fichiers

Le fait d’ouvrir un fichier dans QGIS ne garantit pas que ce fichier pourra être ouvert et traité par l’application tierce. Dans la plupart des cas, celui-ci pourra lire ce que vous avez ouvert dans QGIS, mais parfois, cela ne sera pas le cas. C’est particulièrement le cas des connections aux bases de données et les fichiers peu communs, aussi bien raster que vectoriels, qui pourront présenter des problèmes. Si cela arrivait, essayez de convertir vos données dans un format usuel reconnu par l’application tierce et vérifiez dans la console (historique et messages) le résultat du traitement pour analyser l’origine des erreurs.

Par exemple, l’utilisation d’une couche raster GRASS en entrée d’un algorithme SEXTANTE présente souvent des erreurs. C’est pourquoi ces couches ne seront pas disponibles (nous travaillons activement pour résoudre ce défaut et espérons y rémedier rapidement).

Pour les couches vectorielles, vous ne devriez pas rencontrer de problème : SEXTANTE les convertit automatiquement dans un format reconnu par l’application tierce avant de lui transmettre. Cela aboutit à un temps de traitement plus long, particulièrement si la couche comprend beaucoup d’objets. Ne vous étonnez donc pas si le traitement d’un couche prevenant d’un base de données est plus long que celui d’un shapefile de taille équivalente.

Les fournisseurs non basés sur des applications tierces peuvent traiter toute couche ouvrable par QGIS, dans la mesure où le traitement s’effectue par QGIS.

Concernant les formats de sortie, les fichiers raster sont sauvegardés au format TIFF (.tif) et les fichiers vectoriels en shapefile (.shp). Ces deux formats ont été choisis car universellement reconnus par les applications tierces et QGIS. Si vous n’avez pas sélectionner un nom de fichier se terminant par ces extensions, SEXTANTE le modifiera automatiquement et le format par défaut sera utilisé.

Dans le cas de GDAL, le nombre de formats reconnus est plus important.Dans la fenêtre de sélection de fichier, vous pourrez choisir le format et son extension. Pour plus d’information sur les formats reconnus, veuillez vous reporter à la documentation GDAL.

A propos de la sélection des couches vectorielles

Par défaut, quand une application tierce utilise une couche vectorielle, elle utilisera tous ses objets, même si une partie d’entre eux ont été sélectionnés dans QGIS. Cochez Utiliser les éléments sectionnés dans le group Général pour restreindre le traitement aux éléments séelectionnés. Les éléments sélectionnés seront alors copiés dans une nouvelle couche vectorielle avant d’être traités par l’algorithme.

Veuillez noter qu’avec cette option sélectionnée, une couche sans objet sélectionné sera entièrement traitée, comme si tous ces objets avaient été sélectionnés et non comme une couche vide.

SAGA

Les algorithmes SAGA peuvent être exécutés depuis SEXTANTE si SAGA est installé sur votre système et que SEXTANTE est correctement configuré pour y faire appel. En particulier, l’exécutable en ligne de commande de SAGA doit être accessible. Les fichiers de SAGA ne sont pas fournis avec SEXTANTE. Il vous faudra donc le télécharger et l’installer indépendamment de SEXTANTE et QGIS. Veuillez vous reporter au site web de SAGA pour plus d’information. Seule une version supérieure ou égal à SAGA 2.0.8 est supportée.

Une fois SAGA installé, sous Windows, ouvrez la fenêtre de configuration de SEXTANTE. Dans la rubrique SAGA, renseignez l’entrée répertoire SAGA. Entrez le chemin d’installation de SAGA. Refermez la fenêtre et les les algorithmes SAGA sont à présent disponibles dans SEXTANTE.

Si votre système est de type Linux, il n’est pas nécessaire de configurer tout ceci. Vérifiez que SAGA est correctement installé et que le chemin d’installation figure dans la variable d’environnement PATH. Pour vérifier que les fichiers binaires de SAGA sont accessibles, ouvrez une console et tapez saga_cmd.

A propos des limitations du système de grille de SAGA

La plupart des algorithmes SAGA nécessitent habituellement des couches Raster en entrée sur la même emprise et la même grille, couvrant la même emprise et auyant la même résolution. A l’appel d’un algorithme SAGA depuis SEXTANTE, vous pouvezcependant utilisez n’importe quelle couche, quelques soient leur emprise et résolution. Quand plusieurs couches raster son indiquées en entré d’un algorithme SAGA, SEXTANTE les rééchantillonne sur une grille commune avant de les transmettre à SAGA (à moins que l’algorithme SAGA manipule directement des couches dans des grilles différentes).

La définition d’une grille commune est contrôlée par l’utilisateur et peut se faire selon plusieurs paramètres, présents dans le groupe SAGA de la fenêtre de configuration. Deux façons de procéder existent:

  • La configuration manuelle. Vous définissez les valeurs de l’emprise:

    • Rééchantillonner la valeur minimum de X

    • Rééchantillonner la valeur maximum de X

    • Rééchantillonner la valeur minimum de Y

    • Rééchantillonner la valeur maximum de Y

    • Rééchantillonner la taille de la cellule

    Veuillez noter que SEXTANTE rééchantillonnera les couches en entrées sur cette emprise, même si elles ne la recoupent pas.

  • La configuration automatique à partir des couches en entrée. Pour choisir cette option, activez l’option Utiliser la grille minimal pour le rééchantillonnage. Toutes les autres options seront ignorées et l’emprise minimum pour couvrir les couhces sera utilisée. La taille de la cellule de la couche cible sera la plus grande des tailles de cellules des couches en entrée.

Pour les algorithmes qui n’utilisent pas plusieurs couches raster, ou pour ceux qui n’ont pas besoin d’une grille unique, le rééchantillonnage n’est pas nécessaire et ces paramètres ne seront pas utilisés.

Limitations pour les couches multi-bandes

Contrairement à QGIS, SAGA ne supporte pas les couches multi-bandes de couleur. Si vous souhaitez utiliser ce type de couches, tels que les fichiers RGB ou les images multispectrales), vous devez au préalable les séparer en images monocanaux. Pour cela, utilisez l’algorithme ‘SAGA/Grille - Outils/Séparer les canaux RGB’ qui créera 3 images à partir d’une image RGB, ou ‘SAGA/Grille - Outils/Extraire une bande’ pour n’en garder qu’une seule.

Limitations dans la résolution

SAGA suppose que la couche raster possède la même résolution en X et en Y. Si vous travaillez sur une couche avec des résolutions différentes entre les deux axes, les résultats peuvent être incohérents. Dans ce cas, un message d’avertissement est ajouté au journal, indiquant que la couche n’est pas adaptée au traitement SAGA.

Suivi du journal

SEXTANTE appelle SAGA par son interface en lignes de commandes, pour effectuer l’opération demandée. SAGA transmet son état d’avancement dans la console ainsi que d’autres informations. Ces messages sont filtrés par SEXTANTE pour afficher la barre d’avancement pendant l’exécution de l’algorithme.

Les commandes envoyées par SEXTANTE ainsi que les informations renvoyées par SAGA sont gardées dans le journal comme les autres informations de SEXTANTE et vous pourrez les consulter pour vérifier le bon déroulement de l’exécution d’un algorithme SAGA dans SEXTANTE. Vous trouverez deux options de configuration pour effectuer ce suivi : Journal des sorties et Journal des commandes.

La plupart des autres fournisseurs tiers qui sont appelés par la ligne de commandes ont des options similaires, que vous trouverez dans la rubrique configuration de SEXTANTE.

R et les scripts R

L’intégration de R dans SEXTANTE est légèrement différente de celle de SAGA, dans la mesure où il n’y a pas d’ensemble prédéfini d’algorithmes à exécuter, hormis quelques exemples. Au lieu de cela, c’est à vous d’écrire les scripts à transmettre à R, comme vous le feriez depuis R. Un peu comme dans le cahpitre sur les scripts SEXTANTE. Ce chapitre va vous montrer comment appeler les commandes R à partir de SEXTANTE et comme leur transmettre les objets SEXTANTE (couches et tables).

La première chose à faire, comme nous l’avons vu pour SAGA, est de dire à SEXTANTE où se situent les fichiers exécutables de R. Paramétrez l’entrée :guilabel::Répertoire R dans la fenêtre de configuration de SEXTANTE. Une fois cela fait, vous pouvez commencer à créer vos scripts R et à les exécuter.

Une fois encore, pour Linux, cela est légèrement différent : vous n’avez qu’à vérifier que le répertoire R est inclus dans la variable d’environnement PATH. Si vous pouvez lancer R en tapant R dans un terminal, alors vous êtes prêt pour la suite.

Pour ajouter un nouvel algorithme qui appelle une fonction R (ou un script R plus complexe que vous auriez développé et que vous souhaiteriez utiliser dans SEXTANTE), vous devez créer un fichier de script qui va indiquer à SEXTANTE comme effectuer l’opération et les commandes R correspondantes.

Les fichiers de scripts ont une extension de fichier .rsx et leur création est relativement simple si vous connaissez la syntaxe et le langage de script de R. Ils seront sauvegardés dans le répertoire de scripts de R. Vous pouvez configurer ce repertoire dans le groupe de configuration de R, dans la fenêtre de configuration de SEXTANTE, comme vous le feriez pour un script ordinaire de SEXTANTE.

Voyons un simple script, qui appelle la méthode spsample de R, pour créer une grille aléatoire à l’intérieur de l’emprise d’un ensemble de polygones d’une couche donnée. Cette fonction appartient au paquet maptools. Comme la plupart des algorithmes que vous aurez à intégrer dans SEXTANTE utilisent ou génèrent ds données spatiales, la connaissance des paquets spatiaux comme maptools et sp est obligatoire.

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

Les premières lignes, qui commencent par un double signe de commentaire Python (##] indiquera à SEXTANTE les données d’entrée et les sorties générées par l’algorithme. Ces lignes ont le même rôle que pour les scripts SEXTANTE que nous avons vu précédemment. Nous n’allons donc pas les décrire, veuillez vous reporter à la section correspondante.

Quand vous déclarez un paramètre d’entrée, SEXTANTE utilise cette information pour deux choses : créer le formulaire pour demander à l’utilisateur la valeur de ce paramètre et créer la variable R correspondante qui sera ensuite utilisée dans les commandes R.

Dans l’exemple ci-dessus, nous avons déclaré une entrée de type vecteur appelée polyg. A l’exécution de l’algorithme, SEXTANTE ouvrira la couche sélectionnée par l’utilisateur dans R et la stockera dans une variable nommée polyg. Ainsi le nom du paramètre est également le nom de la variable à utiliser dans R pour accéder à son contenu (par conséquent, veuillez ne pas utiliser de mots réservés R comme noms de paramètre).

Les éléments spatiaux, comme les couches vectorielles et raster sont lus en appelant respectivement les méthodes readOGR() et readGDAL (vous n’avez pas besoin des les ajouter à votre description de fichier, SEXTANTE s’en occupe pour vous) et seront sauvegardés sous forme de Dataframe spatiaux. Les champs des tables sont sauvegardés comme des chaînes de caractères contenant le nom des champs sélectionnés.

Les tables sont chargées par la commande read.csv(). Si la table à charger n’est pas au format CSV, il faudra la convertir avant de l’importer dans R.

Sachant cela, il est facile de comprendre la première ligne (hors commentaire) de notre exemple de script.

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

La variable polygon contient déjà un objet SpatialPolygonsDataFrame, l’appel de la méthode spsample est donc simple. Il en est de même pour la méthode numpoints qui renvoit le nombre de points à ajouter pour créer la grille.

Comme nous avons déclaré une sortie de type vecteur nommée out, nous devons créer cette variable out et lui affecter un objet Spatial*DataFrame (dans notre cas, un SpatialPointsDataFrame). Vous pouvez utiliser n’importe quel nom pour les variables intermédiaires. Assurez-vous simplement que la variable qui stocke la valeur finale correspond à la variable de sortie définie au début.

Dans notre exemple, le résultat de la méthode spsample doit être converti explicitement en objet SpatialPointsDataFrame, dans la mesure où c’est un objet de la classe ppp qui ne peut être retransmis à SEXTANTE.

Si votre algorithme ne renvoie pas de couche, mais un résultat texte dans la console, vous devez indiquer à SEXTANTE d’afficher la console à la fin de son exécution. Pour cela commencez les lignes qui doivent renvoyer les résultats par le signe >. Les sorties des autres lignes seront masquées. Par exemple, voici la description d’un algorithme quie réalise un test de normalisation sur un champ donné (ou une colonne) de la table d’attributs d’une couche vectorielle:

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

La sortie de la dernière ligne est affichée, mais la sortie de la première ne l’est pas (ni celles des commandes ajoutées automatiquement par SEXTANTE).

Si votre algorithme crée des graphiques (par la méthode plot()), ajoutez la ligne suivante:

##showplots

Ceci va indiquer à SEXTANTE de rediriger toutes les sorties graphiques de R vers un fichier temporaire qui sera chargé une fois l’exécution de R terminée.

Les graphiques et les résultats dans la console seront affichés dans le gestionnaire de résultats de SEXTANTE.

Pour plus d’information, veuillez vous référer aux scripts fournis avec SEXTANTE. Tous sont relativement simples et pourront vous aider à construire vos propres scripts.

GRASS

Configurer GRASS est similaire à celle de SAGA. Tout d’abord,pour Windows, indiquez le répertoire d’installation de GRASS, ainsi que l’emplacement de l’interpréteur de shell (habituellement le fichier msys.exe fourni avec GRASS).

Par défaut, SEXTANTE tente d’accéder à la version de GRASS fournies avec QGIS. Cela ne devrait pas poser de problème dans la plupart des cas, mais si vous rencontrez des soucis, essayez de le configurer manuellement. De plus, si vous utilisez une version différente de GRASS, il vous faudra peut-être changer la configuration et indiquer le répertoire de cette version. Pour un bon fonctionnement des algorithme, une version de GRASS supérieur ou égale à la 6.4 est nécessaire.

Sous Linux, assurez-vous simplement que GRASS est correctement installé et qu’il peut être lancé depuis un terminal.

Les algorithmes GRASS nécessitent la définition d’une région. Cette région peut être définie manuellement, en fournissant les valeurs, comme pour la configuration de SAGA, ou de manière automatique, correspondant à l’emprise minimale des données d’entrée à l’exécution de l’algorithme. Si vous préférez ce dernier réglage, cochez l’option Utiliser l’emprise minimale dans les paramètres de configuration de GRASS.

GRASS inclut des fichiers d’aide pour chaque algorithme. Si vous remplissez le paramètre Répertoire d’aide GRASS, SEXTANTE les affichera quand vous appuyerez sur le bouton [Afficher l’aide] depuis la fenêtre des paramètres de l’algorithme.

Le dernier paramètre à configurer est le jeu de cartes. Un jeu de carte est nécessaire pour exécuter GRASS et SEXTANTE crée un jeu temporaire à chaque exécution. Vous devez indiquer à SEXTANTE si le système de coordonnées est géographique (lat/lon) ou planes.

GDAL

Les algorithmes GDAL ne nécessitent pas de configuration particulière, dans la mesure où ils sont déjà intégrés dans QGIS. SEXTANTE y récupère donc leurs configurations.

La boîte à outils Orfeo (OTB)

Les algorithmes de la boîte à outils Orfeo (OTB) peuvent être exécutés depuis SEXTANTE si OTB est installé sur votre ordinateur et que SEXTANTE est configuré correctement pour trouver les fichiers nécessaires (outils en ligne de commande et librairies). OTB n’est pas fourni avec SEXTANTE, vous devrez donc le télécharger et l’installer au préalable. Veuillez vous reporter au site web OTB pour plus d’information.

Une fois OTB installé, démarrez QGIS, ouvrez la fenêtre de configuration de SEXTANTE et configurer le fournisseur OTB. Dnas le groupe Boîte à outils Orfeo (analyses d’image), vous retrouverez tous les réglages relatifs à OTB. Vérifiez que les algorithmes sont activés.

Ensuite configurez l’emplacement des exécutables et des librairies OTB:

  • nix habituellement, le répertoire Applications OTB pointe vers /usr/lib/otb/applications et celui des Outils en ligne OTB est /usr/bin

  • win si vous avez utilisé l’installateur OSGeo4W pour installer le paquet otb-bin, entrez respectivement C:\OSGeo4W\apps\orfeotoolbox\applications et C:\OSGeo4W\bin pour les répertoires OTB applications et OTB command line tools

TauDEM

Pour utiliser ce fournisseur, vous devez installer les outils TauDEM en lignes de commandes.

Windows

Veuillez vous reporter au site de TauDEM pour les instructions d’installation et fichiers exécutables pour les systèmes 32bits et 64bits.**IMPORTANT**, installez la version TauDEM 5.0.6, la version 5.2 et au -dela n’étant pas pour l’instant supportée.

Linux

La plupart des distributions Linux n’ont pas de paquets précompilés. Il vous faudra donc compiler vous-même TauDEM. TauDEM utilise MPICH2, qu’il faudra donc installer avec votre gestionnaire de paquets. TauDEM fonctionne également avec OpenMPI, que vous pouvez installer à la place de MPICH2.

Téléchargez le code source de TauDEM 5.0.6 à l’adresse suivante http://hydrology.usu.edu/taudem/taudem5.0/TauDEM5PCsrc_506.zip et décompressez les fichiers dans un répertoire.

Ouvrez le fichier lienarpart.h et après la ligne

#include "mpi.h"

ajoutez la ligne suivante

#include <stdint.h>

afin d’obtenir ceci

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

Sauvegardez les modifications et fermez le fichier. À présent, ouvrez le fichier tiffIO.h, trouvez la ligne #include "stdint.h" dans laquelle vous remplacerez les quotes ("") par des <>, pour obtenir ceci

#include <stdint.h>

Sauvegardez et fermez le fichier. Créez un répertoire de compilation et déplacez-vous dedans

mkdir build
cd build

Configurez votre compliation avec la commande

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

ensuite compilez

make

Enfin, pour installer TauDEM dans /usr/local/bin, exécutez

sudo make install