当前位置:   article > 正文

GEE代码实例教程详解:降水量异常分析

GEE代码实例教程详解:降水量异常分析

简介

在本篇博客中,我们将通过Google Earth Engine (GEE) 分析特定区域内的降水量异常。利用UCSB-CHG提供的CHIRPS(Climate Hazards Group InfraRed Precipitation with Station data)数据集,我们可以监测2000年至2020年期间的降水量变化。

背景知识

CHIRPS数据集

CHIRPS数据集是一个高分辨率的全球降水量产品,它结合了红外估算和地面站数据,提供了每日降水量估计。

降水量异常

降水量异常指的是与长期平均降水量相比的偏差,这可以指示干旱或过量降水事件。

完整代码

// 定义研究区域的坐标点
var cor = [
  [54.04610024292115, 36.26824729036319],
  [56.30928383667115, 36.26824729036319],
  [56.30928383667115, 37.7942120428063],
  [54.04610024292115, 37.7942120428063],
  [54.04610024292115, 36.26824729036319]
];

// 创建多边形区域
var roi = ee.Geometry.MultiPolygon(cor);

// 将多边形添加到地图上
Map.addLayer(roi, {color: 'red'});

// 定义时间范围
var time_start = '2000';
var time_end = '2020';

// 创建CHIRPS图像集合并筛选数据
var chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY")
  .filterDate(time_start, time_end);

// 定义一个函数来创建时间序列的图像集合
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 = origin_date.advance(ee.Number(interval).add(1).multiply(i), unit);
    return collection.filterDate(start_date, end_date).sum()
      .set('system:time_start', start_date.millis())
      .set('system:time_end', end_date.millis());
  }));
}

// 创建月降水量图像集合
var monthly = temporal_collection(chirps, time_start, 240, 1, 'month');

// 计算月降水量平均值
var pr_mean = monthly.mean();

// 将平均降水量图层添加到地图上
Map.addLayer(pr_mean.clip(roi), {min: 0, max: 10, palette: ['blue', 'green', 'yellow']}, 'Mean Precipitation');

// 计算降水量异常
var anomaly = monthly.map(function(img) {
  return img.subtract(pr_mean)
    .copyProperties(img, img.propertyNames());
});

// 打印降水量异常的图表
print(
  ui.Chart.image.series({
    imageCollection: anomaly,
    region: roi,
    reducer: ee.Reducer.mean(),
    scale: 5000,
    xProperty: 'system:time_start'
  }).setChartType('ColumnChart')
);

// 将2010年的降水量异常图层添加到地图上
Map.addLayer(anomaly.filterDate('2010', '2011').toBands().clip(roi), {min: -5, max: 5, palette: ['red', 'yellow', 'green']}, 'Precipitation Anomaly 2010');

// 导出2010年的降水量异常图像到Google Drive
Export.image.toDrive({
  image: anomaly.filterDate('2010', '2011').toBands().clip(roi).float(),
  description: 'Precipitation Anomaly 2010',
  scale: 5000,
  region: roi,
  folder: 'Precipitation',
  crs: 'EPSG:4326'
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

代码详解

1. 定义研究区域

创建一个多边形区域roi,用于限定分析的地理范围。

2. 创建CHIRPS图像集合

获取CHIRPS数据集,并根据指定的时间范围筛选图像。

3. 时间序列图像集合

定义temporal_collection函数,用于生成按月汇总的降水量图像集合。

4. 计算月降水量平均值

使用mean方法计算整个时间序列的平均月降水量。

5. 计算降水量异常

通过从每月的降水量中减去平均值来计算降水量异常。

6. 可视化降水量异常

使用ui.Chart.image.series打印降水量异常的图表,并将其添加到地图上。

7. 导出数据

将2010年的降水量异常图像导出到Google Drive。

结论

本教程展示了如何使用GEE分析特定区域内的降水量异常。通过CHIRPS数据集,我们能够监测和可视化降水量的变化趋势,这对于理解气候变化和水资源管理至关重要。

进一步探索

GEE是一个强大的平台,可以用来分析各种环境和气候变化相关的问题。在后续的教程中,我们将继续探索GEE在不同领域的应用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/936320
推荐阅读
相关标签
  

闽ICP备14008679号