3 votos

¿Guardar la imagen con el estilo actual utilizando GDAL?

Quiero automatizar algunos procesos en imágenes rasterizadas. Así, uno de los módulos que utilizo es el módulo gdal_merge de la librería GDAL para crear imágenes de satélite en RGB y falso color. Así que ejecuto:

gdal_merge.py -separate -n 0 -a_nodata 0 -o output.tif band_4.tif band_3.tif band_2.tif

que funciona bien. Después quiero renderizarlo y guardarlo con el estilo actual. Al igual que la opción "guardar como imagen renderizada" de QGIS. ¿Cómo puedo conseguirlo con GDAL?

0 votos

Posible duplicado de gis.stackexchange.com/questions/48034/ . Si no es así, explique qué estilo pretende guardar: ¿RGB, paleta, pseudocolor?

0 votos

Sí, es muy similar a gis.stackexchange.com/questions/48034/ . Gracias por eso @AndreJ. Mi propósito general es crear imágenes RGB y pseudo-color de 8bits para servir a través de GeoServer de MapServer. También probé con gdal_translate primero para convertir las bandas en 8bits y después con gdal_merge para crear la imagen de 3 bandas pero me creó una imagen con mucho ruido en los píxeles que representaban el mar.

0 votos

Sería de gran ayuda si pudieras decir más sobre tus rásteres de entrada, tal vez dar un enlace a los datos de acceso público.

4voto

Kristi Puntos 1

Los valores L1C de Sentinel2 describen la reflectancia del TOA capturada en 12 bits que van de 0 a 1 multiplicados por una constante fija que actualmente es 10000.

Así que no tienes valores de 0 a 65.535, sino de 0 a 10.000. Los valores para el suelo incluso se mantienen dentro del rango de 0 a 4096 (tal vez excepto algunas partes brillantes de los glaciares).

QGIS aplica el estiramiento de los valores automáticamente basándose en el histograma o en la desviación estándar. Puede ver los valores desde las propiedades de la capa:

enter image description here

Así que tu imagen será demasiado oscura si reduces la escala con un valor máximo de 65535. Si quieres mantener los detalles en las áreas brillantes (por ejemplo, las nubes), debes escalar de 0 a 10000. Pero si quieres que el suelo sea lo suficientemente brillante, escala de 0 a 4096.

Sugerencia adicional: En lugar de utilizar gdal_merge, puede utilizar gdalbuildvrt para el primer paso, que será mucho más rápido.

gdalbuildvrt -separate -o output.vrt B04.jp2 B03.jp2 B02.jp2
gdal_translate -ot Byte -scale 0 4096 0 255 -b 1 -b 2 -b 3 output.vrt output_8bit.tif

0 votos

¡He ejecutado tanto gdalbuildvrt como gdal_merge con la escala de 0-4096 y funciona bien ! ¡¡Muchas gracias @RoVo !!

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