Scripts sous GRASS

Scripts

La possibilit� d'automatiser des �tapes isol�es est une extension fort utile (m�me pour des d�butants GRASS). Ces scripts doivent �tre �crits au format ASCII sous forme de scripts shell UNIX. Dans ces scripts, les modules GRASS doivent �tre appel�s avec leurs param�tres respectifs et des calculs g�ostatistiques peuvent �tre ex�cut�s de fa�on automatique. En particulier pour les novices, il est important de g�n�rer ces scripts pas-�-pas, en testant au pr�alable la syntaxe des commandes dans la console GRASS. Ensuite la commande UNIX \texttt{\$~history} permet de retrouver et de sauvegarder les commandes ant�rieures (en faisant un copier-coller dans un �diteur de texte � l'aide des boutons de gauche et du milieu de la souris).

Voici un exemple qui doit d�montrer clairement le potentiel de la programmation sous forme de scripts : avec ce script, vous pouvez calculer l'information g�ostatistique globale sur des images raster[1]. Sauvegarder ce script sous le nom, statistics.sh par exemple et r�glez les permissions UNIX avec chmod u+x statistics.sh.

Ce script peut �tre utilis� apr�s avoir lancer GRASS, sp�cifiez le nom de la couche raster � analyser en param�tre. Une version modifi�e du script ci-dessus existe dans GRASS 5 sous le nom r.univar. La sortie du module GRASS r.stats est transf�r�e au programme UNIX awk � l'aide d'un pipe UNIX (repr�sent� par le caract�re '|'). Les calculs sont faits � partir de awk et les r�sultats sont affich�s sur l'�cran.

La meilleure fa�on de comprendre le script GRASS est certainement d'�tudier les nombreux exemples existants. Allez dans le r�pertoire de scripts de votre installation GRASS et �tudiez en quelques uns :

cd $GISBASE/scripts/

Quelques modules GRASS vont vous aider dans vos scripts. Ce sont :

Etudiez leur utilisation dans les scripts GRASS existants afin de comprendre comment fonctionnent ces commandes.

Pour plus d'information sur la programmation shell, consultez la page de manuel de votre shell (sous GNU/Linux il s'agit g�n�ralement du shell bash, alors tapez man bash ou suivez l'un des nombreux liens list�s sur la page Programming Texts and Tutorials.

Utilisation de GRASS en batch

GRASS peut �tre enti�rement contr�l� de fa�on externe par l'interm�diaire de scripts (et par cons�quent ex�cut� automatiquement) en r�glant les variables d'environnement correctes. Il n'existe en effet pas un programme GRASS unique mais en fait, une connexion de modules qui sont ex�cut�s dans un environnement sp�cial. M�me le lancement de GRASS consiste seulement � fixer un certain nombre de variables. Cela aussi peut se faire directement, voici un exemple dans le style "bash-shell".

Apr�s avoir ex�cut� ce script, tous les modules GRASS qui peuvent �tre utilis�s de fa�on non interactive seront disponibles. G�n�ralement, nous pouvons lister les param�tres dont un module a besoin en tapant "-help" (pour acc�der au manuel).

Une fois ces variables fix�es, GRASS peut aussi �tre int�gr� dans des CGI, des programmes Perl et d'autres scripts. Vous pouvez examiner un exemple assez complexe sur internet and other scripts. SlideLinks est un SIG web bas� int�gralement sur des scripts CGI, sur un syst�me de gestion de base de donn�es et sur GRASS.

Depuis la version GRASS 5.0 vous pouvez sauter l'�cran de d�marrage de GRASS en sp�cifiant directement la base de donn�es, la location et le mapset :

grass5 /home/neteler/grassdata/katmandu/innercity

Bien �videmment, cela ne fonctionne que si la location et les autres param�tres sont correctement d�finis.

Notes

[1]

L'exemple de code contenu dans ce chapitre vient de M. Neteler, H. Mitasova, 2002. Open Source GIS: A GRASS GIS Approach.