Des valeurs NoData reconnues dans le raster dans ArcGIS Desktop mais ne suivant pas les règles de symbologie?

9

J'ai un raster GeoTIFF dans ArcGIS Desktop, qui peut être téléchargé à partir des deux liens suivants:

  1. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tfw
  2. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tif

Si vous les chargez dans ArcGIS Desktop, vous verrez de grandes zones uniformes. En cliquant sur ces zones avec l'outil Info, la valeur en pixels est Aucune donnée. Cependant, lorsque vous choisissez d'afficher les valeurs No Data comme transparentes (ou comme n'importe quelle couleur) dans les préférences Symbologie pour la couche, les valeurs No Data ne suivent pas cette règle.

Fait intéressant, les valeurs No Data en dehors de la zone principale de l'image suivent la règle (définissez la couleur sur rouge pour le voir), mais pas celles à l'intérieur de l'image.

J'ai vraiment eu du mal à essayer de résoudre ce problème - et je ne sais pas du tout comment le faire.

Quelqu'un a-t-il une idée?

robintw
la source

Réponses:

3

J'ai téléchargé le fichier et l'ai converti en un tableau numpy et quand je boucle sur les valeurs du tableau, je peux voir que j'obtiens -3.40282347e + 38 et NaN en tant que valeurs nodata. Vous pouvez peut-être les reclasser en valeurs dans l'un ou l'autre, de sorte que toutes les valeurs de nodata soient les mêmes.

Vous pouvez utiliser l'outil de reclassification, arcpy.sa.setnullou je suis sûr que numpy a des fonctions fantaisistes qui pourraient le faire si vous convertissez l'image en un tableau numpy.

Gdal translate pourrait également être utile si vous souhaitez emprunter le chemin open source.

dango
la source
Avez-vous une idée de comment reclasser ces valeurs? Je n'arrive pas à faire en sorte qu'ArcGIS reconnaisse quoi que ce soit pour NaN, et il ne semble pas non plus traiter de la valeur très faible (essentiellement NaN - car c'est la plage de flottants dans Arc).
robintw
Si c'était moi, je convertirais chaque image en un tableau numpy, passerais en boucle sur le tableau en convertissant toutes les valeurs nodata en -9999 ou autre, puis je ramènerais le tableau en une image. Je suis sûr qu'il existe une façon plus intelligente de le faire, mais je n'ai pas beaucoup travaillé avec numpy.
dango
si vous décidez d'utiliser la méthode que j'ai suggérée ci-dessus, vous pouvez envisager d'utiliser la fonction python math.isnan () pour identifier les valeurs NaN.
dango
4

Il y a définitivement quelque chose de très funky avec ce fichier / ces données.

Vous avez raison dans le fait qu'ArcGIS affiche deux types différents de NoData même si les attributs affichent tous deux la même chose. QGIS le fait aussi. Je n'ai absolument aucune idée de ce qui se passe dans les données (mais je suppose qu'il y a deux valeurs "noData" différentes utilisées dans les coulisses, l'une peut être "nulle" et l'autre "-9999" par exemple) mais je serais intéressé savoir, peut-être que quelqu'un d'autre peut nous éclairer.

Cependant, il existe quelques solutions possibles:

Exporter les données - Si vous exportez les données en veillant à "utiliser le rendu", cela commencera à fonctionner correctement. Si vous ne cochez pas le rendu d'utilisation, votre nouveau fichier aura les mêmes problèmes. À la baisse, cela les convertit en données 8 bits (0-255). Un autre outil peut être capable de le restituer tout en conservant les données sous forme de flottants 32 bits.

Utiliser classifié - La méthode de symbologie classée semble afficher correctement les deux types NoData (c'est-à-dire comme la même chose), utilisez-les si possible et vous ne voulez pas modifier les données. Stretched montre votre bug signalé et "Valeurs uniques" ne montre tout simplement rien.

(Utilisation d'ArcGIS 9.3.1)

SIG-Jonathan
la source
Merci pour la réponse - je suis content que ce ne soit pas seulement moi qui pense que c'est bizarre. Malheureusement, la symbologie classée ne conviendra pas à ce que je dois faire, mais je ferai l'exportation en utilisant un moteur de rendu pour le moment. Ce qui est frustrant, c'est que cela se produit pour tous les fichiers que je reçois du satellite MODIS en utilisant le système de traitement en ligne MODIS. Je pense que le problème pourrait bien être de deux types différents de NoData - je pense que dans ce cas, ils peuvent être "null" et NaN, mais je ne sais pas.
robintw
Je pense que «Use Classified» est de loin la moins coûteuse de toutes les techniques suggérées pour contourner ce bogue. Vous pouvez approximer presque tout ce que vous pouvez faire dans le menu «Étiré» du menu «Classé».
Alexander
2

Je viens de rencontrer le même problème - et j'ai trouvé une "solution". Si vous multipliez le raster par 1,0 avec la calculatrice raster, ArcMap reconnaîtra les valeurs NoData.

Hellski
la source
1

Eu le même problème avec les grilles ESRI 32 bits. Les 16 bits ont bien fonctionné et NoData était invisible mais s'afficherait en noir pour les 32 bits. Corrigé en exportant individuellement et en changeant la valeur nodata à -32768 par opposition au -2147483647 que les 32 bits ont normalement.

Kai
la source
1

J'ai eu le même problème. Ce qui a fonctionné pour moi a été d'exporter le raster dans le dossier de géodatabase. Si le raster est exporté vers une géodatabase, arcmap affiche correctement les valeurs NoData.

Fernando Ribeiro
la source
0

J'ai un problème similaire avec les images Landsat 8-OLI lors de l'exécution d'une mosaïque. Les valeurs "NoData" à l'extérieur (arrière-plan) ne font rien, mais tout bloc de données manquant, comme la suppression des nuages ​​/ des ombres à l'intérieur, changera la couleur de la couche de mosaïque de référence. Je l'ai réalisé dans ERDAS et Arcmap, tous deux le même résultat. Pour une raison quelconque, cela a un effet sur la symbologie, mais si vous utilisez l'outil "Identifier", les valeurs des pixels sont correctes. Si vous recherchez des résultats et que vous ne les affichez pas, ça devrait aller.

Zman3
la source