¿Está lidiando con NoData en ArcGIS Spatial Analyst?

10

Cuando uso Spatial Analyst, regularmente tengo problemas con los valores NoData que surgen en los datos.

Varias herramientas parecen introducir valores NoData regularmente.

Estos valores causan problemas con otras herramientas y deben eliminarse con la reclasificación, lo que generalmente genera otros problemas.

¿Cómo se deben tratar los valores NoData? ¿Hay una manera simple de reemplazar los valores NoData con cero? ¿Se puede evitar NoData por completo?

Matthew Snape
fuente
3
Por lo general, pero no siempre, el valor NoData tiene que estar allí. Esto evita que falle toda la operación cuando podría fallar por separado en unas pocas celdas. Un buen ejemplo es dividir entre cero, registros de números no positivos y varias operaciones locales intentadas a lo largo de los límites de la cuadrícula. Uno de los pocos buenos ejemplos que conozco sobre dónde no deben introducirse los valores NoData es la mayoría focal / minoritaria, que resuelve los lazos al establecerlos en NoData.
whuber
1
Además, hay una distinción entre NoData finito (por ejemplo, -9999) y 1.#QNANNoData. En ArcGIS, el primero es transparente, mientras que 1.#QNANNoData es negro opaco.
Mike T

Respuestas:

6

Hubiera usado la calculadora ráster con la siguiente expresión:

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

Se supone que su ráster se llama 'ráster'.


La sintaxis de la herramienta 10.x Raster Calculator es ligeramente diferente. En este ejemplo, "ráster" es una capa en el mapa:

Con(IsNull("raster"), 0, "raster")
Y uno
fuente
4

Puede establecer valores NoData en cualquier valor utilizando el operador condicional Set Null ( ArcGIS 9.3 , ArcGIS 10 ). Sin embargo, no conozco una forma de evitar que los NoData aparezcan en primer lugar.


Me di cuenta de que debería haber escrito / vinculado al operador Con como se menciona en @AndOne.

De la documentación, si 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
fuente
1
+1. Muchas de las operaciones tienen argumentos que limitan los resultados de NoData. Por ejemplo , al calcular estadísticas de vecindad ("focal") puede especificar que NoData en la entrada (que debe ocurrir alrededor de los bordes) simplemente se ignore en lugar de propagarse a la salida. Tenga en cuenta que cada cuadrícula plana tiene un límite más allá del cual están NoData.
whuber
¿Se puede usar esto para convertir NoData a cero?
Matthew Snape
Sí, ¿qué versión de ArcGIS estás usando?
djq
Verions que estoy usando es Arcgis 10.0
Matthew Snape