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és jusqu’à présent font partie du cadre de traitement. C’est-à-dire que ce sont des algorithmes natifs implémentés dans le plugin et exécutés par QGIS tout comme le plugin lui-même est exécuté. Cependant, l’une des plus grandes caractéristiques du cadre de traitement est qu’il peut utiliser des algorithmes provenant d’applications externes et étendre les possibilités de ces applications. Ces algorithmes sont intégrés et inclus dans la boîte à outils, de sorte que vous pouvez facilement les utiliser à partir de QGIS, et utiliser les données de QGIS pour les exécuter.

Certains des algorithmes que vous voyez dans la vue simplifiée ont besoin d’applications tierces qui ont besoin d’être installées sur votre système. Un fournisseur d’algorithmes ayant un intérêt particulier est SAGA (Système pour l’Analyse Géospatiale Automatisée). Nous devons d’abord tout configurer pour que QGIS puisse correctement appeler SAGA. Cela n’est pas compliqué, mais il est important de comprendre comment cela fonctionne. Chaque application externe a sa propre configuration et, plus tard dans ce manuel, nous parlerons de certaines autres, mais SAGA va devenir notre support principal et nous allons maintenant en discuter.

Si vous utilisez Windows, la meilleure façon de travailler avec des algorithmes externes est d’utiliser l’installateur indépendant de QGIS. Il fera en sorte d’installer toutes les dépendances requises, y compris SAGA, ainsi si vous l’avez utilisé, il n’y a rien à faire. Vous pouvez ouvrir la boîte de dialogue des paramètres et aller au groupe Pilotes/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’installateur indépendant vous devez alors indiquer le chemin d’accès à votre installation de SAGA (que vous devrez avoir installé indépendamment).

Dans le cas où vous utilisez Linux, vous n’avez pas besoin de mettre le chemin de votre installation SAGA dans la configuration du de l’outil Traitement. À 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_layer.png

La couche en 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, récupéré ensuite 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 un graticule et utilisez les valeurs ci-dessous.

../../../_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.

Note

Avec SAGA >=2.2.3, la commande ajustera automatiquement les valeurs erronées en entrée et vous n’obtiendrez donc pas d’erreur. Afin de provoquer une erreur, indiquez des valeurs négatives pour la division.

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.