from osgeo import gdal
#import gdal
import numpy as np
dataset=gdal.Open("./geotiff_file.tif")
im_width = dataset.RasterXSize
im_height = dataset.RasterYSize
im_bands = dataset.RasterCount
im_geotrans = dataset.GetGeoTransform()
im_proj = dataset.GetProjection()
# 读取一个波段
band=dataset.GetRasterBand(1)
# 将栅格数据转为数组
data=band.ReadAsArray(0,0,im_width,im_height)
# 读取某一类型的数据,需要先载入数据驱动,初始化一个对象
driver = gdal.GetDriverByName("GTiff")
# 创建空文件,并确定开辟多大内存;每个像素都有一个对应的值,这个值得类型用数据类型指定。这里的数据类型是gdal数据类型。
dataset = driver.Create("./tmp/tmp_geotiff_file.tif", im_width, im_height, im_bands)
# 写入仿射变换参数
dataset.SetGeoTransform(im_geotrans)
# 写入投影信息
dataset.SetProjection(im_proj)
#写入数组数据
dataset.GetRasterBand(1).WriteArray(data)
del dataset