odc-stac
Tooling for converting STAC metadata to ODC data model
What it is and what it does
odc-stac bridges STAC metadata catalogs and xarray, the standard data model for multidimensional geospatial arrays in Python. It takes STAC items (which describe collections of raster imagery and other spatial data) and loads them into xarray Datasets, making them ready for analysis, visualization, and computation. The package integrates with Dask to parallelize data loading and processing across multiple machines or cores, which is essential for working with large satellite or climate datasets that don't fit in memory.
The library is built on a foundation of mature geospatial tools: rasterio for raster I/O, affine for coordinate transformations, odc-geo for geospatial utilities, and xarray for the data model itself. It's actively maintained and supports modern Python versions (3.10–3.13). The package is designed for researchers, data engineers, and analysts working with cloud-hosted or distributed geospatial datasets.
Use it for:
- Load satellite imagery from a STAC catalog into xarray for time-series analysis or change detection.
- Query a STAC source, retrieve matching scenes, and parallelize their loading across a Dask cluster.
- Convert STAC metadata into a standardized xarray format for ingestion into geospatial processing pipelines.
- Visualize multispectral raster data (e.g., red, green, blue bands) retrieved from STAC items using xarray's plotting methods.
- Build reproducible workflows that fetch and process geospatial data from STAC catalogs without manual download steps.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts STAC (SpatialTemporal Asset Catalog) metadata into xarray Datasets, with optional Dask support for distributed data loading and computation.
Yes, if you work with STAC catalogs or cloud-hosted geospatial data. The package is actively maintained, has low install friction, and fills a clear gap between STAC metadata and xarray workflows. However, verify the license terms before use in proprietary projects, and confirm your workflow's actual dependency requirements.
Install
odc-stac on PyPI
pip
pip install odc-stacuv
uv add odc-stacpoetry
poetry add odc-stacInstalling odc-stac
Before you install
Low friction: pure Python wheel with no compiled dependencies. Active maintenance (last release 15 days ago, last commit 2026-07-29). Requires Python 3.10+. Eleven runtime dependencies are all established geospatial and data-processing libraries.
License in practice
License status is unclear—no SPDX identifier or raw license text is recorded in the package metadata. Verify the actual license before use in proprietary or restricted contexts.
Quickstart
pip install odc-stac
import odc.stac
from pystac import Item
xx = odc.stac.load(
items=[],
bands=["red", "green", "blue"],
)
Requires Python 3.10 or later. Requires a STAC item source; pystac is a runtime dependency but the full workflow typically requires external catalog access.
Verify before relying
- Whether pystac_client (not listed as a dependency) is required for typical STAC catalog workflows.
- Actual license text and terms—metadata shows no SPDX or raw license field.
- Whether the optional botocore extra is needed for typical AWS S3 workflows.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 11 — affine, odc-geo, odc-loader, rasterio, dask, numpy, pandas, pystac, toolz, typing-extensions, xarray |
| Maintenance | actively maintained — 15 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 114,501/month — #12,293 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: odc_stac-0.5.3-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
odc-loaderConstructs xarray objects from parsed…
permissive · top 15,000 on PyPI
pystac-clientPySTAC Client is a Python library for querying…
permissive · top 15,000 on PyPI
pystac-corePySTAC Core provides the foundational API for…
permissive · top 5,000 on PyPI
pystacPySTAC is a Python library for reading,…
permissive · top 5,000 on PyPI
pystac-ext-xarray-assetsExtends PySTAC to support the Xarray Assets…
permissive · top 5,000 on PyPI
odc-geoProvides projection-aware geometry classes…
permissive · top 15,000 on PyPI
pystac-ext-projectionExtends PySTAC to add geospatial projection…
permissive · top 5,000 on PyPI
pydappydap is a pure-Python OPeNDAP client and…
permissive · top 15,000 on PyPI
arcosparseDownloads and subsets sparse geospatial…
unclear · top 15,000 on PyPI
intakeIntake provides a declarative data catalog…
permissive · top 5,000 on PyPI