SIParCS 2018- Aditi Shrestha
Creating a Jupyter Notebook Kernel for NCL
Jupyter Notebook is an open-source interactive web application. It is used for executing live codes, visualizing data and can include explanatory text. Currently, Jupyter Notebook has been a popular tool in STEM-related fields because of its versatility and easy to learn features. Jupyter Notebook includes built-in support for the Julia, Python, R programming languages and also has an interface for supporting other languages like NCL. The NCAR Command Language (NCL) is an interpreted language designed specifically for scientific data analysis and visualization. The main objective of this project is to build a Jupyter Notebook kernel that supports NCL. There are two ways to build kernel for Jupyter Notebook. The first method for making a kernel is by implementing the kernel machinery in the desired language. A communication network is setup with the help of ZeroMQ to communicate between the kernel and Jupyter frontend using various socket types. This approach is complicated and tedious. An easier method is to use the existing IPython kernel. In this method, the NCL kernel is subclassed from the existing IPython kernel that already handles the communication infrastructure. The key methods of this class are then overridden to provide NCL specific functionality. Presently, the NCL kernel can execute code and display NCL graphics.
Mentors: Bill Ladwig, Rick Brownrigg