Skip to main content

Thredds Client for Python

Travis Build Install with Conda Join the Chat

Installing Thredds Client

Anaconda

Version-GitHub Version-Anaconda Version-PyPI Downloads

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

conda install -c conda-forge threddsclient

From PyPI

Thredds Client is available from PyPI to install directly with pip or poetry.

pip install threddsclient
poetry add threddsclient

From GitHub

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

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

Alternatively, you can also install it directly with pip using a virtual environment of your choice:

pip install "threddsclient @ git+https://github.com/bird-house/threddsclient.git"

Using Thredds Client

Read the Thredds tutorial on catalogs: Thredds Catalog Primer

Get download URLs of a catalog

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

Get OpenDAP URLs of a catalog

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

Navigate in catalog

Start reading a catalog

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

Get a list of references to other catalogs & follow them

refs = cat.references

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

Get a list of datasets in this catalog

data  = cat.datasets

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

datasets = cat.flat_datasets()

Get flat list of all references in the catalog

references = cat.flat_references()

Crawl thredds catalog

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

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:

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 {NEW_VERSION} patch

  • Do it: bumpversion --new-version {NEW_VERSION} patch

  • Push it: git push --tags

See the bumpversion documentation for details.

Examples with IPython Notebook

Authors

Changes

Unreleased

  • Nothing new for the moment.

0.4.7 (2025-12-15)

  • Add url and download_url to project setup for reference by PyPI package.

  • Add Python 3.13 and 3.14 to CI and project.

  • Update default Python 3.13 in CI for tests.

  • Remove Python 3.6 and 3.7 from CI.

0.4.6 (2024-07-09)

  • Drop Python 3.7.

  • Add Python 3.12.

0.4.5 (2024-01-22)

  • Fixed TDS v5 and HYRAX catalog traversing issue (#15)

0.4.4 (2023-07-11)

  • add shield badges for PyPI and GitHub releases

  • fix rendering of code blocks in README.rst

  • add missing classifiers and python requirements to setup.py to allow validators to detect appropriate versions

  • add python 3.9, 3.10 and 3.11 to the supported versions in setup.py and validate them in GitHub CI

  • drop Travis CI configuration in favor of GitHub CI

  • fix test_noaa with the target THREDDS server responding differently than originally tested

0.4.3 (2023-05-31)

  • fix xml parsing for recent versions

0.4.2 (2019-11-20)

  • fixed conda links in Readme.

0.4.1 (2019-11-06)

  • fixed docs formatting.

0.4.0 (2019-11-06)

  • drop Python 2.7 (#5)

  • fix pip install (#4)

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)

Release files for threddsclient 0.4.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for threddsclient 0.4.7
File Size Uploaded
threddsclient-0.4.7.tar.gz 18.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for threddsclient 0.4.7
File Interpreter ABI Platform
threddsclient-0.4.7-py3-none-any.whl Python 3 none any Details

Total release size: 31.7 kB

Release files / threddsclient-0.4.7.tar.gz

Download URL threddsclient-0.4.7.tar.gz
Size 18.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3e936d98cbf2b864a500dec81d2a90714e08565c71edfcb319a0fc3affd10665
BLAKE2b-256 checksum
How to use checksums
769e3dfbdc2d9b6283f22cf326c3529230067d5773627fa58fe37c8aac013ba0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 15, 2025.

Transparency log

Release files / threddsclient-0.4.7-py3-none-any.whl

Download URL threddsclient-0.4.7-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
67d713effdf5d8bff257137d45a10bd8b4c95a2f37ae77e42e8eb271f6caf40d
BLAKE2b-256 checksum
How to use checksums
ac3afa38178cff57d35602840b8489f589c05b3ff635e46c125fcb271ee40444
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 15, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.7 This release

2 release files

0.4.6

1 release file

0.4.5

1 release file

0.4.4

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page