打开数据集
file_path = "./test.hdf"
ori_dataset = gdal.Open(file_path) # 返回一个gdal.Dataset类型的对象
sub_datasets = ori_dataset.GetSubDatasets() # 对于hdf类型的文件需要这一步来获取子数据集
# tiff等文件格式则不需要再打开子数据集,直接对ori_dataset操作即可
dataset = gdal.Open(sub_datasets[0][0]) # 打开hdf中的子数据集
获取图像信息
num_of_band = dataset.RasterCount # 波段数
cols = dataset.RasterXSize # 图像长度
rows = dataset.RasterYSize # 图像宽度
proj = dataset.GetProjection() # 获取投影,返回投影的字符串
关于投影的转换和操作在另一篇文章中简述
读取数据到numpy数组
band1 = dataset.GetRasterBand(1) # 获取第一波段,从1开始
band1_arr = band1.ReadAsArray(0, 0, cols, rows) # 读取0-rows行, 0-cols列的数据,返回numpy数组
band2_arr = dataset.GetRasterBand(2).ReadAsArray(0, 0, cols, rows)
也可以不分波段读取,直接全部读进numpy数组
im_data = dataset.ReadAsArray(0, 0, cols, rows)
band1 = im_data[0, :, :]