Estoy intentando replicar el comando gdal_translate, pero usando Python puro:
gdal_translate infile.tif outfile.tif -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR -co TFW=YES -b 1 -b 2 -b 3
Ya he mirado ¿Cómo llamar a gdal_translate desde código Python? pero estoy atascado con la forma de aplicar la información de banda utilizando los enlaces GDAL Python.
Hasta ahora puedo ver cómo hacer todo esto con el código Python, excepto aplicar la configuración de banda (-b).
#Import gdal
from osgeo import gdal
src_filename = r"infile.tif"
dst_filename = r"outfile.tif"
#Open existing dataset
src_ds = gdal.Open( src_filename )
#Open output format driver, see gdal_translate --formats for list
format = "GTiff"
driver = gdal.GetDriverByName( format )
#Output to new format
dst_ds = driver.CreateCopy( dst_filename, src_ds, 0, ['COMPRESS=JPEG','PHOTOMETRIC=YCBCR','TFW=YES'])
#Properly close the datasets to flush to disk
dst_ds = None
src_ds = None
Después de leer el Tutorial de la API GDAL Parece que sólo puedo hacer esto con el método Create(), no con el método CreateCopy(). Si tengo que utilizar el método Create(), ¿cuál es la forma correcta de hacerlo? Parece que el uso de un VRT es probablemente la forma correcta, pero no puedo entender cómo escribir el código que "haría una copia" del archivo existente mientras se utilizan los métodos Create() o VRT.