简介
在本篇博客中,我们将通过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在不同领域的应用。