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

Printemps des cartes 2024

#1 Tue 11 August 2020 11:41

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

QGIS: Seuillage dans un Raster

Bonjour,

J'ai une image NDVI dont les valeurs s'étendent de -0.73 à + 0.6.
J'ai seuillé son histogramme de +0,1 à +0.6 pour ne faire apparaître que la végétation mais ce n'est que visuel, je souhaiterais enregistrer une image dont tous les pixels de valeur < à 0.1 soient à 0 et dont tous les pixels de valeur >= à 0.6 gardent leur valeur initiale.
J'ai fait des essais sur la calculatrice raster (if (valeur_couche) < 0.1 then (valeur_couche) = 0) mais cette syntaxe n'est pas prévue dans la calculatrice raster.
Je suis preneur d'une solution. Merci d'avance.

Hors ligne

 

#2 Tue 11 August 2020 13:46

Joseph Jacquet
Participant actif
Date d'inscription: 19 Feb 2020
Messages: 88

Re: QGIS: Seuillage dans un Raster

Bonjour,

Si tu es sur QGIS tu peux utiliser la fonction r.reclass de GRASS qui permet d'affecter une nouvelle valeur aux pixels suivant leur valeur initiale mais la fonction ne prend que des entiers ou elle arrondie les valeurs décimales ce qui ne pas possible dans ton cas.
Tu pourrais utiliser la calculatrice raster pour donner des valeurs entières à tes pixels (*100 par exemple) pour passer tes indices 0,6 vers 60 (ceux ayant deux décimales seraient entiers également 0,62 deviendrait 62 et non 6,2 en multipliant simplement par 10) avec la calculatrice raster.

À ce moment, tu pourras utiliser la fonction r.reclass :


10 thru 60 = 1
* = 0

Les valeurs de 10 à 60 soit 0,1 à 0,6 deviennent 1 et le reste (*) devient 0.

Il existe peut-être une solution plus simple mais avec le problème d'entier avec r.reclass, je ne vois que ça en réfléchissant rapidement.

J'espère que cela pourra t'aider !

JJ

Dernière modification par Joseph Jacquet (Tue 11 August 2020 13:47)

Hors ligne

 

#3 Tue 11 August 2020 14:46

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3803

Re: QGIS: Seuillage dans un Raster

Bonjour

J'ai fait des essais sur la calculatrice raster (if (valeur_couche) < 0.1 then (valeur_couche) = 0) mais cette syntaxe n'est pas prévue dans la calculatrice raster.


voir https://docs.qgis.org/3.10/fr/docs/user … l#examples

Hors ligne

 

#4 Tue 11 August 2020 17:39

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Seuillage dans un Raster

Merci à vous deux.
La solution toute simple proposée dans la doc QGIS fonctionne.
Concernant ta méthode Joseph, elle est également intéressante, mais lorsque les valeurs du NDVI sont > à 0.1, je souhaite garder les valeurs brutes. Alors que là, si j'ai bien compris, on se retrouverait avec une image binaire, 0 pour toutes valeurs <0.1 et 1 si >0.1

Hors ligne

 

#5 Wed 12 August 2020 08:36

Joseph Jacquet
Participant actif
Date d'inscription: 19 Feb 2020
Messages: 88

Re: QGIS: Seuillage dans un Raster

Oui effectivement, j'avais mal lu ta demande initiale qui était de garder la valeur initiale des autres pixels, je m'étais arrêté à si <0,1 alors c'est égal à zéro, j'en ai déduis le reste... Si la solution avec la calculatrice raster fonctionne, c'est super !

Hors ligne

 

Pied de page des forums

Powered by FluxBB