2002 Annual

Sunday, 13 January 2002
Crossing platforms: PCs and AWIPS using the Python programming language
C. Michael Callahan, NOAA/NWS, Louisville, KY
Poster PDF (2.8 MB)
Python an interactive, object-oriented, cross-platform programming language which is included in AWIPS, LINUX, and can be installed on Windows PCs at no cost. This presentation will demonstrate two applications written using Python. The first, DIAL, is a Windows application that calls river gages then SHEF encodes the data and sends it to the hydrologic database in AWIPS via LDAD. This data can then be used by the other hydrologic applications in AWIPS. DIAL currently works with three different types of gages and will support more types in the future. The program is quite robust when sending the data to AWIPS. It can use either a SAMBA drive interface or FTP to send the data to the primary LDAD. If this process fails, the program can try two backup LDADs using FTP and can even send an email warning informing the user of a failure using SMTP. It runs in either an interactive mode, which is useful during flooding situations, or automatically via the Windows 98 scheduler for routine data collection. DIAL is a good example how PCs can be used to relieve some of the data collection load from LDAD. It also shows how some data collection tasks may be better implemented using PCs. Lastly, it shows the power of Python for quickly making Windows applications. The size of the program is only 108K.

The second, CONVERT, is a GUI meteorological units converter that runs on either AWIPS or Windows with no changes in the program. In other words, the same code will run on either machine with no recompiling or linking. The program looks and acts the same on both platforms including keystroke behavior, and can be used with a mouse or keyboard. CONVERT will handle 48 different conversions including relative humidity, heat index, and wind chill. This simple application, which is only 11K, demonstrates the power of the Python language when dealing with cross-platform programming issues.

Supplementary URL: