GEE24:合肥市1986-2024年年均NDVI变化分析

代码如下:

var roi = ee.FeatureCollection("users/yipeizhao736/HefeiProvince");
Map.centerObject(roi);
Map.addLayer(roi,{'color':'grey'},'roi');
// Applies scaling factors.
function applyScaleFactors(image) {
  var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
  var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
  return image.addBands(opticalBands, null, true)
              .addBands(thermalBands, null, true);
}
function rmCloudNew(image) {
  var cloudShadowBitMask = (1 << 4); 
  var cloudsBitMask = (1 << 3); 
  var qa = image.select('QA_PIXEL'); 
  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0) 
                 .and(qa.bitwiseAnd(cloudsBitMask).eq(0)); 
  return image.updateMask(mask)
              .copyProperties(image)
              .copyProperties(image, ["system:time_start"]);
}
var get_NDVI = function(image) {
  var NDVI=image.normalizedDifference(['nir','red']).rename(['NDVI']);
  image=image.addBands(NDVI)
  return image.select("NDVI")
};
var L8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
                .filterBounds(roi)
                .filter(ee.Filter.calendarRange(2014,2023,'year'))
                .filter(ee.Filter.calendarRange(1,12,'month'))
                .map(applyScaleFactors)
                .select(['SR_B4','SR_B5','QA_PIXEL'],['red','nir','QA_PIXEL'])
                .map(rmCloudNew)
                .map(get_NDVI);
var L7 = ee.ImageCollection('LANDSAT/LE07/C02/T1_L2')
                .filterBounds(roi)
                .filter(ee.Filter.calendarRange(2012,2013,'year'))
                .filter(ee.Filter.calendarRange(1,12,'month'))
                .map(applyScaleFactors)
                .select(['SR_B3','SR_B4','QA_PIXEL'],['red','nir','QA_PIXEL'])
                .map(rmCloudNew)
                .map(get_NDVI);
var L5 = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2')
                .filterBounds(roi)
                .filter(ee.Filter.calendarRange(1986,2011,'year'))
                .filter(ee.Filter.calendarRange(1,12,'month'))
                .map(applyScaleFactors)
                .select(['SR_B3','SR_B4','QA_PIXEL'],['red','nir','QA_PIXEL'])
                .map(rmCloudNew)
                .map(get_NDVI);
var Landsat = ee.ImageCollection(L8.merge(L7).merge(L5))
                .sort("system:time_start")
//print("Landsat_data",Landsat);
var precipitationVis = {
    min: -1,
    max: 1,
    palette: ["FFFFFF", "CE7E45", "DF923D", "F1B555", "FCD163",   
            "99B718", "74A901", "66A000", "529400", "3E8601",   
            "207401", "056201", "004C00", "023B01", "012E01",   
            "011D01", "011301"],
};
for(var i = 1986;i<=2023;i++){
  var ndvi_year = Landsat.filterDate(i+'-01-01', i+'-12-31').select('NDVI')
  var ndvi_mean = ndvi_year.mean().clip(roi)
  //print(i,ndvi_mean)
  //Map.addLayer(ndvi_mean, precipitationVis, i+'_ndvi_mean',false);
  Export.image.toDrive({
      image: ndvi_mean,
      description: i+'year_mean',
      region: roi,
      scale: 30,
      maxPixels: 1e13,
      folder: 'NDVI_year'
    })
}
var years = ee.List.sequence(1986, 2023);
var collectYear = ee.ImageCollection(years
  .map(function(y) {
    var start = ee.Date.fromYMD(y, 1, 1);
    var end = start.advance(12,'month');
    return Landsat.filterDate(start, end).reduce(ee.Reducer.mean()).float().set('system:time_start',y).set('year',y);
}));
print(collectYear,"ndvi_year")
var result_land = collectYear.mean().clip(roi);
print(result_land,'ndvi_mean');
Map.addLayer(result_land, precipitationVis, 'ndvi_mean');
Export.image.toDrive({
      image: result_land,
      description: 'ndvi_mean',
      region: roi,
      scale: 30,
      maxPixels: 1e13,
      folder: 'NDVI_year'
    })
var Yearly_chart = ui.Chart.image.series({
    imageCollection: collectYear.select('NDVI_mean'),
    region: roi,
    reducer: ee.Reducer.mean(),
    scale: 500,
    xProperty: 'year',
    }).setOptions({
      interpolateNulls: true,
      lineWidth: 2,
      title: 'NDVI Yearly Seires',
      vAxis: {title: 'NDVI'},
      hAxis: {title: 'Date'},
      trendlines: { 0: {title: 'NDVI_trend',type:'linear', showR2: true,  color:'red', visibleInLegend: true}}
    });
print(Yearly_chart);

研究区:

在这里插入图片描述

年均NDVI变化趋势:
在这里插入图片描述

GEE代码

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackson的生态模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值