Umgang mit NoData in ArcGIS Spatial Analyst?


10

Bei Verwendung von Spatial Analyst treten regelmäßig Probleme mit NoData-Werten in den Daten auf.

Verschiedene Tools scheinen regelmäßig NoData-Werte einzuführen.

Diese Werte verursachen dann Probleme mit anderen Tools und müssen bei der Neuklassifizierung beseitigt werden, was normalerweise zu anderen Problemen führt.

Wie soll mit NoData-Werten umgegangen werden? Gibt es eine einfache Möglichkeit, NoData-Werte durch Null zu ersetzen? Kann NoData insgesamt vermieden werden?


3
Normalerweise - aber nicht immer - muss der NoData-Wert vorhanden sein. Dies verhindert, dass der gesamte Vorgang fehlschlägt, wenn er bei nur wenigen Zellen separat fehlschlägt. Gute Beispiele sind das Teilen durch Null, Protokolle nicht positiver Zahlen und verschiedene lokale Operationen, die entlang der Grenzen des Gitters versucht werden. Eines der wenigen guten Beispiele, die ich kenne, wo NoData-Werte nicht eingeführt werden sollten , ist die fokale Mehrheit / Minderheit, die Bindungen löst, indem sie auf NoData gesetzt werden!
whuber

1
Es gibt auch einen Unterschied zwischen endlichen NoData (z. B. -9999) und 1.#QNANNoData. In ArcGIS ist Ersteres transparent, während 1.#QNANNoData undurchsichtig schwarz ist.
Mike T

Antworten:


6

Ich hätte den Rasterrechner mit folgendem Ausdruck verwendet:

Con(IsNull([raster]), 0, [raster])

Es wird davon ausgegangen, dass Ihr Raster "Raster" heißt.


Die Syntax des 10.x Raster Calculator-Tools unterscheidet sich geringfügig. In diesem Beispiel ist "Raster" eine Ebene in der Karte:

Con(IsNull("raster"), 0, "raster")

4

Sie können NoData-Werte mit dem bedingten Operator Set Null ( ArcGIS 9.3 , ArcGIS 10 ) auf einen beliebigen Wert setzen . Mir ist jedoch keine Möglichkeit bekannt, zu verhindern, dass NoData überhaupt angezeigt wird.


Mir wurde klar, dass ich wie @AndOne erwähnt mit dem Con- Operator hätte schreiben / verlinken sollen.

Aus der Dokumentation, wenn Sie Python verwenden:

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con("elevation", "elevation", "", "VALUE > 2000")
outCon.save("C:/sapyexamples/output/outcon.img")

1
+1. Viele der Operationen haben Argumente, die die NoData-Ergebnisse einschränken. Zum Beispiel , wenn Nachbarschaft Berechnung ( „Focal“) Statistiken , die Sie , dass NoData im Eingang angeben (die müssen die Kanten auftreten um) einfach nicht an den Ausgang propagierte ignoriert werden. Beachten Sie, dass jedes planare Gitter eine Grenze hat, hinter der NoData liegen.
whuber

Kann dies tatsächlich verwendet werden, um NoData in Null umzuwandeln?
Matthew Snape

Ja, welche Version von ArcGIS verwenden Sie?
DJQ

Die von mir verwendeten Versionen sind Arcgis 10.0
Matthew Snape,
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.