Lidando com o NoData no ArcGIS Spatial Analyst?

10

Ao usar o Spatial Analyst, eu regularmente tenho problemas com os valores NoData aparecendo nos dados.

Várias ferramentas parecem introduzir valores NoData regularmente.

Esses valores causam problemas com outras ferramentas e precisam ser eliminados com a reclassificação, geralmente resultando em outros problemas.

Como os valores NoData devem ser tratados? Existe uma maneira simples de substituir os valores NoData por zero? NoData pode ser totalmente evitado?

Matthew Snape
fonte
3
Normalmente - mas nem sempre - o valor NoData precisa estar lá. Isso evita que toda a operação falhe quando pode falhar separadamente em apenas algumas células. Bons exemplos são divididos por zero, registros de números não positivos e várias operações locais tentadas ao longo dos limites da grade. Um dos poucos bons exemplos que conheço sobre onde os valores de NoData não devem ser introduzidos é a maioria / minoria focal, que resolve os vínculos definindo-os como NoData!
whuber
1
Além disso, há uma distinção entre NoData finito (por exemplo, -9999) e 1.#QNANNoData. No ArcGIS, o primeiro é transparente, enquanto o 1.#QNANNoData é preto opaco.
Mike T

Respostas:

6

Eu teria usado a calculadora raster com a seguinte expressão:

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

Ele pressupõe que sua varredura é chamada de 'varredura'.


A sintaxe da ferramenta 10.x Raster Calculator é um pouco diferente. Neste exemplo, "raster" é uma camada no mapa:

Con(IsNull("raster"), 0, "raster")
E um
fonte
4

Você pode definir valores NoData para qualquer valor usando o operador condicional Set Null ( ArcGIS 9.3 , ArcGIS 10 ). Não tenho conhecimento de uma maneira de impedir que o NoData apareça em primeiro lugar.


Percebi que deveria ter escrito / vinculado ao operador Con como o @AndOne mencionado.

Na documentação, se você usa 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")
djq
fonte
1
+1. Muitas das operações possuem argumentos que limitam os resultados NoData. Por exemplo , ao computar estatísticas de vizinhança ("focal"), você pode especificar que NoData na entrada (que deve ocorrer nas bordas) seja simplesmente ignorado em vez de propagado para a saída. Observe que toda grade plana possui um limite além do qual são NoData.
whuber
Isso pode realmente ser usado para converter o NoData em zero?
Matthew Snape
Sim, qual versão do ArcGIS você está usando?
DJQ
Verions que estou usando é Arcgis 10.0
Matthew Snape