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

替换Google Earth Engine中已删除的Landsat 5数据集计算2012年NDVI

Landsat 5 C02数据集计算NDVI的问题修复

问题原因

  • Landsat 5的C01版本数据集已被GEE移除,必须使用C02版本。
  • C02版本的**T1_L2(地表反射率产品)**波段命名规则与旧版不同:红波段为SR_B3,近红外波段为SR_B4,而非旧版的B3/B4。
  • 原始代码中存在冗余错误行:var Filtered_Region = ImageCollection.filterBounds(Region); 这里的ImageCollection未指定具体集合,属于无效代码。

修复步骤

  1. 选择正确的数据集:
    • 优先使用LANDSAT/LT05/C02/T1_L2(地表反射率产品,已完成大气校正,精度更高)
    • 若需原始辐射率产品,可使用LANDSAT/LT05/C02/T1,但需自行处理大气校正,波段仍为B3/B4
  2. 修正NDVI计算的波段名称:针对T1_L2产品,将['B4', 'B3']改为['SR_B4', 'SR_B3']
  3. 移除无效代码行:删除未定义的Filtered_Region相关代码
  4. 添加云量过滤(可选但推荐):加入filterMetadata('CLOUD_COVER', 'less_than', 20)减少云污染对结果的影响

完整修正代码(使用T1_L2地表反射率产品)

// 定义时间范围
var startDate = '2012-04-01';
var endDate = '2012-05-15';

// 计算NDVI的函数(适配Landsat 5 C02 T1_L2)
function calculateNDVI(image) {
  // T1_L2产品的红波段是SR_B3,近红外是SR_B4
  var ndvi = image.normalizedDifference(['SR_B4', 'SR_B3']).rename('NDVI');
  return image.addBands(ndvi);
}

// 筛选Landsat 5 C02 T1_L2数据集,添加云量过滤
var landsatCollection = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2')
  .filterBounds(Region)
  .filterDate(startDate, endDate)
  .filterMetadata('CLOUD_COVER', 'less_than', 20) // 过滤云量低于20%的影像
  .map(calculateNDVI);

// 获取时间范围内的NDVI中位数影像
var medianNDVI = landsatCollection.select('NDVI').median();

// 可视化参数
var visParams = {
  min: -1,
  max: 1,
  palette: ['blue', 'white', 'green']
};

// 添加图层到地图并居中到研究区
Map.addLayer(medianNDVI, visParams, 'NDVI 2012');
Map.centerObject(Region, 10);

// 打印结果到控制台
print('Median NDVI Image:', medianNDVI);

补充说明

  • 如果坚持使用T1原始产品,只需将数据集ID改为LANDSAT/LT05/C02/T1,并将NDVI计算的波段改回['B4', 'B3']即可,但原始产品未做大气校正,NDVI精度会受影响。
  • 确保已在GEE中定义了Region研究区变量,否则会出现未定义报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:25:02