子数据集

  MODIS图像(中分辨率成像光谱仪)是一个分层数据格式(HDF)文件。如果数据包含子数据集,可用 GetSubDatasets() 函数得到他们的子数据集列表,再利用这个列表信息打开所需要的子数据集。

 

import os
import numpy as np
from osgeo import gdal

data_dir = r'D:\modis'

# 从2024文件中获取子数据集的名称和描述
# 并打印,输出NDVI(归一化植被指数)
os.chdir(os.path.join(data_dir, '2024'))
ds = gdal.Open('MOD0.A201.hdf')
subdatasets = ds.GetSubDatasets() # GetSubDatasets函数返回一个元组列表
print('Number of subdatasets: {}'.format(len(subdatasets)))
for sd in subdatasets:
    print('Name: {0}\nDescription:{1}\n'.format(*sd))


# 打开2024文件中的第一个子数据集:[0][0]
# 第五个数据集为: [4][0]
ndvi_ds = gdal.Open(subdatasets[0][0])

# 通过打印尺寸来确保正常工作
print('Dataset dimensions: {} {}'.format(ndvi_ds.RasterXSize, ndvi_ds.RasterYSize))

# 读取数据之前先获取波段
ndvi_band = ndvi_ds.GetRasterBand(1)
print('Band dimensions: {} {}'.format(ndvi_band.XSize, ndvi_band.YSize))
View Code

 

posted @ 2024-02-23 15:47  有翅膀的大象  阅读(12)  评论(0编辑  收藏  举报