A Jupyter Notebook server extension which crawls a thredds catalog

Jupyter, JupyterLab, Thredds, jupyterlab-extension
pip install jupyterlab-thredds==0.4.1



Build Status SonarCloud Quality SonarCloud Coverage DOI

JupyterLab dataset browser for THREDDS catalog

Can inject iris/xarray/leaflet code cells into a Python notebook of a selected dataset to further process/visualize the dataset.



  • JupyterLab, pip install jupyterlab
  • ipywidgets, jupyter labextension install @jupyter-widgets/jupyterlab-manager, requirement for ipyleaflet
  • ipyleaflet, jupyter labextension install jupyter-leaflet, to load a WMS layer
  • iris, conda install -c conda-forge iris


pip install jupyterlab_thredds
jupyter labextension install @ewatercycle/jupyterlab_thredds


  1. Start Jupyter lab with jupyter lab
  2. In Jupyter lab open a notebook
  3. Open the THREDDS tab on the left side.
  4. Fill the catalog url
  5. Press search button
  6. Select how you would like to open the dataset, by default it uses iris Python package.
  7. Press a dataset to insert code into a notebook


For a development install, do the following in the repository directory:

pip install -r requirements.txt
jlpm build
jupyter labextension link .
jupyter serverextension enable --sys-prefix jupyterlab_thredds

(jlpm command is JupyterLab's pinned version of yarn that is installed with JupyterLab.)

To rebuild the package and the JupyterLab app:

jlpm build
jupyter lab build

Watch mode

# shell 1
jlpm watch
# shell 2
jupyter lab --ip= --no-browser --watch


To make a new release perform the following steps:

  1. Update version in package.json, CITATION.cff and jupyterlab_thredds/version.py
  2. Record changes in CHANGELOG.md
  3. Make sure tests pass by running jlpm test and pytest
  4. Commit and push all changes
  5. Publish lab extension to npmjs with jlpm build and jlpm publish --access=public
  6. Publish server extension to pypi with python setup.py sdist bdist_wheel and twine upload dist/*
  7. Create GitHub release
  8. Update DOI in README.md and CITATION.cff