GEE 图表:使用 Google Earth Engine 计算并分析了特定区域的2015-2024年植被状况指数(VCI)时间序列

简介

使用 Google Earth Engine 分析植被状况指数 (VCI) 时间序列

在这篇博客中,我们将探讨如何利用 Google Earth Engine (GEE) 分析特定区域的植被状况指数(VCI)时间序列。我们将使用 MODIS NDVI 数据集,该数据集提供了归一化植被指数(NDVI),用于监测植被健康状况。

1. 定义研究区域

首先,我们需要定义我们的研究区域(ROI)。在本示例中,我们将使用一个名为 WMH_Distric 的矢量文件,并通过 dt_code 进行过滤。

var roi = ee.FeatureCollection('projects/gee-trial2/assets/Shapfile/WMH_Distric')
    .filter(ee.Filter.eq('dt_code', 526));
Map.centerObject(roi);

2. 设置时间范围

接下来,我们设置分析的时间范围,从 2015 年 1 月 1 日到 2023 年 12 月 31 日。

var time_start = '2015-01-01';
var time_end = '2023-12-31';

3. 获取 MODIS NDVI 数据

我们将使用 MODIS NDVI 数据集(MODIS/061/MOD13Q1),该数据集提供每16天的 NDVI 数据。我们会对数据集进行过滤,以获取指定时间范围内的 NDVI 数据,并进行缩放处理。

var modisNDVI = ee.ImageCollection("MODIS/061/MOD13Q1")
    .select('NDVI')
    .filterDate(time_start, time_end)
    .filterBounds(roi)
    .map(function(img) {
      return img.multiply(0.0001)  // NDVI 缩放因子
        .copyProperties(img, img.propertyNames());
    });

4. 时间聚合

为了分析 NDVI 的时间序列,我们需要将 NDVI 数据聚合为每16天的均值。我们定义了一个函数 temporal_collection 来实现这一功能。

function temporal_collection(collection, start, count, interval, unit) {
  var seq = ee.List.sequence(0, ee.Number(count).subtract(1));
  var origin_date = ee.Date(start);
  return ee.ImageCollection(seq.map(function(i) {
    var start_date = origin_date.advance(ee.Number(interval).multiply(i), unit);
    var end_date = start_date.advance(interval, unit);
    return collection.filterDate(start_date, end_date).mean()
      .set('system:time_start', start_date.millis())
      .set('system:time_end', end_date.millis());
  }));
}

// 计算从 2015 年到 2023 年的16天间隔总数
var totalIntervals = ee.Date(time_end).difference(ee.Date(time_start), 'day').divide(16).round();
var ndviCollection = temporal_collection(modisNDVI, time_start, totalIntervals, 16, 'day');

5. 计算植被状况指数 (VCI)

接下来,我们将计算 VCI。VCI 的计算公式为:

[ \text{VCI} = \left( \frac{\text{NDVI} - \text{NDVI}{\text{min}}}{\text{NDVI}{\text{max}} - \text{NDVI}_{\text{min}}} \right) \times 100 ]

我们首先计算 NDVI 的最小值和最大值,然后使用该公式计算 VCI。

var ndvi_min = ndviCollection.reduce(ee.Reducer.min());
var ndvi_max = ndviCollection.reduce(ee.Reducer.max());

var vciCollection = ndviCollection.map(function(img) {
  var vci = img.expression('((ndvi - min) / (max - min)) * 100', {
    'ndvi': img,
    'min': ndvi_min,
    'max': ndvi_max
  }).rename('VCI');
  return vci.copyProperties(img, img.propertyNames());
});

6. 绘制 VCI 时间序列

我们可以使用 GEE 的图表功能绘制 VCI 的时间序列,以便直观地观察植被状况的变化。

print(ui.Chart.image.series(vciCollection, roi, ee.Reducer.mean(), 500, 'system:time_start')
  .setOptions({
    title: 'VCI 时间序列',
    vAxis: { title: 'VCI (%)' },
    hAxis: { title: '日期' }
  }));

7. 可选:导出 VCI 数据

最后,我们可以选择将 VCI 数据导出为 CSV 文件,以便后续分析。

Export.table.toDrive({
  collection: vciCollection.map(function(img) {
    return img.reduceRegions({
      collection: roi,
      reducer: ee.Reducer.mean(),
      scale: 500
    }).map(function(f) {
      return f.set('time', img.get('system:time_start'));
    });
  }).flatten(),
  description: 'VCI_TimeSeries',
  fileFormat: 'CSV'
});

结论

通过上述步骤,我们成功地使用 Google Earth Engine 计算并分析了特定区域的植被状况指数(VCI)时间序列。这一过程展示了如何利用 MODIS NDVI 数据来监测植被健康,为农业管理和生态研究提供了重要的数据支持。

结果

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

此星光明

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

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

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

打赏作者

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

抵扣说明:

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

余额充值