Section author: Robert Nikutta <robert.nikutta@noirlab.edu>
1.10. Jupyter Notebooks Classic¶
1.10.1. Preface¶
Since October 2020 JupyterLab is the default notebook interface at Astro Data Lab. However, the classice Jupyter Notebook interface is still available if you need it, and this page refers to that classic interface.
To switch from JupyterLab to Jupyter Notebook, click in the Menu on Help --> Launch Classic Notebook
It will open in a separate browser tab.
1.10.2. Introduction¶
A very convenient way to do data science is interactively in your browser, for instance through Jupyter notebooks.
Jupyter notebooks are self-contained programs (for Data Lab they are written in Python), which can be loaded and run right inside your browser. This is very convenient, as you can use the entire power of Data Lab and of the Python language, without giving much thought to the installation and configuration of software.
You can recognize Python notebooks by their file name suffix
.ipynb
, i.e. my_first_notebook.ipynb
. This file stores all the
input commands that you use in the notebook, as well as the output that
these commands generate (for instance, tables and graphs).
Data Lab was built from the start with Python notebooks in mind, and provides a containerized notebook server for registered users.
1.10.3. Using Data Lab through a notebook¶
There are two ways of using Data Lab through a Jupyter notebook:
Data Lab’s notebook server
User account registration required
Saved notebooks will persist as long as you want to keep them
Your account comes with a generous allocation of virtual storage space. You can use it to store query results, upload/download files to/from, share files with collaborators, perform deeper analysis on data, etc.
Access to all database holdings at Data Lab
Run a notebook server on your own computer
You need to install the Data Lab client and interfaces on your computer
1.10.4. Launch a notebook server¶
Launch the notebook server (as described in the above section):
Data Lab’s notebook server for registered users: https://datalab.noirlab.edu/devbooks
Launch a notebook server on your own computer: type
jupyter notebook
in a terminal; a browser window pops up
Data Lab’s notebook server will prompt you for your registered user name and password.
If you don’t have a Data Lab account yet, you can register for one right away.
In all three cases you should see a notebook “dashboard” that looks similar to this:
If you’re using the Data Lab notebook server, the dashboard will be pre-populated with several example notebooks, ranging from simple “getting started” notebooks, through more technical “how to” notebooks, to “science example notebooks” that guide you from a science questions, through writing data queries, to data analysis and visualization.
The
notebooks/
directory has the default set notebooks, as they were when you first created your account.The
notebooks-latest/
directory is read-only, and contains the default set notebooks as of right now. You can get a copy of them easily.The
vospace/
directory is a read-only link to your virtual storage directory.
You can either load any of the notebooks by navigating through the directories and clicking on its name, or create a new notebook to start with a clean slate. You can also organize your notebooks into new sub-directories.
1.10.5. Terminal¶
Data Lab’s Jupyter environment comes with a simple terminal emulator built-in. It is somewhat limited in the commands that it will let you execute, but is very useful in many cases. To bring up the terminal, click in the Jupyter dashboard on the “New” button (top-right corner), then on “Terminal”:
A new browser tab will open, with the terminal and a friendly and informative welcome message:
1.10.6. Get the latest set of default notebooks¶
You can use the terminal to get the newest versions of all default
notebooks (which may have changed since your notebooks/
directory
was first created.
A built-in shell function getlatest
does the work. To get the
latest default notebooks, simply type
username@datalab>getlatest
Copied /dlusers/username/notebooks-latest/ to notebooks_20180710_014021/
This copies the content of notebooks-latest/
to a new directory
named with the current date and time.
You can also provide an explicit target directory name:
username@datalab>getlatest mydir
Copied /dlusers/username/notebooks-latest/ to mydir/
The target directory will be created if it doesn’t exist yet. Otherwise, for every file that is already present in the target directory, you will be asked whether you wish to overwrite it.
1.10.7. Basic notebook usage¶
1.10.7.1. Keyboard shortcut cheat sheet¶
Many of the notebook functions can be accessed through quick and
convenient keyboard shortcuts. These are available when a notebook is
loaded and/or edited (see below). Most shortcuts are invoked by
pressing the ESC
key (release it after pressing), which enters the
command mode of the notebook, followed by one or two additional
keys, which are pressed simultaneously or in sequence (releasing the
previous key before pressing the next one), depending on the function
you wish to invoke.
A very useful keyboard shortcut combination is ESC,h
(i.e. press
the ESC
key, release it, then press the h
key), which brings
up a window with all major keyboard shortcuts… how convenient!
1.10.7.2. Load an existing notebook¶
If you want to load a notebook that is visible in the dashboard, simply click on its name. A new browser tab will open and the notebook loaded.
If your notebook file is located under one or several sub-directories in the dashboard, simply click your way through to it by traversing the directories in the dashboard view.
You cannot access .ipynb
files that are outside (i.e. above) the
root of the directory tree in the dashboard. You can always jump
back by clicking on the “home” icon in the dashboard view:
Upon opening a notebook file, the upper right corner of the new tab
will display status notifications, including (very briefly) a Kernel
ready
status message.
This means that the Python kernel is ready for your input.
1.10.7.3. Create a new notebook¶
To create a new notebook, click on the New
button in the upper
right corner of the dashboard, and select a Python kernel (here
Python 3
).
A new browser tab will open with an empty notebook awaiting your input:
1.10.7.4. Set notebook title (and .ipynb
file name)¶
When you create a new notebook, it’s title will be Untitled
(possibly with an auto-incrementing counter appended to it,
e.g. Untitled3
, etc.).
The title of a notebook also serves as the root of the notebook file name to be saved. It is a good idea to give the notebook a descriptive title, e.g. one that helps you recognize later what this notebook was all about.
To change the notebook title, click on the current title (which is “Untitled”). A small window will pop up:
You can now edit the highlighted text (here Untitled
), then click on the OK
button to confirm your change
Note the changed title (here Pythagoras
). On the next save, the
file name of this notebook will be Pythagoras.ipynb
. (The standard extension is automatically forced.)
1.10.7.5. Edit and run a cell¶
Commands and text are entered into so-called cells inside a notebook.
Each cell can contain one or more (or many!) lines of input. The
content of the cell will be only executed when you explicit tell it to
do so (via keyboard shortcut Shift+ENTER
).
In the example above we have instructed the notebook to import the
Data Lab authentication client, under a shortcut name ac
. Once the
input was typed in the cell, a Shift+Enter
(pressed
simultaneously) executed the content of the cell. The import was
performed, and a new empty cell appeared beneath the first cell,
awaiting new input.
When the execution of a cell does not return immediately, the cell number at the left changes temporarily to [*] during processing - during a long task this might be your only evidence that something is happening.
1.10.7.6. Set cell type¶
Each cell can be set to one of several input modes (e.g. code,
markdown, etc.). The default is code
(meaning valid Python
commands). In the example below we switch to markdown
which is
good for formatting, headers, descriptive text, etc.
After changing the cell type to markdown
we enter a large title
(H1 size):
Finally, a Shift+ENTER
keyboard shortcut executes this cell as
well, rendering the markdown content:
As before, a new empty cell is created right underneath the rendered one.
You can also use keyboard shortcuts to switch the cell type; e.g., to
change a cell type to markdown, press ESC,m
. To change it to code,
type ESC,y
.
1.10.7.7. Run the entire notebook¶
To run all cells in a notebook, one after another, starting at the
top, click on the Cell
entry in the menu bar, then on Run all
,
as shown below:
The entire notebook will be executed.
1.10.7.8. Save and export¶
Your notebook is automatically saved after a set period of time
(typically 120 seconds). If you wish to save the file manually at any
given time, either type ESC,s
or click on the Save and
Checkpoint icon (left-most icon that looks like a floppy disk).
A notebook .ipynb
file also saves all output generated by the
notebook cells. This makes a notebook very portable, and you can
easily share it with others, email it to yourself, etc.
1.10.8. Logout from the notebook server¶
To logout from the Data Lab notebook server, click on the Logout
button in the upper-right corner (either from a notebook browser tab,
or from the notebook dashboard tab).
1.10.9. Troubleshooting¶
1.10.9.1. Restart the kernel¶
Sometimes you may wish to restart a kernel, i.e. restart the Python notebook you are currently running.
One reason for doing so is when you have changed some external .py
file that your notebook is importing. If you try to import that file
again, the new changes won’t be picked up (unless you explicitly
reload
that file). Another common reason to restart a running
kernel is when there is some technical hiccup with the notebook; a
restart of the kernel can help resolve the issues.
To restart a kernel, either type ESC,0,0
(Escape,zero,zero keys),
or click in the menu bar on Kernel
, then on Restart
:
Whether you used the mouse or the keyboard shortcut, a confirmation dialog will pop up:
Confirm your wish to indeed restart the notebook kernel by either
clicking on the Restart
button, or by hitting the ENTER
key.
The kernel will be restarted, and you can re-run all relevant cells in it. (You must re-run the cells, since a kernel restart forgets the current state of memory variables).
1.10.9.2. Restart the notebook server¶
If you experience technical difficulties in executing your notebook, and you have already tried to remedy them by restarting the kernel (to no effect), then the problem might be on the Data Lab notebook server side.
If you are logged in as a registered user, then you can then try to
restart the notebook server. For this, click on the Control Panel
button in the upper-right corner (either from a notebook browser tab,
or from the dashboard tab):
You should see two buttons. Click on the red one saying Stop My Server
:
Wait a few seconds until the red button disappears. The notebook
server has been shut down, and you can restart it my clicking on the
remaining green button My Server
: