#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
- Membre
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: Calculatrice raster dans un script python
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


