Skip to content
tutorial materials related to data acquisition, management, and analysis
Jupyter Notebook Python Shell
Branch: master
Clone or download
tacaswell Merge pull request #39 from danielballan/use-tagged-bluesky
Use JupyterLab 1.0 and a tagged version of bluesky.
Latest commit 48c3cc2 Oct 17, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Anatomy of a Device.ipynb
Epics Signal.ipynb
Export data to files with Suitcase.ipynb
Fly Scanning.ipynb
Flyer Basics.ipynb
Handling Images.ipynb
Hello Bluesky.ipynb
Hello Python and Jupyter.ipynb
Let Us Do the Bookkeeping For You.ipynb
Live Nonlinear Fitting.ipynb
Pause, Resume, and Suspend.ipynb
Process Tabular Data with Pandas.ipynb
Supplemental Data.ipynb
We'll Cross the Streams.ipynb


Bluesky Tutorial

This is a collection of tutorials on data acquisition and analysis with bluesky. It can be used in an Internet browser with no software installation.

Start here.

We recommend using Google Chrome for best results, but any modern browser is supported.


Took our tutorial? Let us know how you thought of it so we can better improve it! Survey


Contributing to this Tutorial

Making Changes

  • Install supervisor using system package manager--- apt, Homebrew, etc. It is pip-installable but currently not in Python 3, so it cannot be installed in the same environment with requirements.txt below.

  • Install the Python requirements.

    pip install -r binder/requirements.txt
  • Install the JupyterLab extensions and re-build JupyterLab.

    jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager
    jupyter labextension install --no-build jupyter-matplotlib
    jupyter lab build
  • Start JupyterLab using the binder/start executable, which also ensures that supervisor is running and imports the tutorial's JupyterLab workspace.

    binder/start jupyter lab

Publishing Updates

Binder deployment

The Binder deployment will update automatically the first time someone requests a session.

BNL JupyterHub deployment on AWS

The BNL JupyterHub deployment will automatically pull fresh copies of the content but if the software requirements change, the Docker image must be manually updated.

To build an publish an updated version of the Docker image:

jupyter-repo2docker --user-name=jovyan --no-run --image-name nsls2/tutorial:$(git rev-parse --short=6 HEAD) .
docker push $(git rev-parse --short=6 HEAD)

Using the first six characters of the current commit hash as the Docker tag is just a convention to help us stay organized. If re-building a new copy of the same content but with updated dependencies (say, pulling in an updated version of bluesky), add a .N counting number after the hash, starting at .1.

Then in the CI host on AWS, update the tag in the JupyterHub helm configuration, config.yaml, and redeploy:

helm list  # Find <DEPLOYMENT_NAME>.
helm upgrade <DEPLOYMENT_NAME> jupyterhub/jupyterhub --version=v0.6 -f config.yaml
You can’t perform that action at this time.