¿Los valores NoData se reconocen en el ráster en ArcGIS Desktop pero no siguen las reglas de simbología?

9

Tengo un ráster GeoTIFF en ArcGIS Desktop, que se puede descargar desde los siguientes dos enlaces:

  1. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tfw
  2. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tif

Si carga estos en ArcGIS Desktop, verá grandes áreas uniformes. Al hacer clic en estas áreas con la herramienta Información, el valor de píxel es Sin datos. Sin embargo, cuando elige mostrar los valores Sin datos como transparentes (o como cualquier color) en las preferencias de Simbología para la capa, los valores Sin datos no siguen esa regla.

Curiosamente, los valores Sin datos fuera del área principal de la imagen siguen la regla (establece el color en rojo para ver eso), pero los que están dentro de la imagen no lo hacen.

Realmente he tenido problemas para tratar de solucionar este problema, y ​​no puedo encontrar la manera de hacerlo.

¿Alguien tiene alguna idea?

robintw
fuente

Respuestas:

3

Descargué el archivo y lo convertí en una matriz numpy y cuando hago un bucle sobre los valores de la matriz puedo ver que obtengo -3.40282347e + 38 y NaN como valores de nodata. Tal vez podría reclasificar estos valores a uno u otro, para que todos los valores de nodata sean iguales.

Puede usar la herramienta de reclasificación, arcpy.sa.setnullo estoy seguro de que numpy tiene algunas funciones sofisticadas que podrían hacer esto si convierte la imagen en una matriz numpy.

La traducción de Gdal también podría ser útil si desea seguir el camino de código abierto.

dango
fuente
¿Tienes alguna idea de cómo puedo reclasificar estos valores? Parece que no puedo hacer que ArcGIS reconozca nada para NaN, y tampoco parece tratar con el valor muy bajo (básicamente NaN parece, ya que ese es el rango de flotadores en Arc) tampoco.
robintw
Si fuera yo, convertiría cada imagen en una matriz numpy, recorrería la matriz convirtiendo todos los valores de nodata a -9999 o lo que fuera y luego transmitiría la matriz a una imagen. Estoy seguro de que hay una forma más inteligente de hacerlo, pero no he trabajado tanto con numpy.
dango
si decide usar el método que sugerí anteriormente, puede considerar usar la función python math.isnan () para identificar los valores de NaN.
dango
4

Definitivamente hay algo muy funky sucediendo con ese archivo / datos.

Tienes razón en que ArcGIS muestra dos tipos diferentes de NoData a pesar de que ambos atributos muestran lo mismo. QGIS hace esto también. No tengo ni idea de lo que sucede en los datos (pero supongo que hay dos valores "noData" diferentes que se utilizan detrás de escena, uno puede ser "nulo" y el otro "-9999", por ejemplo) pero estaría interesado saber, tal vez alguien más pueda iluminarnos.

Sin embargo, hay un par de posibles soluciones:

Exportar los datos : si exporta los datos asegurándose de "usar el procesador", comenzará a funcionar correctamente. Si no marca el renderizador de uso, su nuevo archivo tendrá los mismos problemas. En el lado negativo, esto lo convierte en datos de 8 bits (0-255). Es posible que alguna otra herramienta pueda volver a representarla mientras mantiene los datos como flotantes de 32 bits.

Usar clasificado : el método de simbología clasificada parece mostrar ambos tipos de NoData correctamente (es decir, como la misma cosa), así que úselo si es posible y no desea alterar los datos. Estirado exhibe su error reportado y "Valores únicos" simplemente no muestra nada.

(Usando ArcGIS 9.3.1)

GIS-Jonathan
fuente
Gracias por la respuesta. Me alegro de que no sea solo yo quien piense que esto es extraño. Desafortunadamente, la simbología clasificada no será adecuada para lo que necesito hacer, pero haré la exportación usando un renderizador en este momento. Lo frustrante es que esto sucede para todos los archivos que obtengo del satélite MODIS utilizando el sistema de procesamiento en línea MODIS. Creo que el problema puede ser dos tipos diferentes de NoData: creo que en este caso pueden ser "nulos" y NaN, pero no lo sé.
robintw
Creo que 'Use Classified' es, con mucho, la menos onerosa de todas las técnicas sugeridas para evitar este error. Puede aproximar casi todo lo que puede hacer en el menú 'Estirado' en el menú 'Clasificado'.
Alexander
2

Acabo de encontrar el mismo problema y encontré una "solución". Si multiplica el ráster por 1.0 con la calculadora de ráster, ArcMap reconocerá los valores NoData.

Hellski
fuente
1

Tuve el mismo problema con las redes ESRI de 32 bits. Los de 16 bits funcionaron bien y NoData era invisible, pero aparecería en negro para los de 32 bits. Se solucionó exportando individualmente y cambiando el valor de nodata a -32768 en lugar de -2147483647 que normalmente tienen los de 32 bits.

Kai
fuente
1

Yo tuve el mismo problema. Lo que funcionó para mí fue exportar el ráster en la carpeta de geodatabase. Si el ráster se exporta a una geodatabase, arcmap muestra los valores NoData correctamente.

Fernando Ribeiro
fuente
0

Tengo un problema similar con las imágenes Landsat 8-OLI al realizar un mosaico. Los valores "NoData" en el exterior (fondo) no hacen nada, pero los bloques de datos que faltan, como la eliminación de nubes / sombras en el interior, cambiarán el color de la capa de mosaico de referencia. Lo realicé en ERDAS y Arcmap, ambos con el mismo resultado. Por alguna razón, tiene un efecto en la simbología, pero si usa la herramienta "Identificar", los valores de los píxeles son correctos. Si busca resultados y no se muestra, debería estar bien.

Zman3
fuente