The need for STAC
The SpatioTemporal Asset Catalog (STAC) is an open specification that evolved from different organizations coming together to increase the interoperability of searching for satellite imagery. When a user wants to search for all the imagery in their area and time of interest they can’t make just one search — they have to use different tools and connect to API’s that are similar but all slightly different. STAC aims to make that much easier, by providing common metadata to expose geospatial assets.
The goal of STAC is to enable a global index of all imagery (satellite, aerial, drone, etc), derived data products and alternative geospatial captures (LiDAR, SAR, Full Motion Video, Hyperspectral and beyond). STAC focuses on an easily implementable standard for organizations to expose their data in a persistent and reliable way.
STAC is for Data Providers
STAC is a standardized way to expose collections of spatial temporal data. If you are a provider of imagery or other spatial information and are in need data catalogs, STAC is driving a uniform means for indexing assets. It can be used for external access to your holdings, exposing your information to search engines and to a growing ecosystem of tools. Large providers can also use a 'static catalog' for reliable backups in case the database or Elasticsearch powering their main index goes down.
STAC is for Developers
If you are building infrastructure to host, ingest, or manage collections of spatial data or image products, STAC’s core JSON is the bare minimum needed to interact with any raster geospatial data collection. Additionally, STAC standardizes metadata fields, naming conventions, query language (coming soon), and catalog structure. It describes individual instances as items containing a link to the physical dataset. The core JSON is fully extensible, allowing developers to add attributes to better capture their use case or dataset. As a developer, there are two options to implement STAC; as a static STAC or the STAC API. A static STAC is incredibly easy to create, and it can easily be ingested by an ecosystem of tools that can generate the STAC API.
Both types of catalogs support building a catalog webpage of STAC compliant items. This webpage can be an interactive landing page for each piece of data, and is easily configured to be crawled by search engine. A STAC API allows for querying data in a standard language and returning a subset of the catalog. STAC eases development of serving or consuming spatial temporal data by instituting standards, making metadata predictable. It is built by developers for developers, so implementation is usually easy, and there is a growing ecosystem of tools and libraries to use.
STAC is for Data Users
Consumers of spatial temporal datasets are often burdened with building unique pipelines for ingesting collections into their system. Collections are delivered with varying levels of detail in their metadata and via distinct delivery mechanisms. In an effort to reduce the number this burden, a community of geospatial developers have constructed the STAC spec to remove the need for tailor-made workflows.