Python was our language of choice for this project because of its advanced capabilities and usability. Python, Numpy, and Scipy can process a wide range of data formats, and Matplotlib provides all of the necessary visualization tools to replicate the suite of GEMPAK plots currently on the Hoot website. Python's syntax is simple enough that beginning programmers can learn enough in a short time to provide significant contributions after little experience. Hoot's website is used as a data source by people across the country, but the website is also used as a hands-on learning tool for University of Oklahoma meteorology students interested in learning programming and web development skills. Building meteorological visualizations with Python instead of a commercial tool will give students programming experience from the process and meteorological knowledge from implementing computations of derived meteorological variables.
The HootPy package is an object-oriented collection of modules that can generate different meteorological visualizations. Classes exist for maps, profiles, cross-sections, and meteograms. Each type contains generic methods that can be extended by customized scripts for specific plot types. Configuration files are used to specify data sources, variables plotted, and visual customizations. Utility classes provide data parsing and post-processing. Observations, gridded, and (radar and satellite) image data are supported by the mapping functions. Currently supported data formats are ASCII files, netCDF4, HDF-5, and GRIB2. The open nature of the package will encourage further development and refining.