Skip to main content

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.

Source Distribution

threddsclient-0.3.5.tar.gz (15.4 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page