Metadata-Version: 2.1
Name: jupyterlab-thredds
Version: 0.4.0
Summary: A Jupyter Notebook server extension which crawls a thredds catalog
Home-page: https://github.com/eWaterCycle/jupyterlab_thredds
Author: S. Verhoeven
Author-email: s.verhoeven@esciencecenter.nl
License: Apache-2.0
Keywords: Jupyter,JupyterLab,Thredds
Platform: Linux
Platform: Mac OS X
Platform: Windows
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.5
Description-Content-Type: text/markdown
Requires-Dist: notebook
Requires-Dist: siphon
Requires-Dist: xarray
Requires-Dist: netCDF4
Requires-Dist: ipyleaflet
Requires-Dist: OWSLib
Requires-Dist: traitlets
Requires-Dist: aiohttp

# jupyterlab_thredds

[![Build Status](https://travis-ci.org/eWaterCycle/jupyterlab_thredds.svg?branch=master)](https://travis-ci.org/eWaterCycle/jupyterlab_thredds)
[![SonarCloud Quality](https://sonarcloud.io/api/project_badges/measure?project=jupyterlab_thredds&metric=alert_status)](https://sonarcloud.io/dashboard?id=jupyterlab_thredds)
[![SonarCloud Coverage](https://sonarcloud.io/api/project_badges/measure?project=jupyterlab_thredds&metric=coverage)](https://sonarcloud.io/component_measures?id=jupyterlab_thredds&metric=coverage)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1241006.svg)](https://doi.org/10.5281/zenodo.1241006)

JupyterLab dataset browser for [THREDDS catalog](https://www.unidata.ucar.edu/software/thredds/v4.6/tds/catalog/index.html)

Can inject [iris](http://scitools.org.uk/iris/docs/latest/index.html)/[xarray](https://xarray.pydata.org)/[leaflet](https://github.com/jupyter-widgets/ipyleaflet) code cells into a Python notebook of a selected dataset to further process/visualize the dataset.

![screenshot](https://github.com/eWaterCycle/jupyterlab_thredds/blob/master/jupyterlab_thredds.gif "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](http://scitools.org.uk/iris/docs/latest/index.html), `conda install -c conda-forge iris`

## Installation

```bash
pip install jupyterlab_thredds
jupyter labextension install @ewatercycle/jupyterlab_thredds
```

## Usage

0. Start Jupyter lab with `jupyter lab`
1. In Jupyter lab open a notebook
2. Open the `THREDDS` tab on the left side.
3. Fill the catalog url
4. Press search button
5. Select how you would like to open the dataset, by default it uses [iris](http://scitools.org.uk/iris/docs/latest/index.html) Python package.
6. Press a dataset to insert code into a notebook

## Development

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

```bash
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](https://yarnpkg.com/) that is installed with JupyterLab.)

To rebuild the package and the JupyterLab app:

```bash
jlpm build
jupyter lab build
```

Watch mode
```bash
# 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. Publish lab extension to npmjs with `jlpm build` and `jlpm publish --access=public`
5. Publish server extension to pypi with `python setup.py sdist bdist_wheel` and `twine upload dist/*`
6. Create GitHub release
7. Update DOI in `README.md` and `CITATION.cff`


