#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: 92
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: 3881
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.
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: 92
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