NoData-Werte, die im Raster in ArcGIS Desktop erkannt wurden, aber nicht den Symbologieregeln entsprechen?


9

Ich habe ein GeoTIFF-Raster in ArcGIS Desktop, das über die folgenden zwei Links heruntergeladen werden kann:

  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

Wenn Sie diese in ArcGIS Desktop laden, werden große einheitliche Bereiche angezeigt. Wenn Sie mit dem Info-Werkzeug auf diese Bereiche klicken, wird der Pixelwert als Keine Daten angezeigt. Wenn Sie jedoch festlegen, dass in den Symbologieeinstellungen für die Ebene keine Datenwerte als transparent (oder als beliebige Farbe) angezeigt werden, folgen die Werte für keine Daten nicht dieser Regel.

Interessanterweise folgen die Werte "Keine Daten" außerhalb des Hauptbereichs des Bildes der Regel (setzen Sie die Farbe auf Rot, um dies zu sehen), die Werte im Bild jedoch nicht.

Ich habe mich wirklich bemüht, dieses Problem zu beheben - und kann überhaupt nicht herausfinden, wie es geht.

Hat jemand irgendwelche Ideen?

Antworten:


3

Ich habe die Datei heruntergeladen und in ein Numpy-Array konvertiert. Wenn ich die Werte im Array durchlaufe, sehe ich, dass ich -3.40282347e + 38 und NaN als Knotenwerte erhalte. Vielleicht könnten Sie diese in Werte für den einen oder anderen umklassifizieren, sodass alle Nodata-Werte gleich sind.

Sie könnten das Reklassifizierungswerkzeug verwenden, arcpy.sa.setnulloder ich bin sicher, dass numpy einige ausgefallene Funktionen hat, die dies tun könnten, wenn Sie das Bild in ein numpy-Array konvertieren.

Gdal translate kann auch nützlich sein, wenn Sie den Open-Source-Pfad beschreiten möchten.


Haben Sie eine Idee, wie ich diese Werte neu klassifizieren kann? Ich kann ArcGIS anscheinend nicht dazu bringen, etwas für NaN zu erkennen, und es scheint auch nicht mit dem sehr niedrigen Wert umzugehen (im Grunde scheint es NaN zu sein - da dies der Bereich der Floats in Arc ist).
Robintw

Wenn ich es wäre, würde ich jedes Bild in ein Numpy-Array konvertieren, das Array durchlaufen und alle Nodata-Werte in -9999 oder was auch immer konvertieren und das Array dann zurück in ein Bild übertragen. Ich bin mir sicher, dass es eine intelligentere Methode gibt, aber ich habe nicht so viel mit Numpy gearbeitet.
Dango

Wenn Sie sich für die oben vorgeschlagene Methode entscheiden, sollten Sie sich die Verwendung der Python-Funktion math.isnan () ansehen, um NaN-Werte zu identifizieren.
Dango

4

Mit dieser Datei / diesen Daten ist definitiv etwas sehr Funky los.

Sie haben Recht, dass ArcGIS zwei verschiedene Arten von NoData anzeigt, obwohl beide Attribute dasselbe anzeigen. QGIS macht das auch. Ich habe absolut keine Ahnung, was in den Daten passiert (aber ich würde vermuten, dass hinter den Kulissen zwei verschiedene "noData" -Werte verwendet werden, einer kann "null" sein, der andere "-9999" zum Beispiel), wäre aber interessiert zu wissen, vielleicht kann uns jemand anderes aufklären.

Es gibt jedoch einige mögliche Problemumgehungen:

Daten exportieren - Wenn Sie die Daten exportieren und dabei sicher sind, dass Sie den Renderer verwenden, funktioniert er ordnungsgemäß. Wenn Sie den Use-Renderer nicht ankreuzen, treten bei Ihrer neuen Datei dieselben Probleme auf. Auf der anderen Seite wird dies in 8-Bit-Daten (0-255) konvertiert. Ein anderes Tool kann es möglicherweise erneut rendern, während die Daten als 32-Bit-Floats beibehalten werden.

Classified verwenden - Die Classified-Symbologiemethode scheint beide NoData-Typen korrekt anzuzeigen (dh dasselbe). Verwenden Sie diese Option, wenn möglich, und Sie möchten die Daten nicht ändern. Stretched zeigt Ihren gemeldeten Fehler und "Unique Values" zeigt einfach nichts an.

(Verwenden von ArcGIS 9.3.1)


Vielen Dank für die Antwort - ich bin froh, dass nicht nur ich das für komisch halte. Leider ist die klassifizierte Symbologie nicht für das geeignet, was ich tun muss, aber ich werde den Export im Moment mit einem Renderer durchführen. Das Frustrierende ist, dass dies für alle Dateien geschieht , die ich vom MODIS-Satelliten mit dem MODIS-Online-Verarbeitungssystem erhalte. Ich denke, das Problem können zwei verschiedene Arten von NoData sein - ich denke, in diesem Fall sind sie möglicherweise "null" und NaN, aber ich weiß es nicht.
Robintw

Ich denke, "Use Classified" ist bei weitem die am wenigsten belastende aller vorgeschlagenen Techniken, um diesen Fehler zu umgehen. Sie können fast alles, was Sie tun können, im Menü "Gestreckt" im Menü "Klassifiziert" approximieren.
Alexander

2

Ich bin gerade auf dasselbe Problem gestoßen - und habe eine "Lösung" gefunden. Wenn Sie das Raster mit dem Rasterrechner mit 1,0 multiplizieren, erkennt ArcMap die NoData-Werte.


1

Hatte das gleiche Problem mit 32-Bit-ESRI-Gittern. Die 16-Bit-Versionen funktionierten einwandfrei und NoData war unsichtbar, wurde jedoch bei den 32-Bit-Versionen schwarz angezeigt. Es wurde behoben, indem einzeln exportiert und der Knotenwert auf -32768 geändert wurde, im Gegensatz zu den -2147483647, die die 32-Bit-Werte normalerweise haben.


1

Ich hatte das gleiche Problem. Was für mich funktioniert hat, war das Exportieren des Rasters in den Geodatabase-Ordner. Wenn das Raster in eine Geodatabase exportiert wird, zeigt arcmap die NoData-Werte korrekt an.


0

Ich habe ein ähnliches Problem mit Landsat 8-OLI-Bildern beim Ausführen eines Mosaiks. Die "NoData" -Werte auf der Außenseite (Hintergrund) bewirken nichts, aber fehlende Datenblöcke, wie z. B. das Entfernen von Wolken / Schatten auf der Innenseite, ändern die Farbe der Referenzmosaikebene. Ich habe es in ERDAS und Arcmap durchgeführt, beide das gleiche Ergebnis. Aus irgendeinem Grund wirkt sich dies auf die Symbologie aus. Wenn Sie jedoch das Werkzeug "Identifizieren" verwenden, sind die Pixelwerte korrekt. Wenn Sie nach Ergebnissen suchen und diese nicht anzeigen, sollte es Ihnen gut gehen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.