The Unidata Program Center is pleased to announce the availability of a JupyterHub server tailored to the needs of the atmospheric science community. Using resources provided by the National Science Foundation's Jetstream cloud-computing platform, Unidata's JupyterHub server is intended to serve as a demonstration of a notebook-based workflow for geoscience activities. After preliminary testing in a variety of situations including workshop and classroom use, Unidata staff are looking to expand beta-testing of the server to the wider community.
What is Jupyter?
Jupyter is a web technology that allows users to interactively write and execute code in a web browser. The interactive “notebook” interface, which allows the user to easily combine rich text, images, and executable code in one document, was first made available to run Python code — early instances were called iPython notebooks. As the potential of the notebook interface became more fully understood, the project expanded to allow execution of code in additional programming languages, notably Julia and R. With their mixture of explanatory text, interactive code blocks, equations, and multimedia, Jupyter notebooks excel in scientific teaching and research applications.
In recent years, Unidata has promoted Jupyter to our community for teaching and research in the atmospheric sciences. We have made extensive use of notebooks in the Unidata Python Workshops to teach analysis and visualization of geoscientific data. The usefulness of these instructional materials led Unidata to begin building two additional notebook-based collections:
- The Unidata Python Gallery, which is a collection of resources using Python for various meteorological tasks.
- Unidata's Online Python Training is a collection of online training materials focused on the use of Python in the atmospheric sciences.
Enter JupyterHub
Jupyter notebooks combine text and executable code in a single document that becomes interactive when run in a notebook server. In the most common case, the server is a Python program run on a local computer that allows a single user to modify and run the notebook in a web browser.
While running the notebook server locally is appropriate in many contexts, it does require that the user install and maintain the requisite software and understand how to configure and run the server. In cases where it is more appropriate to have a software expert perform these functions for a group of users, JupyterHub technology allows for the creation of multiple instances of the the single-user Jupyter notebook server, administered in a central location using shared computing resources. JupyterHub can be used to serve notebooks to a class of students, a corporate data science group, or a scientific research group, for example.
A JupyterHub for the Unidata Community
As a logical extension of Unidata's advocacy of Jupyter technology, the Program Center has established a demonstration JupyterHub server tailored to users in the atmospheric sciences. As part of the Unidata Science Gateway project, this JupyterHub server is available to community members to explore the technology and evaluate its usefulness. Researchers, educators, and students can connect to the server, which runs in the NSF Jetstream cloud, to use a JupyterHub instance that has been prepopulated with Unidata's existing Python notebook collections.
The Unidata JupyterHub has been configured with the following:
- JupyterLab: Unidata's JupyterHub server is equipped with JupyterLab, the next generation web user interfacefor Jupyter.
- Notebooks: Three of Unidata's Python notebook collections are preloaded in the JupyterHub server.
- Terminal: Users can interact with the JupyterHub environment using
a Unix terminal (command line interface). This facility allows users to import resources
into the session using tools such as
git
version control or data-fetching tools such ascurl
orwget
. - nbgitpuller:
The
nbgitpuller
package ensures that any local git repositories remain in sync with their respective canonical repositories.nbgitpuller
is loaded to ensure that the prepopulated notebook projects described previously remain up-to-date. (Contact Unidata support if you are interested in using this feature to synchronize your own repositories.)
Give it a Try
We invite you to give the Unidata JupyterHub
server
a try. Unidata's demonstration JupyterHub server requires you to log in with a set of GitHub
credentials. (If you do not already have a GitHub account, you can sign
up for a free account.) Once you are logged in to the JupyterHub server, please read
through
the README_FIRST.ipynb
notebook to get oriented. Pay specific attention to the
information about Python kernels to ensure that the notebooks run without errors.
Note: When you log in to the Unidata JupyterHub server, you are automatically granted a 1 GB data storage volume. You are free to use this storage for your own notebooks and accompanying data. These resources should persist each time you login, but be aware this system is still under development. While we have not experienced loss of user data in any of the previous trials, the data storage volume created for you is not guaranteed to persist indefinitely. If losing any resources you create in the Unidata JupyterHub environment would be a significant inconvenience, please consider making backup copies of your work. Notebooks, for example, can be easily downloaded by right-clicking on the file name in the file browser on the left side of the JupyterLab interface and selecting Download from the pop-up menu.
As a quick demonstration, do the following:
- Log on the JupyterHub server
- Double-click on the
notebook-gallery
folder - Double-click on the
notebooks
folder - Double-click on the
250hPa_Hemispheric_Plot.ipynb
notebook - Select Change Kernel... from the Kernel menu
- Select the Python [conda env:notebook-gallery] kernel and click Select (You will see the kernel choice reflect at the upper right corner of the notebook view.)
- Select Run All Cells from the Run menu
The notebook cells will run in order, generating a plot of geopotential height and wind speed (knots) at 250 hectopascals derived from the GFS model.
Go to the Unidata JupyterHub
Getting Support
If you have difficulties using the demonstration server, would like to suggest additional resources for inclusion in the demonstration, or simply want to tell Unidata about your experience using the server, please contact Unidata by e-mail at support-gateway@unidata.ucar.edu. We are very interested in learning about your use cases for and experiences with this technology, so please write.
A JupyterHub for Your Classroom or Workshop
In addition to making the demonstration server available for testing by community members, Unidata has deployed several JupyterHub instances for use by workshops and semester-long classes. If you're interested in having Unidata configure a JupyterHub instance for your classroom or workshop, please contact us.