rio-stac
Create STAC Items from raster datasets.
What it is and what it does
rio-stac is a rasterio plugin that transforms raster datasets into valid STAC Items—standardized geospatial catalog entries that follow the Spatiotemporal Asset Catalog specification. It reads raster metadata (CRS, bounds, bands, statistics) and wraps them in a STAC-compliant JSON structure, making raster data discoverable and interoperable within STAC ecosystems. The library is built on pystac to ensure strict adherence to the STAC specification.
Typical use is in geospatial data pipelines where you need to catalog raster files for discovery, archival, or integration into larger data systems. It extracts projection information, band statistics, and geometry automatically, then generates a complete STAC Item with assets, links, and metadata ready for publication to a STAC catalog or API.
Use it for:
- Catalog satellite imagery or aerial photography into a STAC-compliant repository for discovery and access.
- Automate metadata extraction from GeoTIFF or COG files to populate a geospatial data catalog.
- Generate STAC Items for raster datasets as part of a data ingestion pipeline into cloud-native geospatial systems.
- Create standardized metadata records for raster analysis outputs to make them discoverable in STAC APIs.
- Batch-process multiple raster files to generate STAC Items for archival or publication.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
rio-stac creates valid STAC Items from raster datasets by reading geospatial metadata and generating standardized catalog entries compatible with the STAC specification.
Yes. The package is actively maintained, has low install friction, carries a permissive license, and solves a specific and well-defined problem in geospatial data cataloging. It is suitable for production use in STAC-based workflows, with no known security vulnerabilities and support for current Python versions (3.10–3.13).
Install
rio-stac on PyPI
pip
pip install rio-stacuv
uv add rio-stacpoetry
poetry add rio-stacInstalling rio-stac
Before you install
Low friction install with only two runtime dependencies (rasterio and pystac). The package is actively maintained with a recent release in September 2025 and steady repository activity.
License in practice
Permissive license treatment means you can use this package in commercial and proprietary projects without significant legal constraints.
Quickstart
pip install rio-stac
from rio_stac import rio_stac
import rasterio
with rasterio.open('dataset.tif') as src:
item = rio_stac.create_stac_item(src)
Requires rasterio, which depends on GDAL/GEOS system libraries; ensure these geospatial dependencies are installed on your system.
Verify before relying
- Whether the package provides a CLI interface (the description shows 'rio stac' command but does not explicitly document it)
- Performance characteristics when processing large raster files or datasets with many bands
- Whether custom STAC extensions beyond projection, raster, and eo can be added or configured
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — rasterio, pystac |
| Maintenance | actively maintained — 331 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 94,741/month — #13,310 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: rio_stac-0.12.0-py3-none-any.whl
Tags
More GIS packages
Shapely provides Python tools for creating,…
permissive · top 1,000 on PyPI
pyprojpyproj provides a Python interface to PROJ,…
permissive · top 1,000 on PyPI
geopandasGeoPandas extends pandas DataFrames to handle…
permissive · top 1,000 on PyPI
geopygeopy is a Python client for geocoding and…
permissive · top 5,000 on PyPI
pyogrioPyogrio provides fast, bulk-oriented read and…
permissive · top 5,000 on PyPI
h3h3 provides Python bindings to Uber's H3…
permissive · top 5,000 on PyPI
pystac-ext-rasterExtends PySTAC with the Raster Extension…
permissive · top 5,000 on PyPI
pystac-ext-projectionExtends PySTAC to add geospatial projection…
permissive · top 5,000 on PyPI
pystac-ext-gridExtends PySTAC to describe gridded data…
permissive · top 5,000 on PyPI
pystacPySTAC is a Python library for reading,…
permissive · top 5,000 on PyPI
rio-tilerrio-tiler reads raster data from local and…
permissive · top 15,000 on PyPI
pystac-ext-classificationProvides PySTAC extension support for…
permissive · top 5,000 on PyPI
pystac-ext-eoExtends PySTAC to add Electro-Optical extension…
permissive · top 5,000 on PyPI
pystac-ext-xarray-assetsExtends PySTAC to support the Xarray Assets…
permissive · top 5,000 on PyPI
stac-pydanticProvides Pydantic models for validating and…
permissive · top 15,000 on PyPI
rio-cogeorio-cogeo creates and validates Cloud Optimized…
permissive · top 15,000 on PyPI