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

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#1 Sat 08 April 2017 18:49

Thomas Gardes
Juste Inscrit !
Date d'inscription: 16 Oct 2016
Messages: 5

QGIS: Calculatrice raster dans un script python

Bonjour à tous !

Je cherche à utiliser la calculatrice raster de QGIS dans un script python. C'est la première fois que je fais ça et je me suis donc appuyé sur des exemples trouvés sur internet, qui me semblent corrects. Ceci me donne le code suivant :

Code:

entries=[] #initialisation de la liste des entrees 

rast1=QgsRasterCalculatorEntry() #definiton premier raster

rast1.ref = 'rast1' #definir l appellation du premier raster
objBuild=processing.getObject(build['OUTPUT']) #recuperer raster sous forme d objet Qgis (variable build definie precedemment) 
rast1.raster=objBuild #definir le raster
rast1.bandNumber=1 #definir la bande du raster a utiliser
entries.append(rast1) #ajout du raster aux entrees

rast2 = QgsRasterCalculatorEntry() #meme demarche avec deuxieme raster
objBuild2=processing.getObject(road['OUTPUT'])
rast2.ref = 'rast2'
rast2.raster=objBuild2
rast2.bandNumber=1
entries.append(rast2)

output="C:/Users/thoma/addition.tif" #definir chemin du fichier en sortie

calc=QgsRasterCalculator('rast1'+'rast2', output ,'GTiff', objBuild2.extent(), objBuild2.width(), objBuild2.height(),entries) #calculatrice raster
calc.processCalculation() #execution du calcul
print (calc.processCalculation())

Si je comprend bien, au final, un fichier tif correspondant au résultat du calcul devrait être écrit dans le répertoire que j'ai défini. Ce n'est pas le cas pour moi, le fichier ne semble pas s'écrire. J'ai supposé une erreur dans le chemin d'accès, mais différents essais pour corriger ça n'ont rien donné.
Auriez-vous une idée de l'origine du problème ?
A noter que le print du calc.processCalculation me renvoie simplement "4", un integer qui me semble étrange mais que je ne sais pas trop interpréter. D'autres print réalisés à différents endroits du script me semblent par contre donner un résultat cohérent.

Par ailleurs, si vous avez une solution pour faire en sorte que la sortie de la calculatrice soit plutôt stockée comme un fichier temporaire et puisse être ré-utilisée dans le script sans forcément être écrite sur la machine de l'utilisateur (sans lui demander de spécifier un chemin d'accès, dans l'idéal...), je suis preneur...

En vous remerciant !

Hors ligne

 

#2 Mon 10 April 2017 00:27

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 726

Re: QGIS: Calculatrice raster dans un script python

Thomas Gardes a écrit:

calc=QgsRasterCalculator('rast1'+'rast2', output ,'GTiff', objBuild2.extent(), objBuild2.width(), objBuild2.height(),entries)


Le code 4 signifie une erreur "ParserError" d après la doc. Au lieu de 'rast1'+'rast2' mettez le + à l interieur : 'rast1 + rast2'

Cordialement,

Hors ligne

 

#3 Mon 10 April 2017 10:11

Thomas Gardes
Juste Inscrit !
Date d'inscription: 16 Oct 2016
Messages: 5

Re: QGIS: Calculatrice raster dans un script python

En effet, c'était bien ça ! Merci beaucoup !

Hors ligne

 

Pied de page des forums

Powered by FluxBB