GEE:生成20年NDVI动图和下载(彩色,使用MODIS数据集)

高级版本

原代码链接
https://code.earthengine.google.com/5facc53010367119130e9f19832261c9?noload=true

2000年——2019年 ,效果如下图:
GEE:生成20年NDVI动图和下载(彩色,使用MODIS数据集)_第1张图片

var rect = ee.Geometry.Rectangle({
     
  coords: [[73, 31], [99, 48]],
  geodesic: false
});
Map.addLayer(rect);
Map.centerObject(rect, 3);

// 选择影像集
var collection = ee.ImageCollection("MODIS/006/MOD13Q1")
  .filterDate('2000-01-01', '2019-01-01')
  .select('NDVI');
print(collection);
//
var col=ee.List([]);
for(var i=2000;i<2019;i++){
     
  var img=collection.filterDate(i+'-01-01',i+'-12-31');
  var img_max=img.select("NDVI").max();
  col=col.add(img_max);
}

col=ee.ImageCollection(col);
print(col,"col");

// 作为预览,加载第一幅影像
var im = ee.Image(col.first());
Map.addLayer(im, {
     }, "first image");

// 可视化参数
var args = {
     
  crs: 'EPSG:3857',  // Maps Mercator
  dimensions: '300',
  region: rect,
  min: -2000,
  max: 10000,
  palette: 'black, blanchedalmond, green, green',
  framesPerSecond: 12,
};

// 制作动图,并且加载到地图上
var thumb = ui.Thumbnail({
     
//为“image”指定一个集合会使图像序列产生动画效果
  image: col,
  params: args,
  style: {
     
    position: 'bottom-right',
    width: '320px'
  }});
Map.add(thumb);

print(col.getVideoThumbURL(args));

初级版本

https://code.earthengine.google.com/dd5c37d509aea86527613f06b7d952c1?noload=true

效果如下图

因为MODIS的分辨率比较低,而且选择的区域比较小,所以是下图看起来不太清楚的样子。当然也可以设置彩色显示。
GEE:生成20年NDVI动图和下载(彩色,使用MODIS数据集)_第2张图片

var roi = ee.Geometry.Polygon(  
        [[112.51963551306746,26.815989026318352],
[112.6974766995909,26.815989026318352],
[112.6974766995909,26.931749679533954],
[112.51963551306746,26.931749679533954],
[112.51963551306746,26.815989026318352]], null, false);  

//合成20年的年最大NDVI
var sDate=ee.Date.fromYMD(2000,4,1);
var eDate=ee.Date.fromYMD(2020,4,1);

var year_list=ee.List.sequence(ee.Date(sDate).get("year"), ee.Number(ee.Date(eDate).get("year")).subtract(1));

var sss=function(num){
     
  var time=ee.Date.fromYMD(num, 1, 1);
  var year_image=ee.ImageCollection('MODIS/006/MOD13A1')
                  .filterDate(time,ee.Date(time).advance(1,'year'))
                  .max()
                  .clip(roi);
  var year_ndvi=year_image.select('NDVI');
      year_ndvi=year_ndvi.addBands(ee.Image.constant(num).toFloat());   
  return year_ndvi;
};

year_list=year_list.map(sss);
var img_collection=ee.ImageCollection.fromImages(year_list);

print("img_collection", img_collection);

var params = {
       
    crs: 'EPSG:3857',  
    framesPerSecond: 2,  
    region: roi,  
    min: -2000,  
    max: 10000,  
    bands: ["NDVI"],  
    dimensions: 512, 
  }; 
  
print(ui.Thumbnail(img_collection, params));  
  // 使用缩略图来制作展示  
print(img_collection.getVideoThumbURL(params));

值得注意的是,getVideoThumbURL( )函数只可以显示矩形区域的动图,如果使用行政区边界切割的话,是不可以显示的。

你可能感兴趣的:(GEE,Geemap,云计算,程序人生,经验分享,算法,1024程序员节)