jupyterlab-thredds

A Jupyter Notebook server extension which crawls a thredds catalog


Keywords
Jupyter, JupyterLab, Thredds, jupyterlab-extension
License
Apache-2.0
Install
pip install jupyterlab-thredds==0.4.1

Documentation

jupyterlab_thredds

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.

screenshot

Prerequisites

  • 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

Installation

pip install jupyterlab_thredds
jupyter labextension install @ewatercycle/jupyterlab_thredds

Usage

  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

Development

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

pip install -r requirements.txt
jlpm
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=0.0.0.0 --no-browser --watch

Release

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