Tengo una ortoimagen RGB que tiene área negra en lugar de NoData, como se muestra aquí:
Cuando uso la herramienta SetNull, elimina el área negra, sin embargo, luego la convierte en una ortoimagen en escala de grises, que no es lo que quiero.
Sé que hay una forma de evitar esto mediante el uso de la herramienta Clip (Administración de datos) para recortar el ráster en sí mismo y allí puede establecer el valor NoData para que sea el valor de las celdas negras (0). Sin embargo, estoy creando un taller para estudiantes y me gustaría utilizar un método menos intuitivo.
Por supuesto, existe la opción de ejecutar la herramienta NoData en cada banda individualmente y luego combinar las tres bandas juntas, sin embargo, necesito tener una condición en la que band1, band2 y band3 sean iguales a 0 para establecer eso como NoData. Ser ideal para hacer esto en ModelBuilder sería ideal, pero crear secuencias de comandos con ArcPy también sería bueno.
Estoy usando ArcGIS 10.2 Desktop con licencia avanzada.
fuente
Respuestas:
Lo que desea hacer es establecer las propiedades de ráster en un script o cambiarlo manualmente en ArcCatalog. Esto no creará una nueva trama o incluso tomará mucho tiempo.
En python es un poco complicado:
Debido a que los nodatos están muy abajo en la lista, me resulta más fácil especificar eso; los parámetros son Band Value; Band Value; ... hasta que se aborden todas las bandas. Si es probable que tenga más bandas (o menos) en la misma carpeta, deberá usar arcpy.Describe y la propiedad bandCount para establecer el valor nulo para el número correcto de bandas:
En ArcCatalog, haga clic derecho en la capa y vaya a propiedades:
presione el botón editar:
Ingrese los valores y luego presione OK para descartar el editor NoData y OK para aplicar el cambio.
Ahora el ráster no mostrará nada en ArcMap donde el valor de la celda sea 0,0,0.
fuente
Si va a las propiedades de ráster, y si la simbología se establece como compuesto RGB (que parece ser), puede marcar el cuadro Mostrar valores de fondo (RGB) y establecer lo que desee como fondo hueco. Así que simplemente establezca 0 0 0 como el valor de fondo y debería estar en el negocio.
fuente
Creo que la forma más fácil de lograr esto sería crear primero un ráster de condición nula, luego usar ese ráster para asignar los valores NoData a cada banda por separado.
Intente ejecutar la función Con para crear el ráster de condición nula.
Luego use el ráster de condición nula para asignar valores NoData a cada banda con la función Nulo establecida . Debería poder hacer esto con el generador de modelos o Python.
fuente
Creo que puede utilizar diferentes procedimientos de árbol que teóricamente deberían funcionar. Calculadora ráster donde puede usar esta expresión
SETNULL([raster] == value, [raster])
Reclasifique donde solo debe reclasificar el valor que desea. Y usando ArcPy puede usar este script que he encontrado aquí https://gis.stackexchange.com/a/24578/47790fuente