From 2e9913d5691cbde7b9d18d454f898d651c63d428 Mon Sep 17 00:00:00 2001 From: "voigta80 (Aiko Voigt)" <aiko.voigt@univie.ac.at> Date: Mon, 21 Oct 2024 21:52:45 +0200 Subject: [PATCH] Adds functions to download era5 and era5-land data --- era5-download/download.py | 59 +++++++++++++++++++++++++++++ era5-download/era5-download.py | 55 ++++++--------------------- era5-download/era5-land-download.py | 53 ++++++-------------------- 3 files changed, 83 insertions(+), 84 deletions(-) create mode 100644 era5-download/download.py diff --git a/era5-download/download.py b/era5-download/download.py new file mode 100644 index 0000000..95f2636 --- /dev/null +++ b/era5-download/download.py @@ -0,0 +1,59 @@ +import xarray as _xr +import cdsapi as _cdsapi + +# location of downloaded files +_path = "/srvfs/scratch/avoigt/msc-intro-computational-meteorology-exercises-w2024/" + +def era5_land(_year, _month): + """ + Downloads era5 land data for a given year and month. + """ + _dataset = "reanalysis-era5-land" + _request = { + "variable": [ + "2m_temperature", "surface_solar_radiation_downwards", + "10m_u_component_of_wind", "10m_v_component_of_wind" + ], + "year": _year, + "month": _month, + "day": [ + "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", + "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", + "25", "26", "27", "28", "29", "30", "31"], + "time": [ + "00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", + "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", + "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"], + "data_format": "netcdf", + "download_format": "unarchived" + } + _client = _cdsapi.Client() + _client.retrieve(_dataset, _request).download(_path+"/era5-land-"+_year+"-"+_month+".nc") + +def era5(_year, _month): + """ + Downloads era5 data for a given year and month. + """ + _dataset = "reanalysis-era5-single-levels" + _request = { + "product_type": ["reanalysis"], + "variable": [ + "2m_temperature", "surface_solar_radiation_downwards", "surface_solar_radiation_downward_clear_sky", + "10m_u_component_of_wind", "10m_v_component_of_wind" + ], + "year": _year, + "month": _month, + "day": [ + "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", + "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", + "25", "26", "27", "28", "29", "30", "31"], + "time": [ + "00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", + "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", + "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"], + "data_format": "netcdf", + "download_format": "unarchived" + } + _client = _cdsapi.Client() + _client.retrieve(_dataset, _request).download(_path+"/era5-"+_year+"-"+_month+".nc") + diff --git a/era5-download/era5-download.py b/era5-download/era5-download.py index f34f017..ffc8d74 100644 --- a/era5-download/era5-download.py +++ b/era5-download/era5-download.py @@ -1,49 +1,18 @@ # call with: # /srvfs/home/avoigt/micromamba/envs/intro-comp-meteo-ex-w2024/bin/python3.10 era5-download.py -import xarray as xr -import cdsapi +import numpy as np +import download as download -import cdsapi +# define list of years +ystart=2000; +yend=2010; +years=[]; +[years.append(str(year)) for year in np.arange(ystart,yend+1)]; -dataset = "reanalysis-era5-single-levels" -request = { - "product_type": ["reanalysis"], - "variable": [ - "10m_u_component_of_wind", - "10m_v_component_of_wind", - "2m_temperature", - "surface_solar_radiation_downward_clear_sky", - "surface_solar_radiation_downwards" - ], - "year": ["1950"], - "month": ["01"], - "day": [ - "01", "02", "03", - "04", "05", "06", - "07", "08", "09", - "10", "11", "12", - "13", "14", "15", - "16", "17", "18", - "19", "20", "21", - "22", "23", "24", - "25", "26", "27", - "28", "29", "30", - "31" - ], - "time": [ - "00:00", "01:00", "02:00", - "03:00", "04:00", "05:00", - "06:00", "07:00", "08:00", - "09:00", "10:00", "11:00", - "12:00", "13:00", "14:00", - "15:00", "16:00", "17:00", - "18:00", "19:00", "20:00", - "21:00", "22:00", "23:00" - ], - "data_format": "netcdf", - "download_format": "unarchived" -} +# define list of months +months = ["01","02","03","04","05","06","07","08","09","10","11","12"]; -client = cdsapi.Client() -client.retrieve(dataset, request).download("/srvfs/scratch/avoigt/msc-intro-computational-meteorology-exercises-w2024/era5-1950-01.nc") \ No newline at end of file +for year in years: + for month in months: + download.era5(year, month) \ No newline at end of file diff --git a/era5-download/era5-land-download.py b/era5-download/era5-land-download.py index 5d93fbe..e70f8c1 100644 --- a/era5-download/era5-land-download.py +++ b/era5-download/era5-land-download.py @@ -1,47 +1,18 @@ # call with: # /srvfs/home/avoigt/micromamba/envs/intro-comp-meteo-ex-w2024/bin/python3.10 era5-land-download.py -import xarray as xr -import cdsapi +import numpy as np +import download as download -import cdsapi +# define list of years +ystart=2000; +yend=2010; +years=[]; +[years.append(str(year)) for year in np.arange(ystart,yend+1)]; -dataset = "reanalysis-era5-land" -request = { - "variable": [ - "2m_temperature", - "surface_solar_radiation_downwards", - "10m_u_component_of_wind", - "10m_v_component_of_wind" - ], - "year": "1950", - "month": "01", - "day": [ - "01", "02", "03", - "04", "05", "06", - "07", "08", "09", - "10", "11", "12", - "13", "14", "15", - "16", "17", "18", - "19", "20", "21", - "22", "23", "24", - "25", "26", "27", - "28", "29", "30", - "31" - ], - "time": [ - "00:00", "01:00", "02:00", - "03:00", "04:00", "05:00", - "06:00", "07:00", "08:00", - "09:00", "10:00", "11:00", - "12:00", "13:00", "14:00", - "15:00", "16:00", "17:00", - "18:00", "19:00", "20:00", - "21:00", "22:00", "23:00" - ], - "data_format": "netcdf", - "download_format": "unarchived" -} +# define list of months +months = ["01","02","03","04","05","06","07","08","09","10","11","12"]; -client = cdsapi.Client() -client.retrieve(dataset, request).download("/srvfs/scratch/avoigt/msc-intro-computational-meteorology-exercises-w2024/era5-land-1950-01.nc") \ No newline at end of file +for year in years: + for month in months: + download.era5_land(year, month) \ No newline at end of file -- GitLab