废话不说直接上代码
from osgeo import gdal
import numpy as np
# 定义数据集的宽度、高度和波段数量
width = 100
height = 100
num_bands = 3
datatype = gdal.GDT_Float32
# 获取驱动并创建数据集
driver = gdal.GetDriverByName('GTiff')
dataset = driver.Create('new_dataset.tif', width, height, num_bands, datatype)
# 设置地理变换和投影(如果需要)
# ...
# 添加波段并设置无数据值
for i in range(num_bands):
band = dataset.GetRasterBand(i + 1)
band.SetNoDataValue(-9999.0)
# 可以设置波段描述等其他属性
# band.SetDescription('Band {}'.format(i + 1))
# 生成一些示例数据并写入波段
data = np.random.rand(num_bands, height, width).astype(np.float32)
for i in range(num_bands):
band = dataset.GetRasterBand(i + 1)
band.WriteArray(data[i])
# 清理资源
dataset = None
生成成功