GEE代码实例教程详解:蒸散发与作物水分胁迫指数分析

2024-07-09 08:08:32 浏览数 (2)

简介

在本篇博客中,我们将使用Google Earth Engine (GEE) 对蒸散发 (Evapotranspiration, ET) 和作物水分胁迫指数 (Crop Water Stress Index, CWSI) 进行分析。通过MODIS数据集,我们可以评估2001年至2024年间的水分状况和作物生长环境。

背景知识

MODIS数据集

MODIS/061/MOD16A2GF数据集提供了MODIS的蒸散发和潜在蒸散发(Potential Evapotranspiration, PET)数据,这些数据可以用来评估水分状况和作物水分需求。

蒸散发 (ET)

蒸散发是植被和土壤通过植被覆盖向大气释放水分的过程。

作物水分胁迫指数 (CWSI)

CWSI是一个基于ET和PET的指标,用于评估作物水分状况。CWSI的计算公式为: [ CWSI = 1 - frac{ET}{PET} ]

完整代码

代码语言:javascript复制
// 定义研究点坐标
var cor = [46.00719637247596, 37.199483887704204];
var loc = ee.Geometry.Point(cor);

// 加载WWF HydroSHEDS流域数据集并筛选研究区域
var roi = ee.FeatureCollection("WWF/HydroSHEDS/v1/Basins/hybas_5").filterBounds(loc);
Map.centerObject(roi);
Map.addLayer(roi);

// 定义时间范围
var time_start = '2001', time_end = '2024';

// 加载MODIS ET和PET数据集
var modis = ee.ImageCollection("MODIS/061/MOD16A2GF")
  .select('ET', 'PET')
  .filterDate(time_start, time_end);

// 计算平均ET
var et_mean = modis.select('ET').mean().multiply(0.1);
Map.addLayer(et_mean.clip(roi), [], 'et_mean', false);

// 计算夏季平均ET
var et_mean_summer = modis.select('ET')
  .filter(ee.Filter.calendarRange(6, 8, 'month')).mean().multiply(0.1);
Map.addLayer(et_mean_summer.clip(roi), [], 'et_summer', false);

// 导出平均ET图像
Export.image.toDrive({
  image: et_mean.clip(roi),
  description: 'et_mean',
  region: roi,
  scale: 500,
  crs: et_mean.getInfo().crs,
  maxPixels: 1e13,
  folder: 'evapotranspiration'
});

// 计算CWSI
var cwsi = modis.map(function (img) {
  var et = img.select('ET').multiply(0.1);
  var pet = img.select('PET').multiply(0.1);
  var cwsi = img.expression('1 - (et / pet)', {
    'et': et,
    'pet': pet
  }).rename('cwsi');
  return cwsi.copyProperties(img, ['system:time_start', 'system:time_end']);
});

var cwsi_mean = cwsi.mean();
Map.addLayer(cwsi_mean.clip(roi), [], 'cwsi_mean', false);

// 加载MODIS土地覆盖数据集
var lc = ee.ImageCollection("MODIS/061/MCD12Q1")
  .select('LC_Type1')
  .mode();

// 筛选作物区域
var crop = lc.eq(12);
Map.addLayer(crop.clip(roi), [], 'crop', false);

// 应用掩膜到CWSI
var cwsi_crop = cwsi_mean.updateMask(crop);
Map.addLayer(cwsi_crop.clip(roi), [], 'cwsi_mean_crop', false);

代码详解

1. 定义研究点

创建一个点对象loc,用于确定研究区域。

2. 加载流域数据集

加载WWF HydroSHEDS流域数据集,并筛选与研究点相交的区域roi

3. 加载MODIS ET和PET数据集

加载指定时间范围内的MODIS ET和PET数据。

4. 计算平均ET

计算整个时间序列的平均ET,并将其乘以0.1进行单位转换。

5. 导出平均ET图像

将平均ET图像导出到Google Drive。

6. 计算CWSI

基于ET和PET计算CWSI。

7. 应用掩膜到CWSI

使用MODIS土地覆盖数据筛选作物区域,并将CWSI结果应用掩膜。

8. 绘制CWSI图层

将CWSI图层添加到地图上。

结论

本教程展示了如何使用GEE对MODIS数据进行ET和CWSI的计算和分析。通过这些指标,我们可以评估作物水分状况和干旱等级。

进一步探索

GEE提供了多种工具和方法来进行水分状况和作物健康分析。在后续的教程中,我们将继续探索GEE在不同领域的应用。

0 人点赞