{"id":22371,"library":"siphon","title":"Siphon","description":"Siphon is a collection of Python utilities for interacting with the Unidata technology stack, particularly for accessing and downloading remote datasets via THREDDS Data Servers (TDS). Current version 0.10.0 requires Python >=3.10. Releases are periodic, roughly yearly.","status":"active","version":"0.10.0","language":"python","source_language":"en","source_url":"https://github.com/Unidata/siphon","tags":["unidata","thredds","netcdf","meteorology","data-download"],"install":[{"cmd":"pip install siphon","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"Required for parsing XML/HTML responses from TDS catalogs.","package":"beautifulsoup4","optional":false},{"reason":"Used for HTTP requests to remote data servers.","package":"requests","optional":false}],"imports":[{"note":"TDSCatalog is not in the top-level siphon namespace; must import from siphon.catalog.","wrong":"from siphon import TDSCatalog","symbol":"TDSCatalog","correct":"from siphon.catalog import TDSCatalog"},{"note":"NCSS (NetCDF Subset Service) is in siphon.ncss.","wrong":"from siphon import NCSS","symbol":"NCSS","correct":"from siphon.ncss import NCSS"},{"note":"remote_open is a utility function in the ncss module.","wrong":null,"symbol":"remote_open","correct":"from siphon.ncss import remote_open"}],"quickstart":{"code":"from siphon.catalog import TDSCatalog\n\n# Create a catalog object for the Unidata THREDDS server\ncat = TDSCatalog('https://thredds.ucar.edu/thredds/catalog.xml')\n# List datasets\nprint(list(cat.datasets)[:5])","lang":"python","description":"Connects to a THREDDS Data Server catalog and lists available datasets."},"warnings":[{"fix":"Use Python 3.10 or newer for siphon >=0.10.0.","message":"Siphon 0.9.0 dropped support for Python 2.7 and older Python 3.x. Python >=3.6 required; from 0.10.0, Python >=3.10 required.","severity":"breaking","affected_versions":"0.9.0+"},{"fix":"Migrate to using 'siphon.ncss' or direct NetCDF4 access via remote_open.","message":"The 'siphon.cdmr' module is deprecated as of siphon 0.9.0 and may be removed in a future release.","severity":"deprecated","affected_versions":"0.9.0+"},{"fix":"Append '/catalog.xml' to the base THREDDS server URL if not already present.","message":"When using TDSCatalog with a remote server, ensure the URL points to a valid catalog.xml, not a dataset access URL. Otherwise, parsing may fail silently.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run 'pip install siphon' in the correct Python environment.","cause":"Siphon is not installed or installed in a different environment.","error":"ModuleNotFoundError: No module named 'siphon'"},{"fix":"Use 'from siphon.catalog import TDSCatalog'.","cause":"TDSCatalog is not in the top-level siphon module.","error":"AttributeError: module 'siphon' has no attribute 'TDSCatalog'"},{"fix":"Verify the catalog URL is correct and reachable. Use 'https://thredds.ucar.edu/thredds/catalog.xml' as a test.","cause":"Network issue or incorrect URL when accessing a THREDDS server.","error":"requests.exceptions.ConnectionError: HTTPSConnectionPool"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}