Official GDAL documentation
1. Custom function
data type:datatype = gdal.GDT_CFloat32
file type:driver = gdal.GetDriverByName("ENVI")
def readTiff(inputfile):
dataset = gdal.Open(inputfile)
if dataset == None:
print(inputfile+" can't open !!!")
width = dataset.RasterXSize
height = dataset.RasterYSize
bands = dataset.RasterCount
data = dataset.ReadAsArray(0,0,width,height)
geotrans = dataset.GetGeoTransform()
proj = dataset.GetProjection()
return data, geotrans, proj
def writeTiffEnvi(data,geotrans,proj,path):
if 'int8' in data.dtype.name:
datatype = gdal.GDT_Byte
elif 'float16' in data.dtype.name:
datatype = gdal.GDT_Float32
elif 'complex64' in data.dtype.name:
datatype = gdal.GDT_CFloat32
else:
datatype = gdal.GDT_Float32
if len(data.shape) == 3:
bands, height, width = data.shape
elif len(data.shape) == 2:
data = np.array([data])
bands, height, width = data.shape
driver = gdal.GetDriverByName("ENVI")
dataset = driver.Create(path, int(width), int(height), int(bands), datatype)
if(dataset!= None):
dataset.SetGeoTransform(geotrans)
dataset.SetProjection(proj)
for i in range(bands):
dataset.GetRasterBand(i+1).WriteArray(data[i])
del dataset
2. Output results
- Envi image and its main file
- Envi Open Effect
- Profile information