You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sits包绘制AWS Sentinel-2数据立方体图像时遇报错求助

问题分析与解决方案

错误根源

报错提示GDALDataset::GetRasterBand(2) - Illegal band #,说明代码尝试读取B04.tif的第2波段,但Sentinel-2 L2A COGS的单波段文件(如B04)本身仅包含1个波段。这个问题大概率是**sits包版本或其依赖的空间数据处理包版本差异**导致的——你当前使用的sits 1.2.0可能存在AWS S2 COGS数据波段索引的bug,而@aldo_tapia的环境用了修复该问题的更新版本。

解决方案

  1. 更新sits包到最新版本
    优先安装CRAN的最新稳定版,或者GitHub的开发版:

    # CRAN稳定版
    install.packages("sits")
    # 或GitHub开发版(需先安装devtools)
    install.packages("devtools")
    devtools::install_github("e-sensing/sits")
    
  2. 同步更新依赖的空间处理包
    确保sf、stars、terra等依赖包也是最新版本,这些包的GDAL接口逻辑更新可能修复了远程文件波段读取的问题:

    install.packages(c("sf", "stars", "terra"))
    
  3. 临时应急方案
    如果暂时无法更新包,可以尝试手动指定读取第1波段,或先将数据下载到本地再处理(非长期解决方案):

    # 示例:手动读取单波段文件并指定波段1
    b04_raster <- terra::rast("/vsicurl/https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/15/Q/YU/2019/2/S2B_15QYU_20190212_0_L2A/B04.tif", band=1)
    

验证

更新完成后,重新运行原代码,检查是否仍出现波段读取错误。

内容的提问来源于stack exchange,提问作者Jonathan V. Solórzano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:05:19