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

在GEE中按逐年固定日期范围处理Landsat影像并计算NDVI

扩展Landsat 8 NDVI逐年同期处理方案(2013-2022)

完整实现代码

// 1. 定义目标区域(替换为你的研究区)
var roi = ee.Geometry.Rectangle([116.0, 39.5, 116.5, 40.0]); // 示例区域:北京周边
Map.centerObject(roi, 10);

// 2. 定义年份范围与处理函数
var startYear = 2013;
var endYear = 2022;
var years = ee.List.sequence(startYear, endYear);

// 单年份NDVI处理函数
var processYear = function(year) {
  year = ee.Number(year);
  // 定义每年的时间范围:5月1日至6月30日
  var startDate = ee.Date.fromYMD(year, 5, 1);
  var endDate = ee.Date.fromYMD(year, 6, 30);
  
  // 筛选Landsat 8 TOA影像
  var l8Collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filterBounds(roi)
    .filterDate(startDate, endDate)
    .filterMetadata('CLOUD_COVER', 'less_than', 30); // 初步云量筛选
  
  // 云评分去云函数
  var maskClouds = function(image) {
    var cloudScore = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud');
    var mask = cloudScore.lte(20); // 云评分≤20的区域保留
    return image.updateMask(mask).clip(roi);
  };
  
  // 去云并计算NDVI
  var ndviCollection = l8Collection.map(maskClouds).map(function(image) {
    var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
    return ndvi.set({
      'year': year,
      'system:time_start': image.get('system:time_start')
    });
  });
  
  // 合成该年份的NDVI均值影像(也可选择中值/最大值合成)
  var annualNdvi = ndviCollection.mean().set('year', year);
  return annualNdvi;
};

// 3. 生成逐年NDVI影像集
var annualNdviCollection = ee.ImageCollection.fromImages(years.map(processYear));

// 4. 将各年份NDVI加载到地图
var ndviVis = {min: -0.2, max: 0.8, palette: ['blue', 'white', 'green']};
annualNdviCollection.evaluate(function(images) {
  images.forEach(function(img) {
    var year = img.properties.year;
    var image = ee.Image(img.id);
    Map.addLayer(image, ndviVis, 'NDVI_' + year);
  });
});

// 5. 生成逐年NDVI均值统计图表
var statsChart = ui.Chart.image.series({
  imageCollection: annualNdviCollection,
  region: roi,
  reducer: ee.Reducer.mean(),
  scale: 30
})
.setOptions({
  title: '2013-2022年5-6月NDVI均值变化',
  vAxis: {title: 'NDVI均值'},
  hAxis: {title: '年份'},
  lineWidth: 2,
  pointSize: 4
});

print('逐年NDVI均值统计', statsChart);

关键功能说明

  • 逐年批量处理:通过ee.List.sequence生成2013-2022年份列表,用map调用处理函数完成每年同期影像的自动化处理,每个结果影像都带有year属性用于后续区分。
  • 云处理优化:保留原代码的云评分筛选逻辑,先按云量<30%初步筛选影像,再用simpleCloudScore将云评分≤20的区域保留,提升去云效果。
  • 影像集构建:将每年合成的NDVI均值影像整合为ImageCollection,方便后续地图加载与统计分析。
  • 地图加载:通过evaluate将影像集转为客户端列表,循环添加各年份NDVI图层,图层名称带年份标识便于切换查看。
  • 统计图表:使用ui.Chart.image.series基于影像集和研究区生成逐年NDVI均值折线图,直观展示时间变化趋势。

可调整参数提示

  • 可修改startYear和endYear调整年份范围;
  • 云量阈值(CLOUD_COVER和cloudScore.lte)可根据研究区云况调整;
  • 影像合成方式可将mean()改为median()或max(),适配不同研究需求;
  • 可视化参数ndviVis可根据区域植被特征调整颜色 palette 和数值范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:21:01