Objectif: réaliser une analyse réseau (network analysis) automatiquement avec GRASS 6.x
Voici la procédure détaillée d'analyse réseau:
Comme vous le constatez, la procédure est assez longue. Heureusement, il est possible de l'automatiser en utilisant des scripts bash ( language utilisé par la console d'ubuntu).
Il est possible d'automatiser la procédure en lançant un script bash depuis la console linux et sans avoir à ouvrir GRASS, votre analyse réseau est effectuée !
- L'utilisation des script suivants implique que vous disposiez d'au moins une couche du réseau routier et d'une couche point chargés dans un mapset GRASS -
1/ Fichier "job.sh"
------------------------------------------------------------------------------------------
#!/bin/sh
# analyse reseau automatisée sous grass
#initialisation variables
echo -n "Entrez le nom de la couche reseau (routes) : "
read reseau
echo -n "Entrez le nom de la couche point : "
read point
echo -n "Entrez les iso-couts (ex: 100,1000,10000 m) : "
read couts
echo -n "Entrez le nom de la couche finale : "
read resultat
cat="0-99999"
#préparation analyse
#src: http://www.ing.unitn.it/~grass/docs/tutorial_64_en/htdocs/esercitazione/network_analysis/
v.net --overwrite --verbose input=$reseau points=$point output=network_tmp operation=connect thresh=500
v.db.connect -p map=network_tmp
v.db.connect -o --verbose map=network table=$point layer=2
#creation lignes de couts
v.net.iso --overwrite --verbose input=network_tmp output=$resultat ccats=$cat costs=$couts
#suppression_fichier_temporaire
g.remove vect=network_tmp
------------------------------------------------------------------------------------------
2/ préparez votre fichier "analyse_reseau.sh"
------------------------------------------------------------------------------------------
#!/bin/sh
# analyse reseau automatisée sous grass_lancement
echo " Script BASH: Réaliser une analyse reseau automatisée sous GRASS "
echo ""
echo -n "Entrez le nom de la région : "
read region
echo $region
echo -n "Entrez le nom du jeu de donnée : "
read dataset
echo $dataset
#permissions pour executer le script
chmod u+x ./bash_job.sh
export GRASS_BATCH_JOB=./bash_job.sh
grass "chemin vers votre dossier GRASS"/$region/$dataset/
unset GRASS_BATCH_JOB
------------------------------------------------------------------------------------------
Le premier fichier "job.sh" contient les instructions d'analyse GRASS.
Le fichier "analyse_reseau.sh" permet de programmer et lancer GRASS afin qu'il exécute les instructions contenues dans "job.sh". (il vous suffit simplement de personnaliser le code au niveau de "chemin vers votre dossier GRASS"
Pour lancer l'analyse, placez vous dans le répertoire contenant vos scripts:
> bash analyse_reseau.sh
L'analyse est éffectuée sous GRASS. Une fois terminée, GRASS se ferme, votre carte est prete.
Bien sur, il est possible de modifier, compléter ces scripts afin des adapter à vos besoins.
Aucun commentaire:
Enregistrer un commentaire