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

Google Earth Engine中Landsat 7影像返回透明图的问题及解决咨询

解决Landsat 7 2003年后影像的扫描线缺失问题

嘿,这个问题我太熟悉了!你看到的这些透明线条其实是Landsat 7 ETM+传感器的SLC故障导致的——2003年5月,Landsat 7的扫描行校正器(SLC)发生了永久性故障,之后获取的所有影像都会出现规律性的扫描行缺失,也就是你看到的这些空白条纹。

解决方法有这几种,按便捷度排序:

  1. 直接使用GEE预修复的Landsat 7数据集
    GEE已经为SLC故障后的Landsat 7影像提供了预修复的集合,比如表面反射率产品:

    // 调用预修复的Landsat7 SLC_OFF表面反射率集合
    var landsat7Fixed = ee.ImageCollection('LANDSAT/LE07/C02/T1_SR_SLC_OFF')
      .filterDate('2003-06-01', '2024-01-01')
      .filterBounds(yourROI);
    

    这个集合里的影像已经通过算法填补了缺失的扫描线,直接用就能看到完整的影像,不需要额外处理。

  2. 使用GEE内置的修复函数手动处理
    如果你需要自定义修复逻辑,或者用的是其他产品(比如TOA反射率),可以用ee.Algorithms.Landsat.fillStripes()函数对单景影像进行修复:

    var landsat7 = ee.ImageCollection('LANDSAT/LE07/C02/T1_TOA')
      .filterDate('2003-06-01', '2024-01-01')
      .filterBounds(yourROI)
      .map(function(image) {
        // 填补缺失的扫描线,第二个参数是邻域窗口大小,可根据需求调整
        return ee.Algorithms.Landsat.fillStripes(image, 10);
      });
    

    这个函数会利用相邻像素的信息来填充缺失区域,效果比简单的邻域均值更好。

  3. 手动邻域填充(备选方案)
    如果上述方法不适用,还可以用focal_mean()进行邻域均值填充,但这种方法对边缘区域的修复效果一般:

    var landsat7 = ee.ImageCollection('LANDSAT/LE07/C02/T1_TOA')
      .filterDate('2003-06-01', '2024-01-01')
      .filterBounds(yourROI)
      .map(function(image) {
        // 用3x3邻域均值填充缺失像素
        return image.focal_mean(3, 'square', 'pixels', 1);
      });
    

小提示

  • 注意区分数据集的后缀:_SLC_OFF就是专门针对故障后影像的预修复版本,C02是最新的Collection 2数据集,推荐优先使用。
  • 如果你的研究对影像精度要求极高,建议对比不同修复方法的结果,选择最适合你研究区的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:55:27