当前位置: 首页 > news >正文

河南省 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:

    1. 2020–2025 每月数据
    2. 2020–2024 月均值

8. 总结

  • 本教程展示了如何在 GEE 中:

    1. 获取区域气象数据
    2. 处理温度、降水、土壤含水量等变量
    3. 计算每月均值和多年度平均
    4. 导出 CSV 方便进一步分析
  • 可根据需求扩展为其他省份或变量,支持作物模型、干旱监测等应用。

http://www.dtcms.com/a/390079.html

相关文章:

  • IIS短文件漏洞修复全攻略
  • jdk-7u25-linux-x64.tar.gz 安装教程(Linux下JDK 7 64位解压配置详细步骤附安装包)
  • 边界值分析法的测试用例数量:一般边界值分析(4n+1)和健壮性测试(6n+1)计算依据
  • 基于飞算AI的图书管理系统设计与实现
  • Day26_【深度学习(6)—神经网络NN(1)重点概念浓缩、前向传播】
  • 软考 系统架构设计师系列知识点之杂项集萃(151)
  • Python基础 2》运算符
  • docker 部署 sftp
  • 数字ic笔试
  • 武汉火影数字|数字展厅设计制作:多媒体数字内容打造
  • LLM模型的参数量估计
  • STM32H743-学习HAL库
  • 一键防范假票入账-发票识别接口-发票查验接口-信息提取
  • RTEMS 控制台驱动
  • flutter在列表页面中通过监听列表滑动偏移量控制页面中某个控件的透明度
  • linux上升级nginx版本
  • WINCC结构变量/公共弹窗
  • 信息化项目验收计划方案书
  • 1.数据库概述和三种主要控制语言
  • 找到nohup启动的程序并杀死
  • 电磁干扰EMI (Electromagnetic Interference)是什么?
  • python提取域名
  • PR工具timing report中setup time的计算过程
  • 低延迟垃圾收集器:挑战“不可能三角”
  • 【测试】发版测试准入准出标准
  • 第一部分:HTML
  • 贪心算法应用:带权任务间隔调度问题详解
  • 视频监控大数据建模分析
  • IP的重要性
  • 远程访问管理爱快路由器