Loading...
墨滴

惊喜疑羞

2021/08/01  阅读:25  主题:山吹

EVI

//数据集MODIS
 var collection = ee.ImageCollection('MODIS/006/MOD13A1').select('EVI');
 // 时间基准
var reference = collection.filterDate('2001-01-01''2010-12-31')
  .sort('system:time_start');
  //EVI中间值
 var mean = reference.mean();
 //调色盘
var vis = {min2000max5000palette: ['brown','yellow','green']};
//地图上显示 
Map.addLayer(mean, vis, 'Reference EVI');
//近期的数据集
 var recent = collection.filterDate('2011-01-01''2018-12-31');
 //近期的平均值
 var meanRecent = recent.mean();
 // 显示
 Map.addLayer(meanRecent, vis, 'Recent EVI');
 //函数减去近期的中间值
var subtractmean = function(image{
  return image.subtract(mean).copyProperties(image, ['system:time_start']);
};

//创建减去近期中间值的变量
var anomalies = recent.map(subtractmean);
//通过求和绘制显示累积异常图
Map.addLayer(anomalies.sum(), {
  min-10000,
  max10000,
  palette: [
    'darkred','red','yellow','green','darkgreen'
  ]}, 'Cumulative anomaly');
//第一个图像的时间戳
var time0 = reference.first().get('system:time_start');
//创建空列表以提供EVI异常可以映射到的结构
var first = ee.List([
  ee.Image(0).set('system:time_start', time0).rename('EVI')
]);
//函数用来迭代时间并累积异常
var accumulate = function(image, list{
  var previous = ee.Image(ee.List(list).get(-1));
  var added = image.add(previous)
    .set('system:time_start', image.get('system:time_start'));
  return ee.List(list).add(added);
};
//运行
var cumulative = ee.ImageCollection(ee.List(
  anomalies.iterate(accumulate, first)
));
//指定中心和缩放范围
Map.centerObject(roi, 7);
//定义图表参数
var chartParam = {
 title'Cumulative EVI anomaly over time',
  hAxis: {title'Time'},
  vAxis: {title'Cumulative EVI anomaly'},
};
//绘制图表
var chart = ui.Chart.image.seriesByRegion({
  imageCollection: cumulative,
  regions: roi,
  reducer: ee.Reducer.mean(),
  band'EVI',
  scale500,
  xProperty'system:time_start',
  seriesProperty'PROJECT'
});
//输出
print(chart.setOptions(chartParam));

惊喜疑羞

2021/08/01  阅读:25  主题:山吹

作者介绍

惊喜疑羞