SI2-SSE: MetPy - A Python GEMPAK Replacement for Meteorological Data Analysis
University Corporation For Atmospheric Res, Boulder CO
Investigators
Abstract
The MetPy project aims to make atmospheric science research and teaching easier and more reproducible by providing a set of well-tested and modern software tools. Meteorologists require many specialized calculations and maps in order to understand the weather and make reliable predictions. The tools they use must provide correct results, since lives and property depend on accurate forecasts and research. This project will port the bulk of the functionality from a widely used and trusted -- but aging and minimally supported -- software program called GEMPAK (the GEneral Meteorological PAcKage) into MetPy, developed using the Python programming language, and with a well-designed, new software architecture. Python has been selected as the language of choice because it has become very popular in many scientific communities. MetPy will be the meteorological community's entry into this growing scientific software ecosystem. In addition to making GEMPAK's functionality available in MetPy, this project will implement a better user-interface, which will help students and researchers get started more easily. The software team will use software development best practices in its development of MetPy, and ensure that it can work with all common meteorological data sources. Every relevant aspect of MetPy will be documented in an easy to digest way on the MetPy project webpage. The development team will work with university instructors to help revise their course materials to integrate MetPy. In addition, the team will teach MetPy and Python training workshops each year, allowing university professors, students, and professionals to get hands-on training on how to do their research in a faster and more robust way. This project seeks to fill a need within the atmospheric science community by bringing key functional elements of a foundational software program, GEMPAK, to the innovation-rich Python ecosystem. By devoting software development resources to increasing the number of data types and file formats MetPy can work with, improving the underlying data model, and reaching feature parity with GEMPAK, MetPy can be positioned as a community-supported replacement for the older package. This effort leverages the entire Python ecosystem, and supports the movement (already well under way) of the atmospheric science community to Python-driven reproducible workflows. This transition will provide a number of community benefits. By bringing needed functionality from GEMPAK to the Python ecosystem, this project will allow atmospheric scientists to: simplify the process of exploratory analysis, have a cross-platform toolchain that can be carried from the classroom to the workforce, simplify the research workflow to make science easier and more reproducible, provide a tested library of domain-specific calculations with literature references, and create publication-quality data visualizations. Educators and researchers will be able to replace their use of legacy software, which is no longer being developed and is increasingly hard to maintain, with a modern toolkit that allows increased flexibility and reproducibility within atmospheric science research. Sustainability of the atmospheric science software workflow will be enhanced by the inclusion of modern automated software build-and-test tools, robust community-supported documentation and learning materials, and the ability to quickly incorporate new sources of environmental data. Finally, modernizing the atmospheric science toolchain opens the door to the use of innovations like web-based tools (Jupyter notebooks, for example) that would be difficult or impossible to take advantage of when using legacy software. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
View original record on NSF Award Search →