Universal Code Hub Upgrade
Script Library
AdvancedClimateAdvanced

ERA5-Land Growing/Cooling/Heating Degree Days

Daily GDD/HDD/CDD from ERA5-Land — fundamental for agronomy and energy demand studies.

Pipeline (4 steps)
  1. ERA5-Land daily 2 m temperature, K → °C
  2. GDD = max(T − 10, 0)
  3. HDD = max(18 − T, 0); CDD = max(T − 18, 0)
  4. Sum to annual; export COG; chart annual trends
Datasets
  • era5-daily
AOI modes
adminassetdraw
Simulated previewPaste the script in Earth Engine for live results
Outputs the script produces
map Annual GDD
map HDD / CDD
chart Annual trend chart
Open Code Editor ↗
adv-era5-degree-days.js · 30 lines
var startYear = 2000, endYear = 2024;
var t = ee.ImageCollection('ECMWF/ERA5_LAND/DAILY_AGGR')
  .select('temperature_2m').filterBounds(aoi)
  .map(function(i){ return i.subtract(273.15).rename('Tc').copyProperties(i, ['system:time_start']); });

var years = ee.List.sequence(startYear, endYear);
var annual = ee.ImageCollection(years.map(function(y){
  y = ee.Number(y);
  var year = t.filter(ee.Filter.calendarRange(y,y,'year'));
  var gdd = year.map(function(i){return i.subtract(10).max(0)}).sum().rename('GDD');
  var hdd = year.map(function(i){return ee.Image(18).subtract(i).max(0)}).sum().rename('HDD');
  var cdd = year.map(function(i){return i.subtract(18).max(0)}).sum().rename('CDD');
  return gdd.addBands(hdd).addBands(cdd).set('year', y).set('system:time_start', ee.Date.fromYMD(y,7,1).millis());
}));

Map.centerObject(aoi, 5);
Map.addLayer(annual.filter(ee.Filter.eq('year', endYear)).first().select('GDD'),
  {min: 1000, max: 4000, palette: ['#1d4ed8','#22c55e','#facc15','#ef4444']}, 'GDD ' + endYear);

print(ui.Chart.image.series({
  imageCollection: annual.select('GDD'),
  region: aoi, reducer: ee.Reducer.mean(), scale: 11000
}).setOptions({title: 'Annual GDD trend'}));

Export.image.toDrive({
  image: annual.filter(ee.Filter.eq('year', endYear)).first().clip(aoi),
  description: 'DegreeDays_' + endYear, folder: 'gee_exports',
  region: aoi, scale: 11000, maxPixels: 1e13,
  fileFormat: 'GeoTIFF', formatOptions: {cloudOptimized: true}
});
#ERA5#degree days#agronomy#climate