1.1 Python: Its Past, Present, and Future in Meteorology (Core Science Keynote)

Monday, 23 January 2017: 11:00 AM
Conference Center: Chelan 5 (Washington State Convention Center )
Ryan M. May, UCAR/Unidata, Boulder, CO

Handout (3.1 MB)

Computing has always played an important role as an enabling technology in meteorology. Numerical weather prediction, with its extensive use of the FORTRAN programming language, is probably the application that comes first to the minds of many. Many other tools have played roles over the years in enabling the analysis and display of weather data, including GRADS, GEMPAK, and NCL. All of these tools are specifically designed to serve the needs of meteorology, or the earth sciences in general. Python is the latest in the suite of meteorology computing tools; standing in contrast to other tools, Python is a general purpose language for computing.
Python has been employed across a wide array of uses, including web applications, command line shell scripting, enterprise graphical applications, and scientific analyses. The uptake of Python for scientific applications was driven by Python’s dynamic typing, which lends itself to rapid prototyping of code and to exploratory data analysis. The community also developed a suite of tools that make writing scientific code easier, including: NumPy, SciPy, and IPython. These tools laid the solid foundation for scientific work, providing array computing, scientific algorithms, and an interactive computing environment, respectively.

Today, Python is a mature language with a vibrant community; this is quite likely its greatest asset to meteorology. No longer does the meteorology community need to be responsible for the entirety of the development of its analysis tools. Instead, the well tested stack of scientific Python tools can be leveraged as a solid foundation for development of domain-specific functionality. This also lets meteorology exploit the latest gains in the Python ecosystem; this includes the rapidly growing Jupyter (formerly IPython) ecosystem as well as tools like Pandas for time series analysis. Jupyter notebooks especially have given the community a powerful tool for education and research that provides a document environment mixing code, visualizations, equations, and explanatory text.

The future of Python is bright, as its reach, especially for scientific applications, continues to extend. The uptake of Python 3, after a long transition from Python 2, has recently accelerated greatly. The use of Jupyter notebooks continues to be pervasive in scientific applications of Python, with new efforts around web dashboards and a new JupyterLab interface. The story of Python’s slow performance may also start to become history, as experiments in new Python interpreters like PyPy start to become mainstream; projects like Numba designed around accelerating scientific code also show great promise. For meteorology, the domain-specific pieces continue to grow, making Python full-stack of tools for meteorological analysis and visualization.

- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner