Reglas de valor Nodata?

9

¿Cuáles son las reglas aritméticas que rigen los valores de Nodata? ¿Independientemente de cómo se definen estos valores nulos? Estoy usando ArcMap Raster Calculator.

Estoy pensando específicamente en operaciones como 1 * Nodata (o 1 * nulo), 1 / Nodata, 1 + Nodata, 1-Nodata, Nodata-1, etc.

usuario32882
fuente
3
las celdas de nodata se ignoran, sin embargo, debe verificar operaciones específicas para confirmar, por ejemplo, Divide ignora las celdas de nodata, consulte resources.arcgis.com/en/help/main/10.2/index.html#//…
3
Solo agregaría que para cualquier operación matemática que involucre un operando con NoData, el resultado siempre será NoData, incluso si otros operandos tienen valores válidos.
WhiteboxDev
Puede valer la pena tener en cuenta que hay algunos tipos de celdas de nodatos que se pueden "completar" mediante el uso de algunos métodos de interpolación. Esto es particularmente útil cuando uno de sus rásteres tiene algunas motas pero sus otros rásteres están limpios.
user1269942
Hola Whitebox, realmente puedo pensar en un par de operaciones en las que su declaración puede no ser 100% correcta (vecindad significa, por ejemplo, en una celda NoData). Por supuesto, como usted dice, estos pueden no considerarse operadores puramente matemáticos, pero creo que vale la pena comentarlos.
Si no sabe, solo GIS

Respuestas:

4

De acuerdo, nadie ha proporcionado una respuesta a esta pregunta, así que pensé en intervenir. Sospecho que todos los SIG que brindan soporte para el valor NoData lo hacen exactamente de la misma manera. Cada operación matemática que se aplica a una imagen ráster busca el caso especial de celdas de la cuadrícula que contienen valores NoData y luego ejecuta una ruta que ignora efectivamente la operación y genera un valor NoData para la celda de la cuadrícula correspondiente en la imagen de salida . Aquí hay un ejemplo tomado de la herramienta Agregar en el código abierto GIS Whitebox GAT:

ingrese la descripción de la imagen aquí

Por cierto, este es el código que también se ejecuta si agrega dos imágenes en la Calculadora ráster de Whitebox. En Whitebox, cada ráster puede tener un valor NoData único, ya que se especifica en el archivo de encabezado del ráster. Como tal, no es necesariamente lo mismo para ambas imágenes que se agregan y es por eso que ves las variables noData1 y noData2 definidas en el código anterior. Es importante ver que a medida que el código recorre cada celda de la cuadrícula en la pila de ráster, recupera los dos valores en las imágenes de entrada correspondientes para una celda (z1 y z2), luego verifica que ambos no sean iguales a NoData . Por lo tanto, la adición solo ocurre si ambos rásteres contienen un valor válido en las entradas. Si este no es el caso, no se ingresa nada en la celda de la cuadrícula de salida. De hecho, la imagen de salida se creó e inicializó con su propio valor NoData, entonces, al no ingresar un valor agregado para una celda de cuadrícula (porque al menos una de las entradas es NoData), la salida también tendrá el valor NoData. Se realizan operaciones similares para cada una de las operaciones matemáticas y, de hecho, la mayoría de las herramientas que involucran datasets ráster de entrada seguirán un enfoque similar para tratar el caso especial de los valores NoData. Dos excepciones comunes a esta regla de que las operaciones generan un valor NoData para las entradas NoData se encuentran en la mayoría de los SIG enCon y establecer herramientas nulas . La herramienta Con de ArcGIS dice: "Si NoData no satisface el, no recibe el valor de y sigue siendo NoData". Por lo tanto, si 'NoData' es parte de la declaración condicional y una celda de cuadrícula con este valor reducido a 'VERDADERO', se puede generar un valor que no sea NoData. Del mismo modo, la herramienta Establecer nulo generará un valor que no sea NoData para las celdas de entrada que contengan NoData.

Espero que eso te ayude a comprender el funcionamiento de ese misterioso valor NoData. ¡Y recuerda que cero no es lo mismo que NoData! (A menos que, por supuesto, cero haya sido etiquetado como el valor NoData para un ráster particular).

WhiteboxDev
fuente
3

Cada uno de sus ejemplos, la respuesta es en realidad NoData

1 * Nodata (o 1 * nulo) = NoData

1 / Nodata = NoData

1 + Nodata = NoData

1-Nodata = NoData

Nodata-1 = NoData

Debo agregar que muchas operaciones le dan la opción de "omitir" NoData en una función.

Si no lo sabes, solo GIS
fuente