# Someone to explain code for me

**URL:** <https://forum.ecmwf.int/t/someone-to-explain-code-for-me/1711>\
**Category:** Other - Software and tools\
**Tags:** c3s, toolbox\
**Created:** [27 May 2022 16:27 UTC](https://forum.ecmwf.int/t/someone-to-explain-code-for-me/1711 "2022-05-27T16:27:19Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Amani\_saleh](https://forum.ecmwf.int/letter_avatar_proxy/v4/letter/a/94ad74/32.png) [@Amani\_saleh](https://forum.ecmwf.int/u/Amani_saleh)\
**Post date:** [27 May 2022 16:27 UTC](https://forum.ecmwf.int/t/someone-to-explain-code-for-me/1711/1 "2022-05-27T16:27:19Z")

</div>

import cdstoolbox as ct

def get\_daily\_mean\_for\_year\_and\_month(year, month):  
 &nbsp; &nbsp; print('get temperature', year, month)  
 &nbsp; &nbsp; temperature = ct.catalogue.retrieve(  
 &nbsp; &nbsp; &nbsp; &nbsp; 'reanalysis-era5-single-levels',  
 &nbsp; &nbsp; &nbsp; &nbsp; {  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'product\_type': 'reanalysis',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'variable': '2m\_temperature',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'year': str(year),  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'month': str(month),  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'day': [  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '01', '02', '03',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '04', '05', '06',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '07', '08', '09',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '10', '11', '12',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '13', '14', '15',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '16', '17', '18',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '19', '20', '21',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '22', '23', '24',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '25', '26', '27',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '28', '29', '30',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '31',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'time': [  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '00:00', '01:00', '02:00',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '03:00', '04:00', '05:00',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '06:00', '07:00', '08:00',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '09:00', '10:00', '11:00',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '12:00', '13:00', '14:00',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '15:00', '16:00', '17:00',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '18:00', '19:00', '20:00',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '21:00', '22:00', '23:00',  
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],  
 &nbsp; &nbsp; &nbsp; &nbsp; }  
 &nbsp; &nbsp; )  
 &nbsp; &nbsp; print('got')  
 &nbsp; &nbsp; daily\_mean = ct.climate.daily\_mean(temperature)  
 &nbsp; &nbsp; print('daily\_mean', year, month)  
 &nbsp; &nbsp; return daily\_mean  
 &nbsp; &nbsp;&nbsp;  
 def get\_gdd\_for\_year(year):  
 &nbsp; &nbsp; by\_month = [  
 &nbsp; &nbsp; &nbsp; &nbsp; get\_daily\_mean\_for\_year\_and\_month(year, month)  
 &nbsp; &nbsp; &nbsp; &nbsp; for month in range(1, 12+1)  
 &nbsp; &nbsp; ]  
 &nbsp; &nbsp; daily\_mean = ct.cube.concat(by\_month, dim='time')  
 &nbsp; &nbsp; print('daily\_mean')  
 &nbsp; &nbsp; gdd\_min\_temperature\_celsius = 10  
 &nbsp; &nbsp; gdd = ct.cdstools.heuristics.growing\_degree\_days(  
 &nbsp; &nbsp; &nbsp; &nbsp; daily\_mean,  
 &nbsp; &nbsp; &nbsp; &nbsp; gdd\_min\_temperature\_celsius  
 &nbsp; &nbsp; )  
 &nbsp; &nbsp; print('gdd')  
 &nbsp; &nbsp; return gdd

@ct.application()  
 @ct.output.download()  
 def gdd\_app():  
 &nbsp; &nbsp; by\_year = [get\_gdd\_for\_year(year) for year in range(2003, 2020+1)]  
 &nbsp; &nbsp; combined = ct.cube.concat(by\_year, dim='time')  
 &nbsp; &nbsp; print('combined', ct.cdm.get\_coordinates(combined))  
 &nbsp; &nbsp; return combined

Is the downloaded output of this code the average of 18 years GDD? or just for one year

Why 2020+1?
