The SpatioTemporal Asset Catalog (STAC) specification provides a common language to describe a range of geospatial information, so it can more easily be indexed and discovered. A 'spatiotemporal asset' is any file that represents information about the earth captured in a certain space and time.

The goal is for all providers of spatiotemporal assets (Imagery, SAR, Point Clouds, Data Cubes, Full Motion Video, etc) to expose their data as SpatioTemporal Asset Catalogs (STAC), so that new code doesn't need to be written whenever a new data set or API is released.

Why does STAC Matter?

  • Data Providers

    STAC is a standardized way to expose collections of spatial temporal data. If you are a provider of data about the earth in need of a cataloging your holdings, STAC is driving a uniform means for indexing assets.

  • Developers

    If you are building infrastructure to host, ingest, or manage collections of spatial data, STAC’s core JSON is the bare minimum needed to describe geospatial assets, and is extensible to customize to your domain.

  • Data Users

    Users of spatial temporal data are often burdened with building unique pipelines for each different collection of data they consume. The STAC community has defined this specification to remove this complexity and spur common tooling.

STAC Specification

The STAC Specification consists of 4 semi-independent specifications. Each can be used alone, but they work best in concert with one another.

  • STAC Item is the core atomic unit, representing a single spatiotemporal asset as a GeoJSON feature plus datetime and links.
  • STAC Catalog is a simple, flexible JSON file of links that provides a structure to organize and browse STAC Items. A series of best practices helps make recommendations for creating real world STAC Catalogs.
  • STAC Collection is an extension of the STAC Catalog with additional information such as the extents, license, keywords, providers, etc that describe STAC Items that fall within the Collection.
  • STAC API provides a RESTful endpoint that enables search of STAC Items, specified in OpenAPI, following OGC's WFS 3.

STAC in action

Several STAC Catalogs are live, including:

A growing list of STAC catalogs and APIs can also be found on STAC Index.

Deploys by Netlify    The first six catalogs listed above on stac.cloud are powered by Netlify.

STAC is supported by an active community of developers, with involvement from a large range of organizations.

STAC Tools

A range of tools help facilitate the use of the STAC spec, including:

  • STAC Browser is a Vue-based browser for STAC catalogs.
  • Cognition is a pluggable, STAC-compliant, proxy for searching geospatial assets.
  • STAC Validator is a python utility to validate STAC json files against the STAC spec or against local STAC extensions.
  • STAC Node Validator is a javascript utility to validate STAC JSON files against the STAC. It is currently the only validator working against 1.0.0-beta.1 (and only works against that version).
  • Serverless STAC Crawler is a static STAC crawler that runs on Lambda and SQS integration.
  • Intake-STAC provides tools for opening STAC as Intake catalogs. Intake and Intake-xarray enable loading STAC assets into Xarray objects (more).
  • PySTAC is a library for working with STAC catalogs in Python (more).
  • STAC Server (previously known as sat-api) is a STAC compliant web API for searching and serving metadata for geospatial data. It is written in Javascript and backed by Elasticsearch
  • Franklin A STAC and OGC API Features compliant web service focused on ease-of-use for end-users (more).
  • pygeoapi is a Python server implementation of the OGC API suite of standards, as well as support for serving geospatial data via STAC.
  • staccato is a Java server implementation of STAC, backed by Elasticsearch. It includes support for transactions, statistics, auto-generated schemas, gRPC endpoints and Kafka ingestion.
  • sat-api-pg is a STAC API implementation backed by PostGIS.
  • Rocket is STAC client that enables browsing of any public STAC Catalog through a nice user interface.
  • EODAG is a CLI tool and a Python framework for searching, aggregating results and downloading EO data through a unified API regardless of the data provider. It can be run as STAC client or STAC API proxy server for non-STAC providers.
  • Sat-utils is a set of utilities for searching/processing satellite data, including:
    • Sat-search is a Python 3 library and a command line tool for discovering and downloading publicly available satellite imagery.
    • Sat-stac is a Python 3 library for creating and working with STAC catalogs.
    • Sat-stats is a Python 3 library for calculating zonal statistics on images being stored remotely on S3.
    • Sat-fetch is a Python 2/3 library and command line tool for fetching, warping, and clipping remote imagery datasets.

A growing list of STAC tooling can also be found on STAC Index.

Get Involved!

There are a variety of ways to get involved with STAC, from building software, creating new STAC Catalogs, working on the spec, or helping in outreach. We strive to be fully open, collaborative and welcoming community. The button below will take you to our 'How To Help' page. You can also just jump in to one of our communication forums: