from osgeo import gdal, gdalconst
def writetif(dataset,target_file):
dataset = gdal.Open(source_file, gdalconst.GA_ReadOnly)
band_count = dataset.RasterCount # 波段数
band1 = dataset.GetRasterBand(1)
data_type = band1.DataType
target = dataset.GetDriver().Create(target_file, xsize=dataset.shape[1], ysize=dataset.shape[2], bands=band_count,
eType=data_type)
geotrans = list(dataset.GetGeoTransform())
target.SetProjection(dataset.GetProjection()) # 设置投影坐标
target.SetGeoTransform(geotrans) # 设置地理变换参数
total = band_count + 1
for index in range(1, total):
data = dataset.GetRasterBand(index).ReadAsArray(buf_xsize=dataset.shape[1], buf_ysize=dataset.shape[2])
out_band = target.GetRasterBand(index)
out_band.WriteArray(data) # 写入数据到新影像中
out_band.FlushCache()
out_band.ComputeBandStats(False) # 计算统计信息
print("正在写入完成")
del dataset