#1 Mon 30 May 2011 22:27
- GildasP
- Juste Inscrit !
- Date d'inscription: 15 Apr 2011
- Messages: 1
[GRASS] Vitesse de calcul et utilisation des MASKs
Bonjour
J'ai un problème à propos du fonctionnement de GRASS avec les MASKs et les régions : Lorsque au sein d'une boucle dans un script on définit une région plus petite pour les calculs, en tient-il vraiment compte?
En effet dans le script je lance le calcul sur une grand région mais ensuite je boucle sur toutes les cellules d'un raster et à chaque fois je définit une région et un MASK correspondants au buffer autour du pixel considéré.
Pour faire un tour de boucle (entre t1 et t2) il met 60s pour faire le calcul quand je définit une grande région initialement et 1s quand initialement je rentre une petite région; c'est le même pixel qui est analysé dans la boucle donc le MASK est le même quelque soit la région définie initialement. Pourquoi GRASS ne met pas le même temps pour balayer le même nombre de pixels ?
Dans la boucle il ne fait que des opérations sur des rasters, le masque devrait donc fonctionner.
Merci de m'aider à comprendre ce qui ne va pas à moins que ce soit un bug de GRASS. J'ai des grandes régions à traiter et si je dois passer mon temps derrière l'ordi pour lancer le calcul sur des petites régions redécoupées, l'utilisation du script perd son intérêt.
Cordialement
Structure du script :
g.region -s region=magranderegion res=25 # région de 73000 ha
-initialisation des raster stockant les données
-initialisation du compteur de la boucle
début boucle while
-extraction d'un pixel et création d'un buffer autour du pixel
g.copy -o rast=buffer,MASK #masque de 200 ha
g.region rast=buffer
t1=$(date +%s) #initialisation d'un chronomètre
-Les manips (r.mapcalc, r.cost, r.stats...) # uniquement des manips raster
t2=$(date +%s)
DT=$(expr $t2 - $t1) # temps de traitement des données sur le masque
g.remove -f rast=MASK
g.region region=magranderegion
ajout des données dans le raster de stockage
Fin de la boucle
Sortie finale
Hors ligne