河南省 ERA5 气象数据处理教程(2020–2025 每月均值)
河南省 ERA5 气象数据处理教程(2020–2025 每月均值)
本文介绍如何使用 Google Earth Engine (GEE) 获取河南省 2020–2025 年 ERA5-Land 日值数据,并计算每月均值,生成 2020–2024 年月平均数据,最后导出 CSV 文件。
1. 准备工作
数据来源
-
边界矢量:自建 FeatureCollection
projects/ee-tilmacatanla/assets/boundry/china_provinces
-
气象数据:ERA5-Land 日值聚合数据集
ECMWF/ERA5_LAND/DAILY_AGGR
-
变量:
temperature_2m
:2米气温(K)temperature_2m_max
:最高气温(K)temperature_2m_min
:最低气温(K)volumetric_soil_water_layer_1
:土壤含水量 0–7cm(m³/m³)total_precipitation_sum
:日降水量(m)total_evaporation_sum
:日蒸发量(m)
-
2. 载入河南省边界
var china_provinces = ee.FeatureCollection("projects/ee-tilmacatanla/assets/boundry/china_provinces");
var henan = china_provinces.filter(ee.Filter.eq('name','河南省')).geometry();
- 使用
filter
选取河南省几何边界。 - 后续计算区域均值都基于此范围。
3. 设置年份和月份
var allYears = ee.List.sequence(2020, 2025);
var allMonths = ee.List.sequence(1,12);
- 定义年份和月份列表,方便循环计算每月数据。
4. 定义计算每月河南省平均函数
function monthlyERA5(year, month) {var start = ee.Date.fromYMD(year, month, 1);var end = start.advance(1, 'month');var era5 = ee.ImageCollection("ECMWF/ERA5_LAND/DAILY_AGGR").filterDate(start, end).filterBounds(henan);var era5_proc = era5.map(function(img) {return ee.Image.cat([img.select('temperature_2m').subtract(273.15).rename('Tmean_C'),img.select('temperature_2m_max').subtract(273.15).rename('Tmax_C'),img.select('temperature_2m_min').subtract(273.15).rename('Tmin_C'),img.select('volumetric_soil_water_layer_1').rename('Soil0_7cm_m3m3'),img.select('total_precipitation_sum').multiply(1000).rename('Precip_mm'),img.select('total_evaporation_sum').multiply(1000).rename('Evap_mm')]);});var meanDict = era5_proc.mean().reduceRegion({reducer: ee.Reducer.mean(),geometry: henan,scale: 10000,maxPixels: 1e13});var Tmean = ee.Algorithms.If(meanDict.contains('Tmean_C'), meanDict.get('Tmean_C'), null);var Tmax = ee.Algorithms.If(meanDict.contains('Tmax_C'), meanDict.get('Tmax_C'), null);var Tmin = ee.Algorithms.If(meanDict.contains('Tmin_C'), meanDict.get('Tmin_C'), null);var Soil = ee.Algorithms.If(meanDict.contains('Soil0_7cm_m3m3'), meanDict.get('Soil0_7cm_m3m3'), null);var Precip= ee.Algorithms.If(meanDict.contains('Precip_mm'), meanDict.get('Precip_mm'), null);var Evap = ee.Algorithms.If(meanDict.contains('Evap_mm'), meanDict.get('Evap_mm'), null);return ee.Feature(null, {'year': year,'month': month,'Tmean_C': Tmean,'Tmax_C': Tmax,'Tmin_C': Tmin,'Soil0_7cm_m3m3': Soil,'Precip_mm': Precip,'Evap_mm': Evap});
}
- 将温度单位从 K 转为 °C。
- 降水和蒸发量从米转换为毫米。
- 使用
ee.Algorithms.If
处理缺失值,保证安全获取。
5. 生成 2020–2025 年每月 FeatureCollection
var allMonthlyNested = allYears.map(function(y){return allMonths.map(function(m){return monthlyERA5(y, m);});
});var allMonthlyFC = ee.FeatureCollection(ee.List(allMonthlyNested).flatten());
print('河南省 2020-2025 每月均值', allMonthlyFC);
- 使用嵌套循环,生成每年每月的 Feature。
flatten()
将嵌套列表展平为单一 FeatureCollection。
6. 计算 2020–2024 年每月平均
var monthly_2020_2024 = allMonthlyFC.filter(ee.Filter.lte('year', 2024));var monthlyMean_5yr = allMonths.map(function(m){var monthData = monthly_2020_2024.filter(ee.Filter.eq('month', m));return ee.Feature(null, {'month': m,'Tmean_C': monthData.aggregate_mean('Tmean_C'),'Tmax_C': monthData.aggregate_mean('Tmax_C'),'Tmin_C': monthData.aggregate_mean('Tmin_C'),'Soil0_7cm_m3m3': monthData.aggregate_mean('Soil0_7cm_m3m3'),'Precip_mm': monthData.aggregate_mean('Precip_mm'),'Evap_mm': monthData.aggregate_mean('Evap_mm')});
});var monthlyMeanFC = ee.FeatureCollection(monthlyMean_5yr);
print('河南省 2020-2024 每月均值', monthlyMeanFC);
- 对 2020–2024 年同一月份数据取平均,生成 5 年月均值。
7. 导出 CSV 文件
Export.table.toDrive({collection: allMonthlyFC,description: 'Henan_ERA5_2020_2025',folder: 'Henan_ERA5',fileNamePrefix: 'Henan_ERA5_2020_2025',fileFormat: 'CSV',selectors: ['year','month','Tmean_C','Tmax_C','Tmin_C','Soil0_7cm_m3m3','Precip_mm','Evap_mm']
});Export.table.toDrive({collection: monthlyMeanFC,description: 'Henan_ERA5_MonthlyMean_2020_2024',folder: 'Henan_ERA5',fileNamePrefix: 'Henan_ERA5_MonthlyMean_2020_2024',fileFormat: 'CSV',selectors: ['month','Tmean_C','Tmax_C','Tmin_C','Soil0_7cm_m3m3','Precip_mm','Evap_mm']
});
-
导出两份 CSV:
- 2020–2025 每月数据
- 2020–2024 月均值
8. 总结
-
本教程展示了如何在 GEE 中:
- 获取区域气象数据
- 处理温度、降水、土壤含水量等变量
- 计算每月均值和多年度平均
- 导出 CSV 方便进一步分析
-
可根据需求扩展为其他省份或变量,支持作物模型、干旱监测等应用。