如何读取超过 32768 个波段的星星对象?

How to read a stars object with over 32768 bands?

我有一个非常大的数据集,其中包含一个属性,从 1970 年到 2100 年每天模拟一次,定义在一个相当精细的地理网格上。它作为 netCDF 文件提供给我,我想在 R 脚本中阅读和分析。数据太大,无法完全放入内存,因此我编写了一个脚本,使用 stars 代理对象和 purrr 包进行分析。它适用于类似的较小数据集。 然而,这个数据集似乎太大了——有 45956 个波段,每个时间步一个波段。而且 read_stars() 命令似乎对一个对象可以有多少个波段有上限。这是加载正确的库后我的代码的样子,其中 data_path 指向单个 .nc 文件:

data_full <- read_stars(data_path, proxy = TRUE)

它returns以下内容:

Warning message:
In CPL_read_gdal(as.character(x), as.charater(options), as.characters(driver), :
  GDAL Message 1 : Limiting number of bands to 32768 instead of 45956

然后数据被裁剪并在 2050 年左右停止。我想在 data_full 变量中包含完整数据。是否可以增加频段限制?还是有其他方法可以做到这一点?

尝试将 GDAL_MAX_BAND_COUNT 设置为 65536

Python:

gdal.SetConfigOption('GDAL_MAX_BAND_COUNT',65536)

bash:

export GDAL_MAX_BAND_COUNT=65536