1.1 The Language, Libraries and Culture of Python in Meteorology (Core Science Keynote)

Monday, 11 January 2016: 11:00 AM
Room 225 ( New Orleans Ernest N. Morial Convention Center)
Jonathan Helmus, ANL, Argonne, IL

Handout (3.2 MB)

From numerical weather prediction to processing data from weather radars or visualizing atmospheric conditions, computers have become an integral tool in the fields of meteorology and atmospheric science. However, computers require specific directions in the form of software. The ability to write this software, often customized for the particular needs of the user, goes hand-in-hand with research and operations. This process can be time consuming and overly burdensome in many programming languages. Writing software to address the challenges in meteorology is simple using the Python programming language due to the language design, available libraries and community culture.

Python is a general purpose, high-level programming language which is widely used in meteorology and elsewhere. The language facilitates a rapid development cycle with its interpreted and interactive nature. A focus on code readability makes the language easy to learn, and the expressive syntax leads to short, clear programs. Additionally, Python has excellent support for interfacing with legacy code written in C, C++ and Fortran making it an excellent tool for integrating existing software.

Python has an extensive and comprehensive collection of freely available packages covering a variety of topics. Scientific Python libraries such as NumPy, SciPy, and pandas provide efficient implementation of numerical operations and tasks common in science and engineering. These libraries provide a strong base from which more advanced scientific software can be built without needing to worry about low-level algorithms. Additionally, many domain specific packages exist which address the scientific needs of the meteorological community.

The Python community provides a welcoming and vibrant culture. The tutorials and other documentation provided for learning the language are rich and reinforce good programming practices. Videos, books, websites, mailing lists, and user groups provide opportunities for continued learning for beginners and experts alike. Python conferences around the world allow Pythonistas to discuss ideas, challenges, and new developments in an open and collaborative environment.

Python is a practical key to unlocking powerful computational resources that can open the door to a variety of new career opportunities or that can enhance productivity in your current position. The author will detail his own experience of how Python led him to meteorology.

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