Using Python as an Integrated Software Platform for the PACRAIN Program

- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner
Monday, 5 January 2015
Michael D. Klatt, University of Oklahoma, Norman, OK; and J. S. Greene and M. L. Morrissey

Handout (660.8 kB)

A critical but often overlooked aspect of research programs is the software infrastructure that supports their activities. This infrastructure usually grows in an ad-hoc fashion. Locally-developed software tends to be a hodgepodge of different languages, platforms, and programming styles. Functionality is replicated in multiple places, making changes difficult and error-prone. Commercial software packages, on the other hand, take up valuable dollars in research budgets and require frequent upgrades as licenses expire. Maintaining expertise in this system becomes more difficult as it encompasses more technologies.

Python is a solution to many of the software challenges faced by researchers. As a programming language it is easy for both novices and experienced programmers to learn, yet powerful enough to solve real-world problem. As a platform it is portable across a wide range of operating systems and contains many built-in or standardized libraries for essential tasks such as networking, accessing databases, and reading/writing standard file formats. Scientific computing is well-supported by Python, with data analysis and visualization libraries that are alternatives to commercial products like MATLAB and ArcGIS. Python can interface with compiled code written in other languages, such as C and Fortran, so it can be used on top of existing legacy code as necessary.

The University of Oklahoma's Pacific Rainfall Program (PACRAIN) engages in data collection, research, and network-building activities across the tropical Pacific region. PACRAIN's software needs include data processing, database management, data analysis and visualization, and implementing the project web sites. This is currently done with a mix of locally-developed C++ and PHP applications and commercial software like ArcGIS and Microsoft Excel, but the goal is to replace as much of this as functionality as possible with Python. Python is already being used for data analysis and visualization with success, and work continues to migrate the data management and web applications to Python.