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 Tue 25 August 2020 11:55

MonsieurJ
Participant occasionnel
Lieu: Montpellier
Date d'inscription: 8 Dec 2016
Messages: 28

QGIS: NoData et calculatrice raster une relation complique

Bonjour,

Je viens vers vous à la recherche d'une explication plus que d'une solution. Sur mon projet actuel je suis amené à travailler énormément avec la calculatrice raster. Travaillant sur des indices bioclimatiques je me retrouve souvent à faire des mathématiques simples sur mes rasters.
Afin de travailler proprement je m'assure qu'une valeur no data (-9999) soit toujours défini pour combler les contours de mes zone d'étude (des département) et que mes rasters présentent bien la même étendue (même coordonnées pour les pixels de coins, d'origines, même nombre de pixels en X et en Y, et même résolution).
Nous somme d'accord que sur le principe une valeur NoData indique que le pixel est à ignorer dans les calculs, et que la valeur du pixel résultant d'un calcul sur celui-ci devrait être une valeur NoData aussi ?
Je ne comprend donc pas vraiment pourquoi lors d'une division d'un raster A par un raster B, ayant la même valeur de NoData sur des pixels alignés, j'ai en résultat une valeur de 1. Attention j'ai quand même fait des math en école primaire et je comprend que divisé un nombre par lui même est égal à 1, mais ces pixels étant de la valeur du NoData devrait être ignoré dans le calcul, non ?

Il y a surement une explication bête et méchante, je vous remercie d'avance si vous pouvez me l'apporter.

Monsieur J

Hors ligne

 

#2 Wed 26 August 2020 12:07

Julien81
Participant assidu
Lieu: Giroussens
Date d'inscription: 14 Jan 2019
Messages: 181

Re: QGIS: NoData et calculatrice raster une relation complique

Bonjour,

à mon sens les valeurs NoData sont des valeurs "comme les autres" dans une donnée matricielle (on est d'ailleurs pas obligé de la spécifier à la création de la donnée), il s'agit donc plus d'une sorte de balise numérique permettant d'identifier des zones non couvertes par un échantillonnage, via une valeur identique. Du coup concernant les calculs il me semble tout à fait normal qu'elle soit prise en compte, l'utilité viens plutôt pour faire de l'affichage et ne pas avoir à la redéclarer à chaque ouverture pour un fichier donné, ainsi identifier automatiquement les cellules à écarter/rendre transparentes pour le rendu par exemple.

Peut-être fais-je fausse route auquel cas j'espère que quelqu'un viendra corriger et compléter!

Mais pour moi donnée matricielle/raster = grille de cellule avec valeur pour chaque, nodata=valeur particulière identifiée mais non écartée.
Donc votre raisonnement ensuite sur le calcul et la valeur 1 suite à division me parait tout à fait cohérent^^.

Blague à part si vous souhaitez identifier dans votre résultat de calcul matriciel les 1 issus des nodata vs 1 issu des données "mesurées" peut-être vectoriser en dur l'emprise : soit de vos cellules contenant les données à considérer soit de vos nodata du fichier raster pour ensuite réaffecter une nodata au raster de sortie.
Là aussi il y peut-être d'autres méthodes!

Cordialement

Hors ligne

 

#3 Wed 26 August 2020 15:06

Renaud
Membre
Lieu: Ploemeur (56)
Date d'inscription: 9 Mar 2006
Messages: 2315

Re: QGIS: NoData et calculatrice raster une relation complique

Bonjour,

Même avis que Julien.

2 solutions :
- Refaire les calculs en remplaçant la calculatrice raster de QGIS par la fonction 'Grid calculator' de Saga, avec l'option 'use no data' = FALSE

- Utiliser la fonction 'Reclassify' de Saga sur chaque raster : data -> 1, nodata -> 0.
   Puis produit des rasters pour obtenir les pixels pour lesquels on a aucun raster nodata
   Enfin fonction 'Grid masking' pour limiter les résultats aux pixels sans nodata.


Renaud Mouche

Hors ligne

 

Pied de page des forums

Powered by FluxBB