SpatioTemporal Asset Catalogs: Enabling online search and discovery of geospatial assets
What is STAC?
STAC stands for SpatioTemporal Asset Catalog. It is a language for geospatial catalogs and assets with a focus on search and discovery. The SpatioTemporal Asset Catalog family of specifications aims to standardize how geospatial asset metadata is structured and queried. In short, STAC specifications describe geospatial data, and how to search that data.
Initially, the term “spatiotemporal asset” represents information about the Earth at a certain place and time, with a focus on scenes of satellite imagery. The specifications now cover a broad variety of uses, including sources such as aircraft, and drones. STAC also covers data such as synthetic aperture radar (SAR), video, point clouds, lidar, digital elevation models (DEM), vector, and composites like NDVI and mosaics.
With the support and development from the community, STAC has gradually matured into supporting multiple platforms such as Google Earth Engine and USGS Landsat Collection 2.
Why does STAC Matter?
Currently, when a user is unable to make just one search for all the imagery in their area, it is because the platforms have different tools and APIs that are similar but also slightly different. STAC aims to make this situation much easier, by providing common metadata to expose geospatial assets. The goal of the SpatioTemporal Asset Catalog is to create a global index of all imagery (satellite, aerial, drone, etc), derived data products, and alternative geospatial captures (LiDAR, SAR, Hyperspectral, and beyond). STAC focuses on an easily implementable standard for organizations to share their data consistently and recognizably.
The SpatioTemporal Asset Catalog provides a standardized way to navigate collections of spatial-temporal data that is advantageous to many stakeholders. A standard format, with a collaborated result from community users, can save valuable time for geospatial data providers without needing to design their own. On the other hand, data consumers don’t need to create new codes to interact with different formats and APIs from different providers. Users do not need to build unique pipelines of data for each collection they use, which enables them to navigate different datasets more easily.
Finally, for developers that are building infrastructure to host, consume, or manage collections of spatial data, STAC offers a core specification with defined JSON object types, and more importantly, it is fully extensible for developers to customize to their domain.
STAC Specification
The STAC Specification can be broken down into 4 semi-independent specifications. Each specification can be used alone, but they work best in concert with one another.
The Item, Catalog, and Collection specifications define a minimal core of the most frequently used JSON object types. Within the most important object in STAC is an Item, which is simply a GeoJSON Feature with a well-defined set of additional attributes. Because of the hierarchical structure between these objects, a STAC catalog can be implemented in a completely ‘static’ manner as a group of hyperlinked Catalog, Collection, and Item URLs, enabling data publishers to expose their data as a browsable set of files.
If more complex query abilities are desired, such as spatial or temporal predicates, the STAC API specification can be implemented as a web service interface to query over a group of STAC objects, usually held in a database.
- 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 help make recommendations for creating real-world STAC Catalogs.
- STAC Collection is an extension of the STAC Catalog with additional information such as the extent, license, keywords, providers, etc that describe STAC Items that fall within the Collection.
- STAC API provides a RESTful endpoint that enables the search of STAC Items, specified in OpenAPI, following OGC’s WFS 3.
Further Reading/Watching
In this webinar, Matthias Mohr, a Software Developer/Research Associate at Westfälische Wilhelms-Universität Münster, provides an overview of the STAC Specification. He gives some background on the effort and the motivations behind the development of SpatioTemporal Asset Catalog.