前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GEE代码实例教程详解:降水量异常分析

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

作者头像
Twcat_tree
发布2024-07-09 08:13:18
730
发布2024-07-09 08:13:18
举报
文章被收录于专栏:二猫の家

简介

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

背景知识

CHIRPS数据集

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

降水量异常

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

完整代码

代码语言:javascript
复制
// 定义研究区域的坐标点
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. 定义研究区域

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

2. 创建CHIRPS图像集合

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

3. 时间序列图像集合

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

4. 计算月降水量平均值

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

5. 计算降水量异常

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

6. 可视化降水量异常

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

7. 导出数据

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

结论

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

进一步探索

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 背景知识
    • CHIRPS数据集
      • 降水量异常
      • 完整代码
      • 代码详解
        • 1. 定义研究区域
          • 2. 创建CHIRPS图像集合
            • 3. 时间序列图像集合
              • 4. 计算月降水量平均值
                • 5. 计算降水量异常
                  • 6. 可视化降水量异常
                    • 7. 导出数据
                    • 结论
                    • 进一步探索
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档