es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Apilar imágenes geotiff manteniendo las bandas individuales.

Tengo dos imágenes con 3 y 5 bandas respectivamente. ¿Cómo puedo conservar las bandas individuales de cada imagen después de fusionarlas?

from osgeo import gdal

img_list = ['img1.tif', 'img2.tif']

vrt = gdal.BuildVRT("merged.vrt", img_list, separate=True)
gdal.Translate('merge_img.tif', vrt)

El código anterior dará como resultado una imagen fusionada con 2 bandas. Quiero que tenga 8 bandas, es decir: imagen1 (3 bandas) + imagen2 (5 bandas) = 8 bandas.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para conservar las bandas individuales de cada imagen después de la fusión, puedes modificar el código especificando el número de bandas de salida en la función BuildVRT.

    Aquí está el código actualizado:

    from osgeo import gdal
    
    img_list = ['img1.tif', 'img2.tif']
    
    # Establecer el número de bandas de salida como la suma de las bandas de entrada
    num_bands = sum([gdal.Open(fname).RasterCount for fname in img_list])
    vrt = gdal.BuildVRT("merged.vrt", img_list, separate=True, bands=num_bands)
    gdal.Translate('merge_img.tif', vrt)
    

    Al establecer el parámetro bands en BuildVRT como num_bands, que es la suma del número de bandas de cada imagen de entrada, la imagen fusionada resultante tendrá las 8 bandas.

    Ten en cuenta que esto asume que el tamaño de píxel, la proyección y otros metadatos de las imágenes de entrada son iguales. Si difieren, es posible que debas ajustar este código en consecuencia.

Comments are closed.