Thredds Client for Python
Installing Thredds Client
Anaconda
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')
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
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)
Version by https://github.com/ScottWales/threddsclient.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| threddsclient-0.4.7.tar.gz | 18.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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