Building_area / Utils /convert_raster.py
Pavan2k4's picture
Update Utils/convert_raster.py
bfd8ee5 verified
raw
history blame contribute delete
883 Bytes
from osgeo import gdal
import numpy as np
import os
import tempfile
from PIL import Image
def convert_gtiff_to_8bit(src):
dst = src
img = gdal.Open(src)
driver = gdal.GetDriverByName('GTiff')
output_image = driver.Create(dst, img.RasterXSize, img.RasterYSize, img.RasterCount, gdal.GDT_Byte, ['PHOTOMETRIC = RGB'])
output_image.SetGeoTransform(img.GetGeoTransform())
output_image.SetProjection(img.GetProjection())
max_bands = img.RasterCount
for i in range(max_bands):
i = i+1
band = img.GetRasterBand(i)
band_array = band.ReadAsArray()
min, max = band.ComputeRasterMinMax(1)
band_array = np.interp(band_array, (min,max), (0,255)).astype(np.uint8)
out = output_image.GetRasterBand(i)
out.WriteArray(band_array)
out.FlushCache()
return output_image
del output_image