Règles de valeur Nodata?


9

Quelles sont les règles arithmétiques qui régissent les valeurs de Nodata? Quelle que soit la façon dont ces valeurs nulles sont définies? J'utilise ArcMap Raster Calculator.

Je pense spécifiquement aux opérations comme 1 * Nodata (ou 1 * null), 1 / Nodata, 1 + Nodata, 1-Nodata, Nodata-1 etc ...


3
les cellules nodata sont ignorées, cependant, vous devez vérifier des opérations spécifiques pour confirmer, par exemple, Divide ignore les cellules nodata, voir resources.arcgis.com/en/help/main/10.2/index.html#//…

3
J'ajouterais simplement que pour toute opération mathématique impliquant un opérande avec NoData, le résultat sera toujours NoData, même si d'autres opérandes ont des valeurs valides.
WhiteboxDev

il peut être utile de noter qu'il existe certains types de cellules nodales qui peuvent être "remplies" en utilisant certaines méthodes d'interpolation. ceci est particulièrement pratique lorsque l'un de vos rasters contient des taches mais que vos autres rasters sont propres.
user1269942

Salut Whitebox, je peux en fait penser à quelques opérations où votre déclaration peut ne pas être tout à fait correcte à 100% (voisinage signifie sur une cellule NoData par exemple). Bien sûr, comme vous le dites, ceux-ci ne peuvent pas être considérés comme des opérateurs purement mathématiques, mais je pense que cela vaut la peine d'être commenté.
Si vous ne savez pas - juste SIG

Réponses:


4

D'accord, personne n'a fourni de réponse à cette question, j'ai donc pensé que j'interviendrais. Je soupçonne que tous les SIG qui prennent en charge la valeur NoData le font exactement de la même manière. Chaque opération mathématique appliquée à une image raster recherche le cas particulier des cellules de grille contenant des valeurs NoData, puis exécute un chemin qui ignore efficacement l'opération et génère une valeur NoData pour la cellule de grille correspondante dans l'image de sortie . Voici un exemple tiré de l' outil Ajouter dans le GIS Whitebox GAT open source:

entrez la description de l'image ici

Soit dit en passant, c'est le code qui est également exécuté si vous ajoutez deux images dans la calculatrice raster de Whitebox. Dans Whitebox, chaque raster peut avoir une valeur NoData unique car elle est spécifiée dans le fichier d'en-tête du raster. En tant que tel, ce n'est pas nécessairement la même chose pour les deux images ajoutées et c'est pourquoi vous voyez les variables noData1 et noData2 définies dans le code ci-dessus. Surtout, vous verrez que lorsque le code parcourt chaque cellule de la grille dans la pile raster, il récupère les deux valeurs dans les images d'entrée correspondantes pour une cellule (z1 et z2), puis vérifie que les deux ne sont pas égales à NoData . Par conséquent, l'ajout ne se produit que si les deux rasters contiennent une valeur valide dans les entrées. Si ce n'est pas le cas, rien n'est entré dans la cellule de grille de sortie. En fait, l'image de sortie a été créée et initialisée avec sa propre valeur NoData, ainsi, en n'entrant pas de valeur ajoutée pour une cellule de la grille (car au moins une des entrées est NoData), la sortie aura également la valeur NoData. Des opérations similaires ont lieu pour chacune des opérations mathématiques et, en fait, la plupart des outils qui impliquent des jeux de données raster en entrée suivront une approche similaire pour traiter le cas spécial des valeurs NoData. Deux exceptions courantes à cette règle selon lesquelles les opérations produisent une valeur NoData pour les entrées NoData se trouvent dans la plupart des SIG duOutils Con et Set Null . L' outil Con d'ArcGIS indique: "Si NoData ne satisfait pas à la, il ne reçoit pas la valeur de la, et il reste NoData." Ainsi, si «NoData» fait partie de l'instruction conditionnelle et une cellule de grille avec cette valeur réduite à «TRUE», une valeur non-NoData peut être sortie. De même, l' outil Définir une valeur nulle génère en fait une valeur non NoData pour les cellules d'entrée contenant NoData.

J'espère que cela vous aide à comprendre le fonctionnement de cette mystérieuse valeur NoData. Et rappelez-vous que zéro n'est pas la même chose que NoData! (Sauf bien sûr, zéro a été marqué comme valeur NoData pour un raster particulier).


3

Chacun de vos exemples, la réponse est en fait NoData

1 * Nodata (ou 1 * null) = NoData

1 / Nodata = NoData

1 + Nodata = NoData

1-Nodata = NoData

Nodata-1 = NoData

Je dois ajouter que de nombreuses opérations vous donnent la possibilité de "sauter" NoData dans une fonction.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.