Module réalisé par Matteo Ghetta - financé par Scuola Superiore Sant’Anna
Processing permet d’écrire et de faire tourner des scripts dans QGIS.
Warning
R doit être installé sur votre ordinateur et la variable PATH doit être correctement configurée. De plus, Processing ne fait qu’utiliser les progiciels de R, et ne peut donc pas les installer. Soyez donc certain d’installer les progiciels externes directement dans R. Voir aussi le chapitre correspondant dans le manuel de formation.
Note
Si vous avez des problèmes avec certains progiciels, c’est peut être lié à l’absence de progiciels obligatoires requis par Processing, comme “sp”, “rgdal” et “raster”.
Ajouter un script est très simple. Ouvrez la boîte d’outils de Processing et cliquez simplement sur R ‣ Outils ‣ Créer un nouveau script R.
Note
Si vous ne pouvez pas voir R dans Processing, vous devez l’activer dans Processing ‣ Options ‣ Pilotes
Il ouvre une fenêtre d’édition de script dans laquelle vous devez fournir quelques paramètres avant de pouvoir ajouter le corps du script.
Dans ce tutoriel nous allons créer une boîte à moustaches à partir d’un champ d’une couche vertorielle.
Ouvrez le projet QGIS r_intro.qgs.
Ouvrez l’éditeur et commencez l’écriture au début.
Vous devez définir certains paramètres avant le corps du script :
le nom du groupe auquel votre script appartiendra
##plots=group
de sorte que vous trouverez votre script dans le groupe graphiques de la boîte d’outils de Processing.
vous devez dire à Processing que vous voulez afficher un graphique (comme dans cet exemple)
##showplots
De cette façon vous verrez le graphique dans le Visualiseur de Résultats de Processing.
Vous devez aussi dire à Processing le type de données que vous allez utiliser. Dans cet exemple nous voulons créer un graphique à partir d’un champ d’une couche vectorielle.
##Layer=vector
Processing sait maintenant que l’entrée est un vecteur. Le nom * Couche* n’est pas important, ce qui compte c’est le paramètre vectorielle.
Enfin, vous devez fournir le champ en entrée de la couche vectorielle que vous voulez afficher
##X=Field Layer
Donc Processing sait que vous avez appelé X le Champ de la Couche.
Maintenant que vous avez établi l’en-tête du script vous pouvez ajouter la fonction
boxplot(Layer[[X]])
Notez que Boîte à Moustaches est le nom de la fonction R qui appelle Couche comme jeu de données et X en tant que champ du jeu de données.
Warning
Le paramètre X est entre double crochets [[]]
Le script complet se présente ainsi
##Vector processing=group
##showplots
##Layer=vector
##X=Field Layer
boxplot(Layer[[X]])
Sauvez le script dans le répertoire suggéré par Processing. Le nom que vous choisissez sera celui du script que vous trouverez dans la boîte d’outils de Processing.
Note
Vous pouvez sauver le script dans un autre répertoire, mais Processing n’est pas capable de le charger automatiquement et vous devrez charger tous les scripts manuellement
Maintenant exécutez le en utilisant le bouton en haut de la fenêtre de l’éditeur :
Autrement, une fois que la fenêtre de l’éditeur a été fermée, utilisez la boîte de texte de Processing pour trouver votre script :
Vous pouvez maintenant fournir les paramètres requis dans la fenêtre de l’algorithme de Processing :
Choisissez points tests comme Couche
Renseignez le champ X avec le paramètre value
Cliquez sur Lancer
La Fenêtre des résultats devrait s’ouvrir automatiquement, sinon, cliquez simplement sur Processing ‣ Visualiseur de Résultats....
C’est le dernier résultat que vous verrez :
Note
Vous pouvez ouvrir, copier et sauver l’image avec un clic droit sur le graphique
Avec un script R vous pouvez aussi créer un vecteur et l’ajouter automatiquement à QGIS.
L’exemple suivant est tiré du script Échantillonnage aléatoire de grille que vous pouvez télécharger de la collection en ligne R ‣ Outils ‣ Télécharger des scripts R à partir de la collection en ligne.
Le but de l’exercice est de créer un vecteur de points aléatoires dans l’emprise d’une couche en utilisant la fonction spsample du progiciel sp.
Comme auparavant, nous devons définir certains paramètres avant le corps du script :
définissez le nom du groupe dans lequel le script sera mis, par exemple Analyses de motif de points
##Point pattern analysis=group
définissez la couche qui contiendra les points aléatoires
##Layer=vector
définissez le nombre de points qui seront créés
##Size=number 10
Note
10 sera la valeur par défaut. Vous pouvez modifier ce chiffre ou vous pouvez laisser le paramètre sans valeur par défaut
spécifie que la sortie est une couche vectorielle
##Output= output vector
Vous pouvez maintenant ajouter le corps de la fonction :
exécute la fonction spsample
pts=spsample(Layer,Size,type="random")
de cette façon la fonction récupère l’emprise de la Couche, le nombre de points est dérivé du paramètre Taille et le type de création des points est aléatoire
Écrit la ligne qui contient les paramètres en sortie
Output=SpatialPointsDataFrame(pts, as.data.frame(pts))
Le script complet devrait être :
Sauvez-le et exécutez-le, en cliquant sur le bouton Lancer.
Dans la nouvelle fenêtre, entrez les bons paramètres :
et cliquez sur Lancer.
Les points en résultant seront affichés sur le canevas de carte
Veuillez noter que Processing utilise une syntaxe spéciale pour obtenir les résultats de R :
> avant votre commande, comme pour >lillie.test(Couche[[Champ]]) qui veut dire que le résultat devrait être envoyé sur la sortie de R (Visionneur de Résultat)
+ après un graphique pour permettre la superposition de graphiques. Par exemple plot(Couche[[X]], Couche[[Y]]) + abline(h=mean(Couche[[X]]))