3.2
Exploring Client-Server Data Visualization using IPython and WebGL


IPython provides a ready-made client-server architecture for performing remote data analysis and returning the results (eg. images or text). Its notebook interface has proven especially popular, enabling execution of arbitrary code through “cells” in a web-based interface and being able to display arbitrary images, HTML, and Javascript. However, while the notebook is the most widely known interface, IPython can function as a standalone web application, providing a bridge between web-based interfaces and a server executing Python code.
In support of UCAR/Unidata's move towards more cloud-based computing, we are exploring a Web-based Analysis and Visualization Environment (WAVE). This environment is based extensively on WebGL to provide fluid interactions with data, and makes use of IPython to handle bridging between data-proximate Python-based analysis code and the javascript/WebGL based client. This paper will present our experiences in these technologies, both benefits and pitfalls, as well as demonstrate its capabilities for atmospheric data visualization.