Skip to content

Schema, functions and a python library for storing and accessing STAC collections and items in PostgreSQL

License

Notifications You must be signed in to change notification settings

stac-utils/pgstac

Repository files navigation

PostgreSQL schema and functions for Spatio-Temporal Asset Catalog (STAC)

Test Package version License


Documentation: https://stac-utils.github.io/pgstac/

Source Code: https://github.com/stac-utils/pgstac


PgSTAC is a set of SQL functions and schema to build highly performant databases for Spatio-Temporal Asset Catalogs (STAC). The project also provides pypgstac (a Python module) to help with database migrations and document ingestion (collections and items).

PgSTAC provides functionality for STAC Filters, CQL2 search, and utilities to help manage the indexing and partitioning of STAC Collections and Items.

PgSTAC is used in production to scale to hundreds of millions of STAC items. PgSTAC implements core data models and functions to provide a STAC API from a PostgreSQL database. PgSTAC is entirely within the database and does not provide an HTTP-facing API. The STAC FastAPI PgSTAC backend and Franklin can be used to expose a PgSTAC catalog. Integrating PgSTAC with any other language with PostgreSQL drivers is also possible.

PgSTAC Documentation: https://stac-utils.github.io/pgstac/pgstac

pyPgSTAC Documentation: https://stac-utils.github.io/pgstac/pypgstac

Project structure

/
 ├── src/pypgstac           - pyPgSTAC python module
 ├── src/pypgstac/tests/    - pyPgSTAC tests
 ├── scripts/               - scripts to set up the environment, create migrations, and run tests
 ├── src/pgstac/sql/        - PgSTAC SQL code
 ├── src/pgstac/migrations/ - Migrations for incremental upgrades
 └── src/pgstac/tests/      - test suite

Contribution & Development

See CONTRIBUTING.md

License

See LICENSE

Authors

See contributors for a listing of individual contributors.

Changes

See CHANGELOG.md.