Designing and implementing radar algorithms in Python
To accomplish these tasks, we have created the Python ARM Radar Toolkit, Py-ART, an open source Python module for working with weather radar data. Last year we reported on the software engineering practices used in this community-focused project as well as the data model which allows Py-ART to uniformly address radar data stored in a number of file formats.
With this framework in place, recent development in Py-ART has focused on designing and implementing a number of algorithms to correct issues in the data collected by the ARM radars, and to perform retrievals to extract atmospheric parameters from the measurements made by the radar. The information these retrievals provide on cloud and precipitation processes can be used to improve weather and climate models.
In this talk, we will discuss a number of these algorithms including: a novel algorithm for unfolding Doppler velocities using multi-dimensional phase unwrapping, the implementation of established algorithms for the classification of radar echoes, as well as recent improvements to existing linear programming-based differential phase processing routines. In addition to discussing the science and mathematics behind these algorithms, we will also give an overview of the development processes used to implement these procedures. This will include a discussion on tools for prototyping in Python, and common refactoring techniques to improve code structure. Also included will be a short how-to on profiling and optimizing Python code for speed, and examples of how these new algorithms were integrated into the larger Py-ART package.