#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
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