Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

Thredds catalog client

Project description

=========================
Thredds Client for Python
=========================

|Travis Build| |Install with Conda| |Join the Chat|

Installing Thredds Client
=========================

Anaconda
--------

|Version| |Downloads|

Thredds client is available as Anaconda package. Install it with the
following command:

.. code:: bash

$ conda install -c birdhouse -c conda-forge threddsclient

From github
-----------

Check out code from the birdy GitHub repo and start the installation:

.. code:: bash

$ git clone https://github.com/bird-house/threddsclient.git
$ cd threddsclient
$ conda env create -f environment.yml
$ source activate threddsclient
$ python setup.py develop

Using Thredds Client
====================

Read the Thredds tutorial on catalogs: `Thredds Catalog
Primer <http://www.unidata.ucar.edu/software/thredds/current/tds/tutorial/CatalogPrimer.html>`__

Get download URLs of a catalog
------------------------------

.. code:: python

import threddsclient
urls = threddsclient.download_urls('http://example.com/thredds/catalog.xml')

Get OpenDAP URLs of a catalog
-----------------------------

.. code:: python

import threddsclient
urls = threddsclient.opendap_urls('http://example.com/thredds/catalog.xml')

Navigate in catalog
-------------------

Start reading a catalog

.. code:: python

import threddsclient
cat = threddsclient.read_url('http://example.com/thredds/catalog.xml')

Get a list of references to other catalogs & follow them

.. code:: python

refs = cat.references

print refs[0].name
cat2 = refs[0].follow()

Get a list of datasets in this catalog

.. code:: python

data = cat.datasets

Get flat list of all direct datasets (data files) in the catalog

.. code:: python

datasets = cat.flat_datasets()

Get flat list of all references in the catalog

.. code:: python

references = cat.flat_references()

Crawl thredds catalog
---------------------

Crawl recursive all direct datasets in catalog following the catalog
references. Stop recusion at a given depth level.

.. code:: python

import threddsclient
for ds in threddsclient.crawl('http://example.com/thredds/catalog.xml', depth=2):
print ds.name

Development
===========

Install sources
===============

Check out code from the birdy GitHub repo and start the installation:

.. code-block:: sh

$ git clone https://github.com/bird-house/threddsclient.git
$ cd threddsclient
$ conda env create -f environment.yml
$ python setup.py develop

Install additional dependencies::

$ conda install pytest flake8 sphinx bumpversion
OR
$ pip install -r requirements_dev.txt

Bump a new version
===================

Make a new version of Birdy in the following steps:

* Make sure everything is commit to GitHub.
* Update ``CHANGES.rst`` with the next version.
* Dry Run: ``bumpversion --dry-run --verbose --new-version 0.3.4 patch``
* Do it: ``bumpversion --new-version 0.3.4 patch``
* ... or: ``bumpversion --new-version 0.4.0 minor``
* Push it: ``git push --tags``

See the bumpversion_ documentation for details.

.. _bumpversion: https://pypi.org/project/bumpversion/

Examples with IPython Notebook
==============================

- `NOAA Thredds
Catalog <http://nbviewer.ipython.org/github/bird-house/threddsclient/blob/master/examples/noaa_example.ipynb>`__

.. |Travis Build| image:: https://travis-ci.org/bird-house/threddsclient.svg?branch=master
:target: https://travis-ci.org/bird-house/threddsclient
.. |Install with Conda| image:: https://anaconda.org/birdhouse/threddsclient/badges/installer/conda.svg
:target: https://anaconda.org/birdhouse/threddsclient
.. |License| image:: https://anaconda.org/birdhouse/threddsclient/badges/license.svg
:target: https://anaconda.org/birdhouse/threddsclient
.. |Join the Chat| image:: https://badges.gitter.im/bird-house/birdhouse.svg
:target: https://gitter.im/bird-house/birdhouse?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
.. |Version| image:: https://anaconda.org/birdhouse/threddsclient/badges/version.svg
:target: https://anaconda.org/birdhouse/threddsclient
.. |Downloads| image:: https://anaconda.org/birdhouse/threddsclient/badges/downloads.svg
:target: https://anaconda.org/birdhouse/threddsclient

Authors
*******

* Scott Wales scott.wales@unimelb.edu.au
* Carsten Ehbrecht ehbrecht@dkrz.de

Changes
*******

0.3.5 (2018-10-05)
==================

* support for Python 3.x (#1)

0.3.4 (2015-10-25)
==================

* fixed travis build/tests
* updated docs

0.3.3 (2015-10-24)
==================

* converted docs to rst.
* MANIFEST.in added.

0.3.2 (2015-07-15)
==================

* append catalog.xml to catalog url if missing
* crawl method added

0.3.1 (2015-06-14)
==================

* fixed catalog.follow()
* using dataset.download_url()
* added ipython example
* cleaned up Readme

0.3.0 (2015-06-13)
==================

* Refactored
* added catalog.opendap_urls()

0.2.0 (2015-06-08)
==================

* Refactored
* using CollectionDataset
* added catalog.download_urls()

0.1.1 (2015-06-05)
==================

* Fixed catalog generation.
* added pytest dependency.

0.1.0 (2015-03-13)
==================

* Version by https://github.com/ScottWales/threddsclient.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
threddsclient-0.3.5.tar.gz (15.4 kB) Copy SHA256 hash SHA256 Source None Oct 16, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page