Development Section • Veteran software developer Java, Fortran, C++, Python • Main interest is visualisations: IRIS Explorer, OpenGL/Inventor, mapping of weather forecasts • Twitter: @StephanSiemen • GitHub: StephanSiemen 2 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS About the Development Section • > 20 developers • Skill sets: C++ / Python / web + DBs • Provide core software packages for ECMWF’s operations and wider community • Develop software to en/decode meteorological data formats (GRIB, BUFR, ODB, …), archive, process & visualise data • Develop time-critical data delivery & web services for our users
22 Member Sates + 12 Cooperation States – Headquarter in Reading, UK + Bologna, Italy – 350+ staff • 24/7 operational services – Operating weather forecast models – Data services delivering TBs of output data to user in real time world wide – HPC centre with two supercomputer clusters – Operate archive of observations and model data (> 250 PB) 3 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS
prediction – Medium-range – Extended-range (months) – Long-range (seasonal) • Ensembles of forecasts 5 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS
FORECASTS Archive MARS Data acquisition Product Generation Integrated Forecast System (IFS) Data assimilation Web Services Model output (in GRIB) Observations Users
layers of spherical harmonics representation & reduced Gaussian grids – Not pixels as in satellites! – Need interpolation to estimate values between grid points • Very few users work with the raw grid data directly – Express uncertainties of forecasts from Ensembles – Time series of forecast at one location 9 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS
type type volume OBSERVATIONS MODELS MODELS OBSERVATIONS 40 million = 4 x 107 98% from 60 different satellite instruments 100-200 million = 1-2 x 108 98% from 80 different satellite instruments 10 million grid points 100 levels 10 prognostic variables = 1 x 1010 physical parameters of atmosphere, waves, ocean physical and chemical parameters of atmosphere, waves, ocean, ice, vegetation 500 million grid points 200 levels 100 prognostic variables = 1 x 1013 And the data is constantly growing … FACTOR 5 FACTOR 1000
and monitoring data (freely) available • Data is validated and from verified sources • Sponsored by the European Commission • ECMWF is operating two services on behalf of the EC • Copernicus Atmospheric Monitoring Service (CAMS) – Air pollution, chemicals, sand & dust – https://atmosphere.copernicus.eu/data • Copernicus Climate Change Services (C3S) – Reanalysis data, seasonal forecasts, climate scenarios 11 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS Total column of sulphur dioxide (provided by the Copernicus Atmosphere Monitoring Service)
/ download and work with Copernicus climate change data • Many data sets too large for users to work locally à therefore it offers server side processing • High-level descriptive Python interface – Allow non-domain users to build apps • Try it out yourself: https://cds.climate.copernicus.eu 12 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS CDS toolbox
need a token to use the service! • ECMWF data: https://pypi.org/project/ecmwf-api-client/ • Copernicus data: https://pypi.org/project/cdsapi/ 15 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS
WEATHER FORECASTS • Numerical Weather Prediction (NWP) has always pushed (HPC) computing to its limits • Traditionally Fortran and increasingly C/C++ has played a big part and still is heavily used for time critical parts of the models • Python is mostly used in post-processing of model data • Key challenge is to read data easily and fast • Abstracting data in a common data model – data cube – Allows non-expert users to work with data – xarray is fundamental building block of this approach • xarray structure is based on the Common Data Model from netCDF
wider Python community 18 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS • There are already many good efforts and solutions out there à Many good “wheels” which do not need to be reinvented à We want to allow easy interactions between frameworks • Confirmation of our direction for developments à Using common Python packages for meteorological data à Handle fields through xarray; pandas for tables/time series à Build new Python interfaces the Python way à Not how legacy Fortran/C interfaces were done
MEDIUM-RANGE WEATHER FORECASTS • We currently experimenting how we can make better use of pandas, xarray & dask to scale post-processing with Python • We are now looking at how we can use Python itself for larger datasets and provide tutorials & cookbooks for users how to process our data • We had a very good session on this topic at the last workshop – E.g the work of the Pangeo initiative here is very relevant • These and many other interesting presentations from this year’s workshop you can find at https://www.ecmwf.int/en/learning/workshops/2018-workshop-developing-python-frameworks-earth-system-sciences
• Essential building block to bring GRIB model output data in the PyData stack • To embrace xarray for all our field data, we needed to know that we could handle all our GRIB data – Therefore it was important for us to have a solution based on our own GRIB decoder – Developed with our partners at • Open to the whole community – First user: CDS toolbox 20 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS
framework • A high-level Python 3 interface for processing and visualising ECMWF data à makes use of all other packages • Aim is to allow users of Metview to use easily the power of Python but still have all functionality of Metview; including visualisation
& examples on GitHub • Packages need be on PyPi and Conda • ECMWF Python software on DockerHub • CDS Toolbox 25 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS
EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS • Docker image on DockerHub – https://hub.docker.com/r/ecmwf/jupyter-notebook/ • Available on github and PyPi – e.g. https://github.com/ecmwf/metview-python – e.g. pip install metview • Check out our Jupyter notebook examples at https://github.com/ecmwf/notebook-examples
openings – https://www.ecmwf.int/en/about/jobs/jobs-ecmwf • We also tender/outsource many of our developments – https://www.ecmwf.int/en/about/suppliers • We look for contractors – E.g. porting IDL programs to Python • Feel free to contribute/improve our Open Source software – Will benefit whole meteorological/climate community! – https://github.com/ecmwf 27 EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECASTS