Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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 smile

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 smile


Nanouille

Hors ligne

 

#4 Thu 07 May 2015 17:44

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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: 3945

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

 

Pied de page des forums

Powered by FluxBB