介绍
在本教程中,我们将使用 Google Earth Engine (GEE) ,获取特定区域(通过经纬度定义的矩形区域)内的降水量(或温度)数据,并将这些数据导出为 CSV 格式。我们将探索如何进行数据筛选、计算月度降水量、应用色带(color ramp)以及导出处理后的数据。
准备工作
首先,你需要在 Google Earth Engine 上创建一个账户并访问代码编辑器。确保你有足够的权限来访问 ERA5 数据集以及可以进行数据导出。
代码解析
1. 定义区域
我们使用 ee.Geometry.Rectangle
定义了一个矩形区域,作为分析区域。这里的经纬度坐标选择了一个大的矩形区域,但你可以根据自己的需求进行调整。
var lake = ee.Geometry.Rectangle({
coords: [[70.5, 4], [137, 56]], geodesic:false});
2. 定义变量和时间范围
我们选择了 ERA5 数据集中的 temperature_2m
变量进行分析,表示 2 米高度的温度数据,而不是降水量数据。在实际应用中,你可以根据需要切换到降水量相关的变量(例如 total_precipitation_sum
)。
var value = 'temperature_2m'; // 温度变量
var StartYear = 2020; // 起始年份
var EndYear = 2023; // 结束年份
3. 过滤并获取数据
通过 ee.ImageCollection
对 ERA5 数据集进行时间范围的筛选,我们选择了 2023 年 12 月的数据,并将数据裁剪。
var image = ee.ImageCollection('ECMWF/ERA5_LAND/MONTHLY_AGGR')
.filterDate('2023-12-01', '2023-12-30') // 根据时间范围过滤数据
.select(value) // 选择温度数据
.first() // 选择时间段内的第一个图像
.clip(lake); // 裁剪到湖泊区域
4. 色带定义
我们为温度数据创建了一个色带(color ramp),从蓝色(低温)到红色(高温)。通过这种方式,可以在地图上清晰地看到不同区域的温度变化。
var precipVis = {
min: 250, // 最小值
max: 300, // 最大值
palette: ['blue', 'green', 'yellow', 'red'] // 定义一个简单的色带
};
5. 绘制地图和设置视图
在地图上添加了定义好的图像层,并设置了地图的视图中心为湖泊区域。缩放级别设置为 3,以便在地图上看到更大范围的数据。
Map.addLayer(image, precipVis, 'Precipitation');
Map.centerObject(lake, 3); // 将地图视图设置为湖泊区域,并设置缩放级别
6. 遍历年份和月份,获取每月数据
通过循环,我们遍历了从 2020 到 2023 年的所有月份,并逐月获取温度数据。在每次循环中,我们使用 reduceRegion
计算了每个月的区域平均温度,并将其添加到数据列表中。
for (var j = StartYear; j <= EndYear; j++) {
f