19 votos

¿Cómo cambio el color del geotiff "sin datos" a blanco/transparente en lugar de negro?

Estoy preparando los datos para incluirlos en un nodo de la red geológica, donde los mapas se muestran a través de un geoservidor.

El problema es que las células que "no tienen datos" se muestran como negras en el geotextil y me gustaría que el color se fijara en blanco o transparente.

Estoy usando ArcView y no tengo acceso ni a un analista espacial ni a un analista 3D.

Preferiría no tener que asignar un nuevo archivo sld y actualmente estoy usando "Usar mapa de colores" al exportar desde ArcGIS Desktop.

13voto

Greg Puntos 1756

Escribí un pequeño guión de pitón gdal para esto, gdalsetnull.py un simple programa de línea de comandos para establecer el valor de raster especificado NODATA, sin crear un nuevo raster. La ruta más fácil para instalar GDAL en Windows es a través de OSGeo4W . Ejemplos:

python gdalsetnull.py foobar.tif 0            # pure black is transparent
python gdalsetnull.py foobar.tif 0 255 0      # pure green is
python gdalsetnull.py foobar.tif 50 23 77 100 # arbitrary value in 4 band image

Si no te importa procesar los gastos generales y crear una nueva imagen en lugar de editarla en el lugar, también hay gdal_calc que permite cambiar realmente los valores de las células en lugar de sólo actualizar los metadatos.

Ponga los valores de cero y abajo a nulo:

gdal_calc.py -A input.tif --outfile=result.tif --calc="A*(A>0)" --NoDataValue=0

7voto

Josh Puntos 569

En concepto, necesitas averiguar qué valores de píxeles representan las celdas sin datos y luego editar tu tabla de colores para asignar los valores ROJO, VERDE, AZUL (RGB) en la tabla de colores para que sean 255.255.255 para ese valor de celda.

Si no tienes la licencia apropiada para hacer esto en Arc, puedes usar la herramienta gdal_translate (una de las herramientas de línea de comandos de gdal/ogr)

  1. exportar la tabla de colores para tu tif como un archivo XML.
    gdal_translate -of VRT myImage.tif outColorTable.vrt

  2. abre el archivo .vrt en un editor de texto y encuentra la entrada para el valor de tus píxeles sin datos. No hay un número de índice para los valores de las celdas, por lo que tienes que hacer una cuenta regresiva para la entrada correcta.

  3. editar este valor para que sea <Entry c1="255" c2="255" c3="255" c4="255"/>

  4. ahora, crear un nuevo tif basado en la nueva tabla de colores
    gdal_translate outColorTable.vrt newCorrected.tif

(ejemplo añadido sobre la base del comentario que figura a continuación)

Cuando ejecuto el comando del punto 2 anterior y abro el archivo .vrt en un editor de texto, veo el contenido XML.

Parte del archivo incluye líneas que se ven así, he recortado la mayoría de ellas.

2voto

Denys S. Puntos 189

Además de que usted prefirió NO crear un nuevo archivo SLD, aquí está una entrada en el blog sobre cómo convertir el mapa de colores interno de un GeoTIFF en un SymbologyEncoding/SLD y definir otro color allí. En el SLD derivado es fácil definir exactamente qué valores se deben renderizar con un color 100% transparente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X