Era5每日气温数据提取月最高气温、最低气温——GEE

  • 什么是ERA5数据?

ERA5是由欧洲中期天气预报中心(ECMWF)提供的第五代全球气候再分析数据。它提供了从1979年至今的逐小时气象数据,包括温度、降水、风速等关键气候变量。ERA5数据的空间分辨率高达0.1°,为我们提供了前所未有的气候细节。

  • 要在Google Earth Engine (GEE) 中提取ERA5每日的小时气温数据并计算月最高气温和最低气温,您可以使用以下步骤:
  1. 导入ERA5每日数据集: 选择ERA5 Daily数据集,并选择所需的温度变量,例如mean_2m_air_temperature

  2. 过滤数据: 根据您的需求,过滤特定的日期范围和地理区域。

  3. 计算每日最高温度: 对每一天的数据,使用.reduce()函数计算最高温度。

  4. 计算每月最高温度: 对每月的数据,使用.reduce()函数计算最高温度

  5. 重采样: 如果需要,使用.resample()方法对数据进行重采样。

  6. 转换温度单位: 如果数据是以开尔文为单位,则需要转换为摄氏度。

  7. 导出数

    
    var roi = ee.FeatureCollection("projects/ee-jiarui25789/assets/hb");
    Map.centerObject(roi, 10)
    
    var startYear = 2000;
    var endYear = 2001
    // 定义ERA5-Land数据集
    var data = ee.ImageCollection("ECMWF/ERA5_LAND/HOURLY")
        .select("temperature_2m");
    
    // 设置可视化参数
    var visParams = {
      min: -30.0,
      max: 30.0,
      palette: ['blue', 'green', 'red']
    };
    // 遍历每一年
    for (var year = startYear; year <= endYear; year++) {
      // 遍历每个月
      for (var month = 1; month <= 12; month++) {
        // 定义月份的开始和结束日期
        var startDate = ee.Date.fromYMD(year, month, 1);
        var endDate = startDate.advance(1, 'month');
    
        // 过滤数据集以获取当前月份的数据
        var filteredData = data.filter(ee.Filter.date(startDate, endDate));
    
        // 计算每月的最高温度
        var maxTemp = filteredData.reduce(ee.Reducer.max());
        
        // 计算每月的最低温度
        var minTemp = filteredData.reduce(ee.Reducer.min());
    
        // 将最高温度和最低温度转换为摄氏度(如果需要)
        var maxTempCelsius = maxTemp.subtract(273.15);
        var minTempCelsius = minTemp.subtract(273.15);
    
        // 可视化每月的最高温度
        Map.addLayer(maxTempCelsius, visParams, 'Max Temp ' + year + '-' + month);
    
        // 可视化每月的最低温度
        Map.addLayer(minTempCelsius, visParams, 'Min Temp ' + year + '-' + month);
      // 导出每月最高温度图像  
        Export.image.toDrive({  
          image: maxTempCelsius.resample('bilinear'),
          description: 'MonthlyMaxTemp_' + year + '_' + month,  
          scale: 1000,  
          region: roi,  
          fileNamePrefix: 'MonthlyMaxTemp_' + year + '_' + month,  
          folder: 'ERA5_Monthly_MaxTemp_' + year, // 可选:指定一个文件夹来组织导出的文件  
          maxPixels: 1e13 // 根据需要调整,以处理大数据集  
        });  
      
        // 导出每月最低温度图像  
        Export.image.toDrive({  
          image: minTempCelsius.resample('bilinear'), // 应用双线性插值重采样,  
          description: 'MonthlyMinTemp_' + year + '_' + month,  
          scale: 1000,  
          region: roi,  
          fileNamePrefix: 'MonthlyMinTemp_' + year + '_' + month,  
         folder: 'ERA5_Monthly_Minemp_' + year, // 可选:指定一个不同的文件夹  
          maxPixels: 1e13 // 根据需要调整  
        });  
      }  
    }
    

    : 使用Export.image.toDrive()函数将结果导出到Google Drive。

### 如何在 Google Earth Engine (GEE) 上计算并下载某地区的标准化降水蒸散指数 (SPEI) #### 背景说明 标准化降水蒸散指数 (Standardized Precipitation Evapotranspiration Index, SPEI) 是一种用于评估干旱状况的时间序列指标。它综合考虑了降水量和潜在蒸发量的影响,能够更全面地反映水分平衡状态。通过 GEE 平台可以高效处理大规模地理数据集来实现 SPEI 的计算。 为了完成这一目标,通常需要以下几个关键步骤:定义感兴趣区域、获取气象数据集合(如降水和气温)、利用模型估算实际或潜在蒸散发量、基于这些输入变量构建 SPEI 时间序列以及导出最终结果。 --- #### 定义兴趣区与加载基础影像 假设我们已经有一个名为 `wuhan` 的矢量边界文件作为研究范围,则可以通过如下方式初始化环境: ```javascript // 加载武汉地区特征集合 var wuhan = ee.FeatureCollection("users/yp7454982/wuhan"); Map.centerObject(wuhan, 8); // 设置日期区间 var startDate = ee.Date('2000-01-01'); var endDate = ee.Date('2020-01-01'); // 打印确认对象已成功导入 print("Region of Interest:", wuhan); ``` 上述代码片段展示了如何指定地理位置及其显示级别[^2]。 --- #### 获取必要的气候参数 对于 SPEI 计算而言,至少需取得两个主要因子——累计降雨量(Precipitation Sum) 和参考作物蒸发速率(Reference Crop Evaporation Rate),即 PET 值。这里推荐采用 CHIRPS 数据源代表前者;而后者可借助 MODIS 或 ERA5-Land 提供的地表辐射通量反演得到。 以下是读取 CHIRPS 雨量资料的一个例子: ```javascript // 导入CHIRPS全球每日降水产品 var chirpsDaily = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY"); // 过滤时间跨度及空间掩膜操作 var precipitationMonthlySum = chirpsDaily.filterDate(startDate, endDate) .filterBounds(wuhan.geometry()) .reduce(ee.Reducer.sum()); // 将总和转换成每平均值形式呈现出来 precipitationMonthlySum = precipitationMonthlySum.divide(precipitationMonthlySum.bandNames().size()); ``` 关于 ET₀ 的提取方法,请参阅相关文献[^4]中的具体实践案例描述。 --- #### 实现 SPEI 数学建模过程 一旦拥有了 P 和 ETO 后续就可以着手建立 SPI/SPEI 统计分布拟合流程了。一般情况下我们会选用 Gamma 分布函数去逼近历史记录曲线形状特性从而得出对应的标准分位数映射关系表达式。然而由于篇幅所限在此仅给出伪代码示意框架结构仅供参考学习之用: ```pseudo function computeSpei(precipitationSeries, evapotranspirationSeries){ let combinedDeficit = []; foreach(monthlyDataPoint in range(startYear:endYear)){ deficitValue = monthlyPrecipitation - monthlyEvapotranspirtion; append(deficitValue ,combinedDeficit ); } fittedDistributionParameters = fitGammaDist(combinedDeficit ); zScoresForEachMonth = transformToZScore(fittedDistributionParameters, combinedDeficit ); return zScoresForEachMonth ; } ``` 注意这里的逻辑并未直接体现出来而是留给读者自行补充完善细节部分[^1]。 --- #### 结果输出至本地存储设备 最后一步就是把生成好的栅格图层保存下来以便后续分析应用。下面给出了简单的示例命令行语句帮助理解整个工作流结束后的成果交付环节: ```javascript Export.image.toDrive({ image: speiImage, description: 'spei_wuhan_region', scale: 5000, region: wuhan.geometry(), maxPixels: 1e13 }); ``` 此段脚本负责将处理完毕的地图切片上传到用户的谷歌云端硬盘账户下形成独立项目文件夹管理起来方便调用分享给其他同事协作查看。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值