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

在Google Earth Engine中用MODIS计算SAVI报错:找不到B2波段

问题原因及解决方法

错误提示Image.select: Pattern 'B2' did not match any bands的核心原因是:你用错了MODIS/061/MOD09A1数据集的波段名称。这个数据集的波段不是以B1、B2命名的,而是采用sur_refl_b01、sur_refl_b02这类格式。

具体对应关系:

  • 红波段(RED)对应sur_refl_b01
  • 近红外波段(NIR)对应sur_refl_b02

修正后的代码如下:

countries = ee.FeatureCollection("USDOS/LSIB_SIMPLE/2017")
canada = countries.filter(ee.Filter.eq("country_na", "Canada"))
image = ee.ImageCollection("MODIS/061/MOD09A1")\
            .filterDate('2017-01-01','2017-12-31')\
            .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))\
            .filterBounds(canada)\
            .median()\
            .clip(canada)

# 修正波段名称
savi = image.expression(
    '1.5*((NIR-RED)/(NIR+RED+0.5))',{
        'NIR':image.select('sur_refl_b02'),
        'RED':image.select('sur_refl_b01')
    }).rename('savi')

saviVis = {'min':0.0, 'max':1, 'palette':['yellow', 'green']}
Map = geemap.Map()
Map.addLayer(savi, saviVis, 'SAVI')
Map

另外,以后遇到类似波段匹配错误,可以在代码里加一行print(image.bandNames().getInfo()),直接查看当前影像的所有波段名称,快速定位问题。

内容的提问来源于stack exchange,提问作者user14

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 01:15:54