#!/usr/bin/env python import sys import gdal import gdalconst import os import Numeric import glob import string for filename in glob.glob('chunked/chunk_*.tif'): pieces = string.split(filename[14:-4], '_') if not len(pieces) == 2: continue (h, v) = map(int, pieces) print h, v source_image = gdal.Open('chunked/chunk_%d_%d.tif' % (h, v), gdalconst.GA_ReadOnly) width = source_image.RasterXSize height = source_image.RasterYSize output_image = gdal.GetDriverByName('GTiff').Create( 'chunked/chunk_%d_%d_3band.tif' % (h, v), width, height, 3, gdal.GDT_Byte, [ 'TILED=YES' ] ) output_image.SetProjection(source_image.GetProjection()) output_image.SetGeoTransform(source_image.GetGeoTransform()) for band in range(3): a = source_image.GetRasterBand(band + 1).ReadAsArray(0, 0, width, height) output_image.GetRasterBand(band + 1).WriteArray(a, 0, 0) source_image = None output_image = None