从气象小白到分析高手:手把手教你用ERA5-Land数据,为你的研究区域定制专属气候报告

张开发
2026/4/18 0:25:19 15 分钟阅读

分享文章

从气象小白到分析高手:手把手教你用ERA5-Land数据,为你的研究区域定制专属气候报告
从气象小白到分析高手手把手教你用ERA5-Land数据定制专属气候报告刚接触气象数据的研究者常面临一个共同困境如何将庞大的全球数据集转化为自己研究区域的具体气候特征去年为黄河流域湿地研究准备气候背景时我花了三周时间才弄明白如何从原始数据中提取出有用的信息。本文将分享一套经过验证的四步工作流教你用Google Earth EngineGEE和ERA5-Land数据快速生成专业级气候分析报告。1. 研究区域与数据准备在开始任何分析前明确研究区域边界是首要任务。以长三角城市群为例我们需要准备两种关键数据地理边界数据推荐使用GeoJSON格式相比Shapefile更轻量且兼容性更好。可通过以下方式获取从GADM数据库下载行政边界使用geojson.io在线绘制自定义区域导出QGIS中的研究区域图层ERA5-Land数据选择这个由ECMWF提供的再分析数据集包含多个关键变量变量名物理量单位适用场景temperature_2m2米气温K热岛效应、作物生长季分析total_precipitation_sum累计降水m水文循环、干旱评估u/v_component_of_wind_10m10米风速分量m/s风能潜力、污染物扩散surface_pressure地表气压Pa天气系统分析提示ERA5-Land的空间分辨率为0.1°×0.1°约9km时间分辨率可选小时或日聚合数据建议根据研究目的选择适当时间尺度。2. GEE平台数据处理实战登录GEE后通过以下代码实现研究区域数据提取。我们以2023年长三角日数据为例// 1. 加载研究区域 var studyArea ee.FeatureCollection(users/your_account/YangtzeDelta); Map.centerObject(studyArea, 7); Map.addLayer(studyArea, {color: red}, Study Area); // 2. 设置时间范围 var startDate 2023-01-01; var endDate 2023-12-31; // 3. 加载ERA5-Land日数据 var era5 ee.ImageCollection(ECMWF/ERA5_LAND/DAILY_AGGR) .filterDate(startDate, endDate) .select([temperature_2m, total_precipitation_sum, u_component_of_wind_10m, v_component_of_wind_10m]); // 4. 区域均值计算 var dailyStats era5.map(function(image) { var stats image.reduceRegion({ reducer: ee.Reducer.mean(), geometry: studyArea, scale: 10000 // 使用10km尺度匹配数据分辨率 }); return ee.Feature(null, stats).set(date, image.date().format(YYYY-MM-dd)); }); // 5. 导出结果 Export.table.toDrive({ collection: ee.FeatureCollection(dailyStats), description: YangtzeDelta_Climate_2023, fileFormat: CSV });这段代码会输出包含每日平均气温、降水、风速分量的CSV文件。几个关键点需要注意时间处理GEE使用UTC时间中国地区数据需8小时校正单位转换温度原始单位为K导出后需-273.15转为℃风速计算u/v分量需通过√(u²v²)计算实际风速3. 数据后处理与可视化获得原始数据后使用Python进行进一步分析。以下是常用库和示例代码import pandas as pd import matplotlib.pyplot as plt # 数据加载与预处理 df pd.read_csv(YangtzeDelta_Climate_2023.csv) df[date] pd.to_datetime(df[date]) df[temperature_2m] df[temperature_2m] - 273.15 # 开尔文转摄氏度 df[wind_speed] (df[u_component_of_wind_10m]**2 df[v_component_of_wind_10m]**2)**0.5 # 月平均气候态计算 monthly df.groupby(df[date].dt.month).mean() # 绘制气温降水双轴图 fig, ax1 plt.subplots(figsize(10,6)) ax1.bar(monthly.index, monthly[total_precipitation_sum]*1000, colorblue, alpha0.5) ax1.set_ylabel(Precipitation (mm), colorblue) ax2 ax1.twinx() ax2.plot(monthly.index, monthly[temperature_2m], colorred, markero) ax2.set_ylabel(Temperature (°C), colorred) plt.title(2023 Yangtze Delta Monthly Climate) plt.xticks(range(1,13), [Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec]) plt.grid(linestyle--, alpha0.5) plt.show()这种可视化能清晰展示区域气候特征比如长三角典型的雨热同期现象。对于更专业的分析可以考虑极端气候指标连续干旱日数、高温日数等时空变化趋势使用Mann-Kendall检验分析长期变化空间差异在GEE中生成研究区域内部分区的气候图4. 研究报告整合技巧将分析结果转化为论文或报告内容时建议采用以下结构气候均值特征年平均气温及季节变化年降水总量及月分配盛行风向和风速特征极端事件分析# 计算高温日数35℃ heat_days df[df[temperature_2m] 35].shape[0] # 计算强降水日数50mm heavy_rain_days df[df[total_precipitation_sum]*1000 50].shape[0]与其他区域对比制作气候特征对比表格使用箱线图展示差异分布方法说明数据来源和处理流程示意图精度验证方法如与气象站数据对比实际应用中我发现ERA5-Land数据在城市热岛效应研究中表现优异但在复杂地形区域如山区的降水数据可能需要结合地面观测进行校正。对于生态学研究建议额外提取土壤温度和湿度数据这些在ERA5-Land中同样可用。

更多文章