...
Code Block | ||||
---|---|---|---|---|
| ||||
## === retrieve GloFAS Medium-Range Forecast === import cdsapi import datetime import warnings def compute_dates_range(start_date,end_date,loop_days=True): start_date = datetime.date(*[int(x) for x in start_date.split('-')]) end_date = datetime.date(*[int(x) for x in end_date.split('-')]) ndays = (end_date - start_date).days + 1 dates = [] for d in range(ndays): dates.append(start_date + datetime.timedelta(d)) if not loop_days: dates = [i for i in dates if i.day == 1] else: pass return dates if __name__ == '__main__': # start the client c = cdsapi.Client() # user inputs START_DATE = '2019-11-05' # first date with available data END_DATE = '2021-03-15' LEADTIMES = [str(lt) for lt in range(24,744,24)] # loop over dates and save to disk dates = compute_dates_range(START_DATE,END_DATE) for date in dates: year = date.strftime('%Y') month = date.strftime('%m') day = date.strftime('%d') print(f"RETRIEVING: {year}-{month}-{day}") c.retrieve( 'cems-glofas-forecast', { 'format': 'grib', 'system_version':'operational', 'hydrological_model': 'htessel_lisflood', 'product_type':'ensemble_perturbed_forecasts', 'variable': 'river_discharge_in_the_last_24_hours', 'year': year, 'month': month, 'day': day, 'leadtime_hour':LEADTIMES }, f'glofas_forecast_{year}_{month}_{day}.grib') |
GloFAS Seasonal forecast
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
## === retrieve GloFAS Seasonal Forecast === ## === subset South America/Amazon region === import cdsapi if __name__ == '__main__': c = cdsapi.Client() YEARS = ['%d'%(y) for y in range(2020,2022)] MONTHS = ['%02d'%(m) for m in range(1,13)] LEADTIMES = ['%d'%(l) for l in range(24,2976,24)] for year in YEARS: for month in MONTHS: c.retrieve( 'cems-glofas-seasonal', { 'variable': 'river_discharge_in_the_last_24_hours', 'format': 'grib', 'year': year, 'month': '12' if year == '2020' else month, 'leadtime_hour': LEADTIMES, 'area': [ 10.95, -90.95, -30.95, -29.95 ] }, f'glofas_seasonal_{year}_{month}.grib') |
GloFAS Seasonal reforecast
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
## === retrieve GloFAS Seasonal Reforecast === ## === subset South America/Amazon region === import cdsapi if __name__ == '__main__': c = cdsapi.Client() YEARS = ['%d'%(y) for y in range(1981,2021)] MONTHS = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'] LEADTIMES = ['%d'%(l) for l in range(24,2976,24)] for year in YEARS: for month in MONTHS: c.retrieve( 'cems-glofas-seasonal-reforecast', { 'system_version': 'version_2_2', 'variable':'river_discharge_in_the_last_24_hours', 'format':'grib', 'hydrological_model':'htessel_lisflood', 'hyear': year, 'hmonth': month, 'leadtime_hour': LEADTIMES, 'area': [ 10.95, -90.95, -30.95, -29.95 ] }, f'glofas_seasonal_reforecast_{year}_{month}.grib') |
...