ECMWF’s Summer of Weather Code

Julia Wagemann
Claudia Vitolo
Anna Ghelli

 

At the start of 2018, ECMWF launched the first edition of the ECMWF Summer of Weather Code (ESoWC) to find novel and creative ways to address weather-related software challenges. Applications opened in January 2018. ECMWF proposed 13 challenges aimed at streamlining and supporting daily activities at the Centre. External developers were asked to submit a proposal addressing a challenge of their choice. More than 170 people applied from all over the world and five teams were selected. Their open-source projects were released in September. They should prove useful to ECMWF and its Member and Co-operating States.

Outcomes

The five selected teams, supported by ECMWF mentors, started coding in May. By August they had developed:

  • a geographic information system (GIS) widget, based on the Leaflet JavaScript library, which simplifies ECMWF’s data extraction workflow by selecting and displaying bounding boxes and points, performing geo-searches and inputting data on a map
  • the migration of calibration software to downscale rainfall products to the Python programming language, including the development of a related graphical user interface (GUI)
  • a web crawler to facilitate and automate a web-based search for new environmental data sources
  • innovative visualisation techniques which make it possible to display the wealth of information contained in ensemble forecasts in an easy-to-understand and catchy way for the general public
  •  a virtual file system to represent NetCDF files to help users browse and manipulate these often complex file structures.

Mentors and developers had regular virtual meetings to discuss progress and potential issues. The programme ended with a week of webinars from 17 to 21 September 2018, during which the results of the challenges were presented. The proof-of-concept projects are open to contributions and can be further tailored to better support ECMWF’s internal activities as well as those of ECMWF’s Member and Co-operating States.

GIS widget. The team behind the GIS widget project demonstrated the functionalities of the widget based on Leaflet during the week of webinars.

Benefits

The enhanced GIS widget is useful for many web applications across ECMWF, for example the real-time requirements-editing interface and the online costing tool, where users calculate the cost of their data and configure the requirements. Any other online applications where users need to specify latitude/longitude locations or bounding boxes can also benefit from this widget.

The migration of the software ecPoint-PyCal to Python provides a dynamic environment while the development of a GUI makes the software more user friendly. The software compares numerical model outputs against point observations to identify biases/errors at local scale.

The web crawler for environmental data obviates the need for a time-consuming manual search for new data sources. The software automates the discovery, analysis and assessment of candidate web pages. The resulting data can ultimately be used to improve global weather forecasting models.

The new visualisation design makes ensemble forecasts more accessible to a non-expert audience. This innovative visualisation is based on value-suppressing uncertainty icons. A larger range of icons is allocated to forecasts with low uncertainty and a smaller range when uncertainty is high.

Useful links

More details, including links to the open-source project codes, are available on Julia Wagemann’s science blog post on ESoWC: www.ecmwf.int/en/about/media-centre/science-blog/2018/ecmwfs-summer-weather-code

Recordings of the webinars are available on YouTube: http://bit.ly/esowc18-webinars

The representation of NetCDF files as a virtual file system is useful for those working with weather and climate data in NetCDF format who would like to quickly explore and edit a dataset. The software is written in Python and allows users to easily mount, view and edit the contents of a NetCDF dataset using file-system operations and general-purpose Unix tools.