数据集介绍

MOD13Q1 V6.1 产品提供植被指数 (VI) 以每像素为基础的值。有两个主要植被层。 第一个是归一化差异植被指数(NDVI) 这被称为现有国家 海洋和大气管理局-高级超高分辨率 辐射计 (NOAA-AVHRR) 衍生的 NDVI。第二植被层 是最小化冠层背景的增强植被指数 (EVI) 在茂密的植被条件下变化并保持敏感性。 EVI还使用蓝色波段来去除残留的大气污染 由烟雾和亚像素薄云引起。MODIS的NDVI EVI 乘积是根据大气校正的双向计算得出的 被水、云、重物掩盖的表面反射率 气溶胶和云影。

数据集链接: https://developers.google.com/earth-engine/datasets/catalog/MODIS_061_MOD13Q1

生成NDVI变化曲线代码

本文目的是以某点(十进制经纬度)为中心,生成一定半径的缓冲区作为研究区域,获取每张NDVI影像在该范围内的均值,并画出所定义时间范围内的研究区域NDVI时间变化曲线。

/*
2024年3月28日
writted by CUGB——small snail
*/

// 定义ROI,也可自己导入所需的矢量边界
//定义经纬度
var lon =116;
var lat = 40;
var point = ee.Geometry.Point(lon, lat);
//生成缓冲区
var bufferRadius = 2000;
var roi = point.buffer(bufferRadius);

//地图上显示研究区
Map.addLayer(roi, { color: "ffff00ff", fillColor: "00000000" }, "所选地区");
Map.centerObject(roi, 13);
// 定义时间范围
var startDate = '2019-01-01';
var endDate = '2020-12-31';

// 获取时间范围内的MODIS NDVI影像集
var ndviCollection = ee.ImageCollection('MODIS/061/MOD13Q1')
  .filterDate(startDate, endDate)
  .filterBounds(roi)
  .select('NDVI');
print(ndviCollection);

// 计算每16天的平均值
var ndviMean = ndviCollection.map(function(image) {
  image = image.clip(roi);
  var ndviScaled = image.divide(10000); // 除以比例因子
  var mean = ndviScaled.reduceRegion({
    reducer: ee.Reducer.mean(),
    geometry: roi,
    scale: 250, // 设置适当的分辨率
    maxPixels: 1e9
  });
  return image.set('mean_ndvi', mean.get('NDVI'));
});
print(ndviMean);

// 转换为FeatureCollection
var ndviFeatures = ndviMean.map(function(image) {
  return ee.Feature(null, {
    'date': image.date().format('yyyy-MM-dd'),
    'mean_ndvi': image.get('mean_ndvi')
  });
});

// 转换为表格
var ndviTable = ee.FeatureCollection(ndviFeatures);
print('NDVI Table:', ndviTable);

// 输出表格到 Google Drive
Export.table.toDrive({
  collection: ndviTable,
  description: 'NDVI_Table',
  fileFormat: 'CSV', // 也可以选择其他格式
  selectors: ['date', 'mean_ndvi'], // 选择要导出的列
});


// 创建一个时间序列图表
var chartNDVI = ui.Chart.feature.byFeature(ndviTable, 'date', ['mean_ndvi'])
  .setChartType('LineChart')
  .setOptions({
    title: 'NDVI 时间序列',
    hAxis: {title: '日期'},
    vAxis: {title: '平均 NDVI'},
    series: {0: {color: 'green'}}
  });

// 直接打印图表,使其显示在右侧控制台栏中
print(chartNDVI);

运行结果

请添加图片描述

显示NDVI地图代码

/*
2024年5月1日
writted by CUGB small snail
*/
//可以自己框选范围设置自己想要的roi。
var roi = ee.Geometry.Polygon(
        [[[115.6927503485495, 41.13799022822679],
          [115.6927503485495, 39.707895740978756],
          [117.7911390204245, 39.707895740978756],
          [117.7911390204245, 41.13799022822679]]], null, false);
var dataset = ee.ImageCollection('MODIS/061/MOD13Q1')
                  .filter(ee.Filter.date('2018-01-01', '2018-05-01'))
                  .filterBounds(roi) // 过滤在指定几何范围内的图像
                  .map(function(image) {
                      return image.clip(roi);
                  });
var ndvi = dataset.select('NDVI');
var ndviVis = {
  min: 0,
  max: 8000,
  palette: [
    'ffffff', 'ce7e45', 'df923d', 'f1b555', 'fcd163', '99b718', '74a901',
    '66a000', '529400', '3e8601', '207401', '056201', '004c00', '023b01',
    '012e01', '011d01', '011301'
  ],
};
//在地图中展示
Map.addLayer(ndvi, ndviVis, 'NDVI');

运行结果

请添加图片描述

求赞,如果觉得有用的话,动动您的小手点个赞吧。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐