banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

#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

 

Pied de page des forums

Powered by FluxBB