#1 Mon 04 May 2015 09:37
- Nana92410
- Participant occasionnel
- Date d'inscription: 13 Apr 2015
- Messages: 25
QGIS: Syntaxe " if " dans calculatrice raster ?
Bonjour,
j'aimerais savoir comment dire " if " à la calculatrice raster de Qgis !!
J'aimerais effectuer cette opération
couche1 = if (9000, 1)
if (900, 2 )
if (90,3 )
En gros. Mon fichier raster est trop imposant pour passer dans R donc j'aimerais remplacer les 9000000 par des 1, 2 ,3 ect ..... Mais Qgis ne semble pas reconnaître le "if "
Si quelqu'un connait la bonne syntaxe je suis preneuse .......
Merci !!!
Nanouille
Hors ligne
#2 Tue 05 May 2015 01:47
Re: QGIS: Syntaxe " if " dans calculatrice raster ?
Bonjour,
Je n'ai pas la syntaxe sous la main mais il me semble qu'il faut jouer avec les opérateurs booléens.
Par contre, pas sûr d'avoir saisi ce que vous voulez faire exactement avec vos 9000000 ??
De mémoire, sur le premier exemple que vous avez cité, il faut faire une addition de ce type : (valeur = 9000)*1 + (valeur = 900)*2 + (valeur =90)*3
Si valeur est égale à x, alors on aura sur la zone ciblée 1*1, ou 1*2,etc.
Si valeur est différente, le booléen donnera 0
Dernière modification par Robin (Tue 05 May 2015 01:47)
Hors ligne
#3 Tue 05 May 2015 09:38
- Nana92410
- Participant occasionnel
- Date d'inscription: 13 Apr 2015
- Messages: 25
Re: QGIS: Syntaxe " if " dans calculatrice raster ?
Bonjour,
super je vais essayer ça cet aprés-midi !! Merci bien !!
En fait j'ai fait un raster à partir d'un vecteur ou chaque typologie est égale à 10^1 à 10^8 car aprés je fais la différence de chaque année par exemple 2008 - 2009. Du coup au depart j'avais mis 1,2,3 ... Mais j'avais des combinaisons qui avait la même valeur donc ça n'allait pas. Seulement maintenant je pense que j'ai des chiffre trop grand car je ne peux pas ouvrir mon fichier dans R ........... ><
Je vais essayer ce que vous m'avez dit merciii
Nanouille
Hors ligne
#4 Thu 07 May 2015 17:44
Re: QGIS: Syntaxe " if " dans calculatrice raster ?
Bonjour,
J'ai retrouvé une formules qui permet de faire la reclassification de pentes (pour exemple) :
Code:
0*( pente@1 >= 0 AND pente@1 < 2) + 2*( pente@1 >= 2 AND pente@1 < 5)+ 5*( pente@1 >= 5 AND pente@1 < 10)+ 10*( pente@1 >= 10)
Pentes de 0 à 2 : valeur 0
Pentes de 2 à 5 : valeur 2
Pentes de 5 à 10 : valeur 5
Pentes > 10 : valeur 10
Dernière modification par Robin (Thu 07 May 2015 17:44)
Hors ligne
#5 Mon 22 May 2023 17:02
- HockYan
- Participant occasionnel
- Date d'inscription: 21 Apr 2023
- Messages: 17
Re: QGIS: Syntaxe " if " dans calculatrice raster ?
Bonjour, je relance le sujet.
J'ai un raster complet avec des valeurs différentes et un autre avec la même emprise mais découper en fonction d'une couche de masque. Sur le raster découpé, j'ai mis la valeur 10 de partout.
Ce que je cherche à réaliser c'est fusionner les deux raster en gardant la valeur 10 sur le raster découpé et les valeurs initiales sur mon raster de base.
Donc, quand mon raster découpé est no data alors il me mets la valeur de mon raster de base. Par contre, quand il y a une valeur sur mon raster découpé alors il garde cette valeur.
Pour cela, j'utilise la calculatrice raster et je mets le code suivant :
Code:
("monraster1@1"<= -3.40282e+38)*"monraster2@1" + ("monraster1@1" > 0)*"monraster1@1"
La valeur -3.40282e+38 est égal à la valeur no data de mon raster découpé.
Le problème quand je réalise ce code c'est qu'il me sort que mon raster découper et pas la fusion des deux.
Je ne sais pas si c'est du à mes rasters ou au code en lui-même.
Merci pour vos réponses.
Hors ligne
#6 Tue 23 May 2023 10:38
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: QGIS: Syntaxe " if " dans calculatrice raster ?
Bonjour,
La syntaxe me semble bonne. Revérifiez peut-être les valeurs de monraster1 si elles sont bien supérieures à 0, ou mettez la seconde condition à >-3.40282e+38. Ou c'est peut-être l'affichage des valeurs du raster en sortie qui est à recalibrer?
Hors ligne
#7 Fri 26 May 2023 12:16
- HockYan
- Participant occasionnel
- Date d'inscription: 21 Apr 2023
- Messages: 17
Re: QGIS: Syntaxe " if " dans calculatrice raster ?
Bonjour,
Après plusieurs essais, j'ai réussi à fusionner mes deux rasters.
J'ai effectué le code suivant :
Code:
(("monraster1@1">0)*"monraster1@1") + (("monraster1@1" <= 0)*"monraster2@1")
Ce code me permet de faire la fusion de mes deux rasters en gardant la valeur de mon raster 1 s'il est au-dessus de 0 sinon il prend la valeur de mon raster 2.
Important, il faut enregistrer votre couche auparavant dans un dossier, sinon cela ne fonctionne pas.
En espérant que cela va aider.
Bonne journée.
Hors ligne