【GEE】全球气象数据ERA5空气湿度—波段处理及下载

相对湿度均值用气温(temperature_2m)和露点温度(dewpoint_temperature_2m)这两个波段结合Magnus-Tetens近似公式计算。
以下代码预计计算era5中的每年每8天的均值并输出。

【GEE】全球气象数据ERA5空气湿度—波段处理及下载_第1张图片

var nmg =**********;
function saturationVaporPressure(T_image) {  
  // Magnus-Tetens公式  
  var es = ee.Image(6.112).multiply(  
    T_image.expression(  
      'exp((17.67 * T) / (T + 243.5))',  
      {  'T': T_image // 这里将 T_image 作为表达式中的 Td_C  
      } )  
  );  
  return es;  
}  
function calculateRH(T, Td) {  
  // 将温度从K转换为°C  
  var Td_C = Td.subtract(273.15).rename('Td_C');  
  var T_C = T.subtract(273.15).rename('T_C');  

  // 使用Magnus-Tetens公式计算饱和水汽压  
  var esTd_C = saturationVaporPressure(Td_C).rename('esTd_C');  
  var esT_C = saturationVaporPressure(T_C).rename('esT_C');   

  // 计算相对湿度  
  var RH = esTd_C.divide(esT_C).multiply(100).rename('RH');  
  return RH;
}
  
// 定义一个函数来计算给定日期范围内的8天均值相对湿度  



// 设置年份循环  
for (var i = 2000; i <= 2020; i++) {  
  // 定义日期字符串数组(示例)  
  // 注意:这里需要确保日期范围覆盖整个年份,并且符合8天的间隔  
  // ...(你可以继续使用你定义的startDateStrings,但确保它们正确设置)  
  var startDateStrings = [i + '-01-01',i + '-01-09',i + '-01-17',i + '-01-25',
i + '-02-02',i + '-02-10',i + '-02-18',i + '-02-26',i + '-03-06',i + '-03-14',
i + '-03-22',i + '-03-30',i + '-04-07',i + '-04-15',i +'-04-23',i + '-05-01',
i + '-05-09',i + '-05-17',i + '-05-25',i + '-06-02',i + '-06-10',i + '-06-18',
i + '-06-26',i + '-07-04',i + '-07-12',i + '-07-20',i + '-07-28',i + '-08-05',
i + '-08-13',i +'-08-21',i + '-08-29',i +'-09-06',i + '-09-14',i + '-09-22',
i + '-09-30',i + '-10-08',i + '-10-16',i + '-10-24',i + '-11-01',i + '-11-09',
i + '-11-17',i + '-11-25',i +'-12-03',i + '-12-11',i +'-12-19',i + '-12-27']; 
  // 初始化一个计数器  
  var count = 0;  
  
  // 假设startDateStrings已经定义好  
  startDateStrings.forEach(function(startDateStr) {  
    var startDate = ee.Date(startDateStr);  
    var endDate = startDate.advance(7, 'day');  
  
     // 过滤出当前8天时间窗口内的图像  
    var era5Subset = ee.ImageCollection("ECMWF/ERA5_LAND/DAILY_AGGR")  
      .select(['temperature_2m', 'dewpoint_temperature_2m'])  
      .filterDate(startDate, endDate)  
      .filterBounds(nmg);  
  
    // 计算当前时间窗口内的相对湿度  
    var rhImages = era5Subset.map(function(image) {  
      var T = image.select('temperature_2m');  
      var Td = image.select('dewpoint_temperature_2m');  
      return calculateRH(T, Td);  
    });  
  
    // 计算RH的均值  
    var meanRH = rhImages.reduce(ee.Reducer.mean()).rename('mean_RH');  
  
    // 设置图像属性  
    var imageId = 'RHU_' + i + ('0' + (++count)).slice(-2);  
    meanRH = meanRH.set('eightDayStart', startDate.format('YYYYMMDD'));  
  
    // 打印和导出图像  
    print('Exported RH Image:', meanRH);  
  
    // 导出图像到 Google Drive  
    Export.image.toDrive({  
      image: meanRH,  
      description: imageId,  
      fileNamePrefix: imageId,  
      scale: 1000,  
      region: nmg,  
      maxPixels: 1e13,  
      folder: 'GEE_ERA5_LAND_RH'  
    });  
  });  
}

你可能感兴趣的:(GEE,gis,google,earth,arcgis)