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

17.8. Lancement d’un algorithme externe

Note

Dans cette leçon, nous verrons comment utiliser des algorithmes qui dépendent d’une tierce application, en particulier SAGA, qui est l’un des principaux fournisseurs d’algorithmes.

Tous les algorithmes que nous avons exécuté jusqu’à maintenant font partie du module de traitements. Autrement dit, ce sont des algorithmes natifs implémentés dans l’extension et lancé par QGIS tout simplement comme l’extension elle-même est lancée. Cependant, une des plus grandes caractéristiques du module de traitements est qu’il peut utiliser des algorithmes venant d’applications externes et étendre les possibilités de ces applications. Ces algorithmes sont emballés et inclus dans la boîte à outils, donc vous pouvez facilement les utiliser depuis QGIS, et utiliser des données QGIS pour les lancer.

Certains des algorithmes que vous voyez dans la vue simplifiée nécessitent des applications tierces pour être installés sur votre système. Un fournisseur d’algorithme d’intérêt spécial est SAGA (Système pour Analyses Géospatiales Automatisées). À la fin de cette leçon, nous lancerons un algorithme appelé Indice de convergence, qui est fourni par SAGA et calcule une mesure morphométrique à partir d’un MNE. Mais premièrement, nous devons tout configurer afin que QGIS puisse correctement appeler SAGA. Ce n’est pas difficile, mais c’est important de comprendre comment cela fonctionne. Chaque application externe a sa propre configuration, et plus loin dans ce même manuel nous discuterons de certaines d’entre elles, mais SAGA sera notre backend principal, c’est pourquoi nous en discuterons ici.

Si vous êtes sur Windows, la meilleure façon de travailler avec des algorithmes externes est d’installer QGIS en utilisant l’installeur OSGeo4W. Il prendra soin d’installer toutes les dépendances nécessaires, SAGA inclus, donc si vous l’avez utilisé, il n’y a rien d’autre à faire. Vous pouvez ouvrir la boîte de dialogue des préférences et vous rendre au groupe Fournisseurs/SAGA.

../../../_images/saga_config.png

Le chemin SAGA devrait déjà être configuré et pointer vers le dossier où SAGA est installé.

Si vous avez installé QGIS sans utiliser l’installeur OSGeo4W, alors vous devez entrer le chemin vers votre installation SAGA (que vous devez installer séparément) ici. La version requise est SAGA 2.1

Dans la cas où vous utilisez Linux, vous n’avez pas besoin de mettre le chemin de votre installation SAGA dans la configuration du processus. À la place, vous devez installer SAGA et être sûr que le dossier SAGA est dans le PATH, de sorte qu’il puisse être appelé depuis la console (ouvrez simplement une console et tapez saga_cmd pour le vérifier). Sous Linux, la version ciblée pour SAGA est aussi 2.1, mais dans certaines installations (comme par exemple le OSGeo Live DVD) vous ne pourriez avoir que la version 2.0.8 de disponible. Il y a des compilations 2.1 disponibles, mais elles ne sont généralement pas installées et peuvent avoir quelques problèmes, donc si vous préférez utiliser la version 2.0.8 plus courante et plus stable, vous pouvez le faire en activant la compatibilité 2.0.8 dans la boîte de dialogue de configuration, sous le groupe SAGA.

../../../_images/enable208.png

Une fois que SAGA est installé, vous pouvez lancer un algorithme SAGA en double-cliquant sur son nom, comme avec n’importe quel autre algorithme. Étant donné que nous utilisons l’interface simplifiée, vous ne savez pas quels algorithmes sont basés sur SAGA ou dans une autre application externe, mais si vous arrivez à double–cliquer sur un des algorithmes et que l’application correspondante n’est pas installée, vous verrez quelque chose comme ceci.

../../../_images/missing_saga.png

Dans notre cas, et en supposant que SAGA est correctement installé et configuré, vous ne devriez pas voir cette fenêtre, et vous obtiendrez à la place la boîte de dialogue des paramètres.

Essayons avec un algorithme SAGA de base, celui nommé Séparer une couche de formes aléatoirement.

../../../_images/split.png

Utilisez la couche de points dans le projet correspondant à cette leçon comme entrée, et les valeurs de paramètre par défaut, et vous obtiendrez quelque chose comme ceci (la séparation est aléatoire, donc votre résultat pourrait être différent).

../../../_images/split_layer1.png

La couche d’entrée a été séparée en deux couches, chacune avec le même nombre de points. Ce résultat a été calculé par SAGA, et ensuite repris par QGIS et ajouté au projet QGIS.

Si tout va bien, vous ne remarquerez aucune différence entre cet algorithme SAGA de base et un des autres algorithmes que nous avons précédemment lancé. Cependant, SAGA peut, pour une raison quelconque, ne pas être capable de produire un résultat et ne pas pouvoir générer le fichier que QGIS attend. Dans ce cas, il y aura des problèmes en ajoutant le résultat au projet QGIS, et un message d’erreur comme celui ci-dessous.

../../../_images/missing_result.png

Ce type de problème peut se passer, même si SAGA (ou n’importe quelle autre application que nous avons appelé à partir du module de traitements) est correctement installé, et il est important de savoir comment gérer ces erreurs. Produisons un de ces messages d’erreur.

Ouvrez l’algorithme Créer une grille à partir de l’emprise et utilisez les valeurs suivantes.

../../../_images/create_graticule.png

Nous utilisons les valeurs de largeur et de hauteur qui sont plus grandes que l’emprise indiquée, donc SAGA ne peut pas produire de sortie. En d’autres mots, les valeurs des paramètres sont fausses, mais elles ne sont pas vérifiées jusqu’à ce que SAGA les obtienne et essaie de créer la grille. Tant qu’il ne peut pas la créer, il ne produira pas la couche attendue, et vous verrez un message d’erreur comme montré ci-dessus.

La compréhension de ce type de problèmes vous aidera à les résoudre et à trouver une explication à ce qu’il se passe. Comme vous pouvez le voir dans le message d’erreur, un test est effectué pour vérifier que la connexion avec SAGA fonctionne correctement, vous indiquant qu’il peut y avoir un problème dans comment l’algorithme a été exécuté. Cela s’applique non seulement à SAGA, mais aussi à d’autres applications externes.

Dans la prochaine leçon, nous introduirons le journal de progression, où l’information à propos des commandes lancées par les géoalgorithmes est gardée, et vous verrez comment obtenir plus de détail lorsque des problèmes comme ceci apparaissent.