一次从栅格中提取所有波段的最快方法 (python/gdal)

Fastest way to extract all bands from raster at once (python/gdal)

我有一些包含大量波段的高光谱图像,我想对其进行分析。我的脚本需要能够一次访问所有波段。

目前,我正在通过以下方式实现这一目标:

bands = np.asarray([dataset.GetRasterBand(n+1) for n in range(dataset.RasterCount)])

这工作正常,但似乎这一步在我的处理工作流程中占用了大量时间,我怀疑有更好的方法来完成它。另外,我的印象是,以这种方式将列表推导与 numpy 一起使用是不好的做法 (?)。

numpy 或 gdal 是否有任何内置方法可以使它更快?

在 GDAL 中,波段和波段中的数据是有区别的。假设您想要后者,只需使用:

data = dataset.ReadAsArray()