Trattare con NoData nell'analista spaziale ArcGIS?


10

Quando utilizzo Spatial Analyst ho regolarmente problemi con i valori NoData che compaiono nei dati.

Vari strumenti sembrano introdurre regolarmente i valori NoData.

Questi valori causano quindi problemi con altri strumenti e devono essere eliminati con riclassificazione, causando in genere altri problemi.

Come devono essere gestiti i valori NoData? Esiste un modo semplice per sostituire i valori NoData con zero? NoData può essere evitato del tutto?


3
Di solito - ma non sempre - il valore NoData deve essere presente. Questo impedisce che l'intera operazione fallisca quando potrebbe fallire separatamente in poche celle. Buoni esempi sono dividere per zero, registri di numeri non positivi e varie operazioni locali tentate lungo i confini della griglia. Uno dei pochi buoni esempi che conosco riguardo a dove i valori di NoData non dovrebbero essere introdotti è la maggioranza / minoranza focale, che risolve i legami impostandoli su NoData!
whuber

1
Inoltre, esiste una distinzione tra NoData finiti (ad esempio, -9999) e 1.#QNANNoData. In ArcGIS il primo è trasparente, mentre 1.#QNANNoData è nero opaco.
Mike T,

Risposte:


6

Avrei usato il calcolatore raster con la seguente espressione:

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

Presuppone che il tuo raster sia chiamato "raster".


La sintassi dello strumento Calcolatrice raster 10.x è leggermente diversa. In questo esempio, "raster" è un livello nella mappa:

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

4

È possibile impostare i valori NoData su qualsiasi valore utilizzando l'operatore condizionale Set Null ( ArcGIS 9.3 , ArcGIS 10 ). Tuttavia, non sono a conoscenza di un modo per impedire che NoData compaia in primo luogo.


Mi sono reso conto che avrei dovuto scrivere / collegarmi all'operatore Con come menzionato da @AndOne.

Dalla documentazione, se si utilizza Python:

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. Molte operazioni hanno argomenti che limitano i risultati NoData. Ad esempio , quando si calcolano le statistiche di vicinato ("focali") è possibile specificare che NoData nell'input (che deve verificarsi attorno ai bordi) venga semplicemente ignorato anziché propagato all'output. Si noti che ogni griglia planare ha un limite oltre il quale sono NoData.
whuber

Questo può effettivamente essere utilizzato per convertire NoData in zero?
Matthew Snape,

Sì, quale versione di ArcGIS stai usando?
djq,

Verioni che sto usando è Arcgis 10.0
Matthew Snape
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.