一、ERA5-Land
ERA5-Land是由欧洲中期天气预报中心(ECMWF)提供的高分辨率气候重分析数据集,相较于ERA5,ERA5-Land在空间分辨率上进行了提升,提供了更加精细的陆地气候变量数据。该数据集利用重分析技术,将全球观测数据与模型数据结合,基于物理定律生成全球一致的时空数据,涵盖了从1950年至今的多个气候变量。ERA5-Land数据的空间分辨率约为11132米,时空分辨率为月度平均,适用于大范围的气候分析和环境监测。
数据链接:https://cds.climate.copernicus.eu
二、气候变量
数据集包括50个气候变量,如2米气温、土壤温度、降水、风速、蒸发、土壤水分等,其中包含流量(累积)和非流量(平均)变量。
三、GEE代码
本次示例以某区域的月度和年度气温数据为例,大家只需更改研究区和波段参数即可。在气温数据中,我们将温度单位从开尔文转换为摄氏度,因此减去了273.15。若需要其他单位转换,可以调整该部分代码。
1. 合成并导出年度气温数据,并绘制年际变化折线图
var geometry = table;
var dataset = ee.ImageCollection("ECMWF/ERA5_LAND/MONTHLY_AGGR");
var yearlyTemperatures = [];
var years = [];
for (var i = 1950; i <= 1952; i++) {
var data_collection = dataset.filterDate(i+'-01-01', i+'-12-31').select('temperature_2m');
var YR_collection = data_collection.mean().subtract(273.15).clip(geometry);
Export.image.toDrive({
image: YR_collection,
description: i + '_temperature',
fileNamePrefix: i + '_temperature',
scale: 11132,
region: geometry,
maxPixels: 1e13,
crs: "EPSG:4326",
folder: 'TemperatureData'
});
var meanTemp = YR_collection.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: geometry,
scale: 11132,
maxPixels: 1e8
});
yearlyTemperatures.push(meanTemp.get('temperature_2m'));
years.push(i);
}
var chart = ui.Chart.array.values({
array: ee.Array(yearlyTemperatures),
axis: 0,
xLabels: years
}).setChartType('LineChart')
.setOptions({
title: 'Annual Average Temperature Change (°C)',
hAxis: {title: 'Year'},
vAxis: {title: 'Temperature (°C)'},
lineWidth: 1,
pointSize: 1,
colors: ['black']
});
print(chart);
2. 合成并导出月度气温数据,并绘制月度变化折线图
var geometry = ee.FeatureCollection('users/yusuhenhao/beijing');
Map.centerObject(geometry, 8);
var dataset = ee.ImageCollection("ECMWF/ERA5_LAND/MONTHLY_AGGR").select('temperature_2m');
var monthlyTemperature = [];
for (var i = 2018; i <= 2023; i++) {
for (var j = 1; j <= 12; j++) {
var startDate = ee.Date.fromYMD(i, j, 1);
var endDate = startDate.advance(1, 'month').advance(-1, 'day');
var data_collection = dataset.filterDate(startDate, endDate).mean();
var monthlyTemp = data_collection.subtract(273.15).clip(geometry).set({
'year': i,
'month': j,
'system:time_start': startDate.millis()
});
var meanTemp = monthlyTemp.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: geometry,
scale: 11132,
maxPixels: 1e13
}).get('temperature_2m');
var feature = ee.Feature(null, {
'time': startDate.format('YYYY-MM'),
'temperature_mean': meanTemp
});
monthlyTemperature.push(feature);
Export.image.toDrive({
image: monthlyTemp,
description: i + '_' + j + '_temperature',
fileNamePrefix: i + '_' + j + '_temperature',
folder: 'TemperatureData',
scale: 11132,
region: geometry,
crs: "EPSG:4326",
maxPixels: 1e13
});
}
}
var chart = ui.Chart.feature.byFeature(ee.FeatureCollection(monthlyTemperature), 'time', 'temperature_mean')
.setChartType('LineChart')
.setOptions({
title: 'Monthly Temperature (2018-2023)',
hAxis: {
title: 'Time',
slantedText: true,
slantedTextAngle: 45
},
vAxis: {title: 'Temperature (°C)'},
lineWidth: 1,
pointSize: 1,
colors: ['black']
});
print(chart);
3. 绘制空间分布图
以1952年中国区域的气温为例,绘制空间分布图。此图基于Python代码,相关代码示例链接:Python | 绘制中国及四川省栅格数据空间分布图。
四、成为会员