SpatioTemporal Asset Catalog (STAC) For The Rest of Us

SpatioTemporal Asset Catalog (STAC) For The Rest of Us

Probably everything you need to know to get started with STAC

December 03, 202317 min read

Ever since I first encountered the SpatioTemporal Asset Catalog (STAC), its elegance and versatility have captivated my interest. STAC is rapidly gaining traction in the geospatial industry. It's widespread adoption has fueled its integration in popular geospatial software, driving its community growth and attracting adoption by leading organizations and data providers. In this article, I aim to share what I've learned about STAC through practical usage and research. We will explore its core principles and delve into its rich ecosystem.

What is STAC

STAC is an open specification that came about in 2017, from 25 people representing 14 different organizations including Amazon, Development Seed, Humanitarian OpenStreetMap Team (HOT), Google, Planet, Element84, Hexagon Geospatial, Radiant Earth, Digital Globe, Harris ENVI, Boundless, BITS, Azavea, and Pixia. They gathered together in Boulder, Colorado for a sprint to develop a standardized format for cataloging spatiotemporal assets.

Pioneered by Chris Holmes and the Radiant Earth Foundation, STAC is designed to be a very simple JSON protocol, open source and extensible.

JSON stands for JavaScript Object Notation. It is a lightweight, human-readable data-interchange format that uses key-value pairs to store data.

Below is an example of a JSON object:

{
  "id": 1,
  "name": "This is a JSON",
  "description": "It is a very simple and human readable format.",
  "categories": ["Geospatial", "Earth Observation"]
}

STAC is a specification. That is, it is neither a software library nor an installable application. Think of it as a manual, with instructions on how to use or setup a new item you just purchased. A specification is often a type of technical standard. It serves as a blueprint for design, development, and implementation, ensuring consistency, compatibility, and quality across various aspects.

STAC is not the data itself, but rather a catalog that provides information about where the data is located, what it is, and how it can be used. This makes it easier to find and use geospatial data from a variety of sources.

A catalog is a structured metadata repository. It stores information about data assets, such as their location, format, usage restrictions, and ownership.

Why STAC

Before STAC, finding earth observation data was challenging, because users must use different tools and connect to different Application Programming Interfaces (APIs). The screenshot below (accessed from this YouTube video) illustrates the diverse landscape of portals and interfaces for accessing spatiotemporal data.

Each portal has its own unique terminology, data structures, and access methods, making it challenging for users to navigate and utilize data from multiple sources.

Different portals for accessing geospatial data
Different portals for accessing geospatial data

Data providers such as Planet, USGS, Maxar, each have their own unique APIs that use different teminology. As quoted Chris Holmes, "Everyone was trying to achieve the same thing but slightly differently". These differences make it difficult to find, use, and share geospatial data across platforms and applications.

Everyone was trying to achieve the same thing but slightly differently

For instance, if you want to search for satellite data and filter by cloud cover percentage, instead of memorizing different terms like cloud_cover, cloud, or cloud_%, for different APIs, STAC mandates the use of a consistent structure. The specification benefits both the data providers and data users:

  • For data users: you don’t need to learn different terminology and APIs, once you know the STAC API, you can access spatiotemporal data from any provider, so far they adhere to the STAC specification.

  • For data providers: STAC has removed the barrier to entry, making it easier to use their data. As more people learn about STAC, they will use their data more.

The goal of the STAC specification is to make geospatial assets openly searchable and crawlable. And for all providers of spatiotemporal assets (Imagery, SAR, Point Clouds, Data Cubes, Full Motion Video, etc) to expose their data as STAC, so that new code doesn't need to be written whenever a new data set or API is released.

What STAC is not

  • Full-fledged metadata standard:

STAC is not a complete metadata standard in the sense that it doesn't cover all aspects of geospatial data, such as the detailed descriptions and attributes found in standards like FGDC or ISO19115.

Single source of truth:

STAC does not act as a single source of truth for data usage rights and licenses. Instead, it links to the relevant resources and documentation associated with the data, such as copyright information, data usage terms, and licensing agreements.

Covering all kinds of datasets:

While STAC can be extended to accommodate different types of data, its primary focus is on spatiotemporal data. It's not designed to handle non-spatial data.

Trying to catalog everything:

STAC is not intended to be a comprehensive catalog of all available geospatial data. Its primary goal is to facilitate the discovery and use of geospatial data from various sources.

  • STAC defines how to structure, model, and serve your data; not how to store it. This means you can store your data in any storage of your choice.

Benefits of using STAC

  1. Standardized data description: STAC standardizes the way geospatial data is described, making it easier for developers and users to understand and work with data from different sources.

  2. Automated/Programmatic data retrieval: STAC supports automated data retrieval, enabling developers to easily access and integrate geospatial data into their applications. This is very essesntial for projects that requires spatiotemporal data.

  3. Time-series data support: STAC is particularly well-suited for managing and analyzing time-series geospatial data, making it ideal for applications that require temporal analysis.

  4. Open source: As an open standard, STAC is freely available for anyone to use, modify, and contribute to. This open-source nature fosters collaboration, innovation, and community-driven development.

  5. Extensible: STAC is extensible, which means that it can be used to describe a wide variety of geospatial data. This makes it a more versatile tool for working with geospatial data.

  6. Community support: STAC has a large and active community of users, developers and maintainers. This means that there is a lot of support available if you need help using STAC. This thriving community provides valuable resources, documentation, and forums for discussion, allowing users to find answers, share knowledge, and collaborate on STAC-related projects.

The STAC Specification

What exactly is Spatiotemporal?

Spatiotemporal data, also known as geographical data or geospatial data, encompasses data that can be referenced in space and time. Examples are Landsat, Sentinels, radar data like SAR (Synthetic Aperture Radar), 3D point clouds like LiDAR (Light Detection and Ranging), hyperspectral data, and derived rasters like NDVI (Normalized Difference Vegetation Index) and DEMs (Digital Elevation Models). Spatiotemporal data is crucial for a wide range of applications, including environmental monitoring, agriculture and forestry, disaster management, scientific research, transportation planning, and more. See spatiotemporal data in action in the GIF below:

GIF of nighttime lights in Fort Myers
GIF of nighttime lights in Fort Myers

The GIF represents the nighttime lights in Fort Myers, Florida two days after hurricane Ian made landfall versus seven days after, when the majority of power was restored. Ian was the deadliest hurricane to hit Florida since 1935. source.

The STAC Components

There are four(4) semi-independent components that together make up the core STAC specification. These components are:

1. STAC Item

An Item is a GeoJSON Feature enriched with foreign members relevant to a STAC object. These include fields that identify the time range and assets of the Item. Below is an example of a GeoJSON feature and a STAC Item:

// # => A REGULAR GEOJSON FEATURE
{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
}

// # => A MINIMAL STAC ITEM (also GeoJSON) BUT WITH FOREIGN MEMBERS RELEVANT TO STAC
{
  "stac_version": "1.0.0",
  "stac_extensions": [],
  "type": "Feature",
  "id": "20201211_223832_CS2",
  "bbox": [
    172.91173669923782,
    1.3438851951615003,
    172.95469614953714,
    1.3690476620161975
  ],
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [
          172.91173669923782,
          1.3438851951615003
        ],
        [
          172.95469614953714,
          1.3438851951615003
        ],
        [
          172.95469614953714,
          1.3690476620161975
        ],
        [
          172.91173669923782,
          1.3690476620161975
        ],
        [
          172.91173669923782,
          1.3438851951615003
        ]
      ]
    ]
  },
  "properties": {
    "datetime": "2020-12-11T22:38:32.125000Z"
  },
  "collection": "simple-collection",
  "links": [
    {
      "rel": "collection",
      "href": "./collection.json",
      "type": "application/json",
      "title": "Simple Example Collection"
    },
    {
      "rel": "root",
      "href": "./collection.json",
      "type": "application/json",
      "title": "Simple Example Collection"
    },
    {
      "rel": "parent",
      "href": "./collection.json",
      "type": "application/json",
      "title": "Simple Example Collection"
    }
  ],
  "assets": {
    "visual": {
      "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.tif", 
      "type": "image/tiff; application=geotiff; profile=cloud-optimized",
      "title": "3-Band Visual",
      "roles": [
        "visual"
      ]
    },
    "thumbnail": {
      "href": "https://storage.googleapis.com/open-cogs/stac-examples/20201211_223832_CS2.jpg",
      "title": "Thumbnail",
      "type": "image/jpeg",
      "roles": [
        "thumbnail"
      ]
    }
  }
}

As seen in the codeblock above, a STAC Item is also a GeoJSON Feature, however, it extends a GeoJSON Feature with more information (termed as foreign members). The added information includes:

  • the time the asset represents. This can be found in the properties object.

  • a thumbnail for quick browsing and preview of the asset. This can be found in the assets object.

  • asset links/hrefs i.e the link to the actual data.

  • relationship links, allowing users to traverse other related STAC Items.

A visual structure of a STAC Item (Source: Planet)
A visual structure of a STAC Item (Source: Planet)

The footprint of the STAC Item in the above looks like the image below when visualized on geojson.io

Visualizing a STAC Item in geojson.io
Visualizing a STAC Item in geojson.io

2. STAC Catalog

Catalogs are typically implemented as JSON files that contain references to other catalogs, collections, and items. A catalog object will typically be the entry point into a STAC catalog. Their purpose is discovery: to be browsed by people using tools such as Radiant Earth Foundation’s STAC browser or be crawled by clients to build a searchable index. An example of a STAC catalog.json file is shown in the codeblock below:

{
  "id": "examples",
  "type": "Catalog",
  "title": "Example Catalog",
  "stac_version": "1.0.0",
  "description": "This catalog is a simple demonstration of an example catalog that is used to organize a hierarchy of collections and their items.",
  "links": [
    {
      "rel": "root",
      "href": "./catalog.json",
      "type": "application/json"
    },
    {
      "rel": "child",
      "href": "./extensions-collection/collection.json",
      "type": "application/json",
      "title": "Collection Demonstrating STAC Extensions"
    },
    {
      "rel": "child",
      "href": "./collection-only/collection.json",
      "type": "application/json",
      "title": "Collection with no items (standalone)"
    },
    {
      "rel": "child",
      "href": "./collection-only/collection-with-schemas.json",
      "type": "application/json",
      "title": "Collection with no items (standalone with JSON Schemas)"
    },
    {
      "rel": "item",
      "href": "./collectionless-item.json",
      "type": "application/json",
      "title": "Collection with no items (standalone)"
    },
    {
      "rel": "self",
      "href": "https://raw.githubusercontent.com/radiantearth/stac-spec/v1.0.0/examples/catalog.json",
      "type": "application/json"
    }
  ]
}

STAC catalog can be thought of as a directory tree in a computer. Just as a directory tree allows you to navigate through files and folders on your computer, a STAC catalog allows you to navigate through collections, items, and other metadata associated with geospatial data.

STAC Catalog. Source: Planet
STAC Catalog. Source: Planet

3. STAC Collection

A STAC Collection extends the catalog specification. It provides additional information about a spatiotemporal collection of data. It is simply used to group related spatiotemporal data together. For instance, there can be a collection for Sentinel 2 Level-1C, Landsat-8 Collection 2 etc. It uses additional fields to enable description of things like the spatial and temporal extent of the data, the license, summaries, keywords, providers, etc. An example of a STAC collection for Sentinel-2 Level 1C is shown in the codeblock below:

{
  "type": "Collection",
  "stac_version": "1.0.0",
  "stac_extensions": [
    "https://stac-extensions.github.io/eo/v1.0.0/schema.json",
    "https://stac-extensions.github.io/projection/v1.0.0/schema.json",
    "https://stac-extensions.github.io/view/v1.0.0/schema.json"
  ],
  "id": "sentinel-2",
  "title": "Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
  "description": "Sentinel-2 is a wide-swath, high-resolution, multi-spectral\nimaging mission supporting Copernicus Land Monitoring studies,\nincluding the monitoring of vegetation, soil and water cover,\nas well as observation of inland waterways and coastal areas.\n\nThe Sentinel-2 data contain 13 UINT16 spectral bands representing\nTOA reflectance scaled by 10000. See the [Sentinel-2 User Handbook](https://sentinel.esa.int/documents/247904/685211/Sentinel-2_User_Handbook)\nfor details. In addition, three QA bands are present where one\n(QA60) is a bitmask band with cloud mask information. For more\ndetails, [see the full explanation of how cloud masks are computed.](https://sentinel.esa.int/web/sentinel/technical-guides/sentinel-2-msi/level-1c/cloud-masks)\n\nEach Sentinel-2 product (zip archive) may contain multiple\ngranules. Each granule becomes a separate Earth Engine asset.\nEE asset ids for Sentinel-2 assets have the following format:\nCOPERNICUS/S2/20151128T002653_20151128T102149_T56MNN. Here the\nfirst numeric part represents the sensing date and time, the\nsecond numeric part represents the product generation date and\ntime, and the final 6-character string is a unique granule identifier\nindicating its UTM grid reference (see [MGRS](https://en.wikipedia.org/wiki/Military_Grid_Reference_System)).\n\nFor more details on Sentinel-2 radiometric resoltuon, [see this page](https://earth.esa.int/web/sentinel/user-guides/sentinel-2-msi/resolutions/radiometric).\n",
  "license": "proprietary",
  "keywords": [
    "copernicus",
    "esa",
    "eu",
    "msi",
    "radiance",
    "sentinel"
  ],
  "providers": [
    {
      "name": "European Union/ESA/Copernicus",
      "roles": [
        "producer",
        "licensor"
      ],
      "url": "https://sentinel.esa.int/web/sentinel/user-guides/sentinel-2-msi"
    }
  ],
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180,
          -56,
          180,
          83
        ]
      ]
    },
    "temporal": {
      "interval": [
        [
          "2015-06-23T00:00:00Z",
          null
        ]
      ]
    }
  },
  "assets": {
    "metadata_iso_19139": {
      "roles": [
        "metadata",
        "iso-19139"
      ],
      "href": "https://storage.googleapis.com/open-cogs/stac-examples/sentinel-2-iso-19139.xml",
      "title": "ISO 19139 metadata",
      "type": "application/vnd.iso.19139+xml"
    }
  },
  "summaries": {
    "datetime": {
      "minimum": "2015-06-23T00:00:00Z",
      "maximum": "2019-07-10T13:44:56Z"
    },
    "platform": [
      "sentinel-2a",
      "sentinel-2b"
    ],
    "constellation": [
      "sentinel-2"
    ],
    "instruments": [
      "msi"
    ],
    "view:off_nadir": {
      "minimum": 0,
      "maximum": 100
    },
    "view:sun_elevation": {
      "minimum": 6.78,
      "maximum": 89.9
    },
    "gsd": [
      10,
      30,
      60
    ],
    "proj:epsg": [
      4326,
       ...
    ],
    "eo:bands": [
      {
        "name": "B1",
        "common_name": "coastal",
        "center_wavelength": 4.439
      },
      {
        "name": "B2",
        "common_name": "blue",
        "center_wavelength": 4.966
      },
      {
        "name": "B3",
        "common_name": "green",
        "center_wavelength": 5.6
      },
      {
        "name": "B4",
        "common_name": "red",
        "center_wavelength": 6.645
      },
      {
        "name": "B5",
        "center_wavelength": 7.039
      },
      {
        "name": "B6",
        "center_wavelength": 7.402
      },
      {
        "name": "B7",
        "center_wavelength": 7.825
      },
      {
        "name": "B8",
        "common_name": "nir",
        "center_wavelength": 8.351
      },
      {
        "name": "B8A",
        "center_wavelength": 8.648
      },
      {
        "name": "B9",
        "center_wavelength": 9.45
      },
      {
        "name": "B10",
        "center_wavelength": 1.3735
      },
      {
        "name": "B11",
        "common_name": "swir16",
        "center_wavelength": 1.6137
      },
      {
        "name": "B12",
        "common_name": "swir22",
        "center_wavelength": 2.2024
      }
    ]
  },
  "links": [
    {
      "rel": "parent",
      "href": "../catalog.json",
      "type": "application/json",
      "title": "Example Catalog"
    },
    {
      "rel": "root",
      "href": "../catalog.json",
      "type": "application/json",
      "title": "Example Catalog"
    },
    {
      "rel": "license",
      "href": "https://scihub.copernicus.eu/twiki/pub/SciHubWebPortal/TermsConditions/Sentinel_Data_Terms_and_Conditions.pdf",
      "title": "Legal notice on the use of Copernicus Sentinel Data and Service Information"
    }
  ]
}

STAC Collection. Source: Planet
STAC Collection. Source: Planet

4. STAC API

STAC also provides a RESTful interface that conforms to OpenAPI 3.0 specification schema for searching and discovering STAC metadata. It is implemented in compliance with the OGC API - Features standard. It includes a search endpoint that supports attribute queries for spatiotemporal data within and across collections.

// STAC search endpoint
BASE_API_ENDPOINT/stac/search

It takes a JSON that can be filtered based on collections, bounding box (bbox), limit, datetime, cloud cover etc.

{
    "collections": ["landsat8","sentinel"],
    "bbox": [-10.415,36.066,3.779,44.213],
    "limit": 200,
    "datetime": "2017-05-05T00:00:00Z"
}

And it typically responds with a GeoJSON Feature when returning a single Item object, and FeatureCollection when returning multiple Item objects. The codeblock below shows an example reponse object:

{
  "type": "FeatureCollection",
  "features": [
    {
      "stac_version": "1.0.0",
      "stac_extensions": [
        "https://stac-extensions.github.io/eo/v1.0.0/schema.json",
        "https://stac-extensions.github.io/view/v1.0.0/schema.json",
        "https://example.com/cs-extension/1.0/schema.json"
      ],
      "type": "Feature",
      "id": "CS3-20160503_132131_05",
      "bbox": [
        -122.59750209,
        37.48803556,
        -122.2880486,
        37.613537207
      ],
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              -122.308150179,
              37.488035566
            ],
            [
              -122.597502109,
              37.538869539
            ],
            [
              -122.576687533,
              37.613537207
            ],
            [
              -122.2880486,
              37.562818007
            ],
            [
              -122.308150179,
              37.488035566
            ]
          ]
        ]
      },
      "properties": {
        "datetime": "2016-05-03T13:22:30.040Z",
        "title": "A CS3 item",
        "license": "PDDL-1.0",
        "providers": [
          {
            "name": "CoolSat",
            "roles": [
              "producer",
              "licensor"
            ],
            "url": "https://cool-sat.com/"
          }
        ],
        "view:sun_azimuth": 168.7,
        "eo:cloud_cover": 0.12,
        "view:off_nadir": 1.4,
        "platform": "coolsat2",
        "instruments": [
          "cool_sensor_v1"
        ],
        "eo:bands": [],
        "view:sun_elevation": 33.4,
        "eo:gsd": 0.512
      },
      "collection": "CS3",
      "links": [
        {
          "rel": "self",
          "href": "http://cool-sat.com/collections/CS3/items/20160503_132130_04"
        },
        {
          "rel": "root",
          "href": "http://cool-sat.com/collections"
        },
        {
          "rel": "parent",
          "href": "http://cool-sat.com/collections/CS3"
        },
        {
          "rel": "collection",
          "href": "http://cool-sat.com/collections/CS3"
        }
      ],
      "assets": {
        "analytic": {
          "href": "http://cool-sat.com/static-catalog/CS3/20160503_132130_04/analytic.tif",
          "title": "4-Band Analytic"
        },
        "thumbnail": {
          "href": "http://cool-sat.com/static-catalog/CS3/20160503_132130_04/thumbnail.png",
          "title": "Thumbnail"
        }
      }
    }
  ],
  "links": [
    {
      "rel": "next",
      "href": "http://api.cool-sat.com/search?next=ANsXtp9mrqN0yrKWhf-y2PUpHRLQb1GT-mtxNcXou8TwkXhi1Jbk"
    }
  ],
  "context": {
    "returned": 1,
    "limit": 5,
    "matched": 314159
  }
}

You can interact with a STAC API via several clients. For instance, Element84 has an Earth Search service with an API, console, dashboard and documentation to search for spatiotemporal data powered by the STAC API.

STAC Extensions

The extensions provides domain-specific fields that can be easily added to any STAC Item. It is a place where any implementor can propose fields that are potentially more widely applicable than just their data. For instance, if you work in an industry with unique requirements that has not been covered by the core STAC specifications, or existing STAC extensions, you can create a STAC extension using predefined templates. More information on STAC extensions can be found here.

Who is Using STAC?

This is a non-exhaustive list of organizations using STAC:

  1. Google: The Google Earth Engine (GEE) uses STAC at the collection level. Although this is abstracted because they don't expose individual assets. On GEE, you treat a million assets as one.

    Google Earth Engine Catalog
    Google Earth Engine Catalog

  2. Microsoft: The Microsoft Planetary Computer.

Microsoft Planetary Computer
Microsoft Planetary Computer

  1. NASA: NASA has a big search system called the CMR, that catalog their data. They have also adopted STAC as a result format.

  2. Digital Earth Africa (DEA): DEA has embraced STAC. To make it easier to find data in the Digital Earth Africa archive, the Sandbox Explorer provides a STAC endpoint for listing or searching metadata.

  3. Maxar

  4. USGS AstroGeology

  5. Planet and more.

Who is Supporting STAC?

Huge appreciations to these incredible organizations for supporting the development of the STAC ecosystem. The image below was retrieved from the STAC specification website.

Organizations supporting STAC
Organizations supporting STAC

STAC and Open Science

Open science is a crucial aspect of conducting rigorous and collaborative research. STAC plays a significant role in promoting open science by enhancing data accessibility and reproducibility.

  • Reproducibility: STAC contributes to reproducibility by providing comprehensive metadata for each data item. This detailed metadata allows other researchers to understand the data and replicate the analysis processes employed.

  • Data Accessibility: STAC provides a standardized format for describing and cataloging geospatial data, enabling researchers to easily discover and access a vast collection of spatio-temporal data. This standard facilitates seamless data sharing across different platforms and communities.

  • STAC API implements the OGC API - Features standard, and the shared goal is for STAC to become a full OGC standard.

I think we can safely say STAC specification contributes to open science by making spatiotemporal data Findable Accessible Interoperable and Reusable (FAIR).

Getting Started with STAC - Data Users

The STAC ecosystem has a wide range of tools to leverage in your workflow. Below are some examples:

  1. Using Pystac Client

    If you use Python and need to query a STAC API, pystac_client is a great library to use. Check out the official introductory tutorial to learn more.

  2. Using the QGIS Plugin

    Developed by Kartoza, the plugin enables QGIS users to search and access spatiotemporal assets within QGIS. To learn how to use the QGIS plugin, visit this guide.

    Using STAC in QGIS. Source: Kartoza
    Using STAC in QGIS. Source: Kartoza

  3. Using ArcGIS Pro

    Using STAC in ArcGIS pro. Source: Esri
    Using STAC in ArcGIS pro. Source: Esri

Visit this guide for more information on how using STAC within ArcGIS Pro.


Getting Started with STAC - Data Providers

Organization with vast spatiotemporal data, can make their data STAC compliant without complex servers or infrastructure. It is as simple as hosting the data on a public static files buckets such as AWS S3 Bucket, Google Cloud Storage, Azure Cloud Storage, or any service of their choice. Afterward, they can make the data searchable and secure using the STAC API. There are numerous server-side tools out there in the STAC ecosystem to streamline the process and get their data online and accessible.

Server side STAC software tools
Server side STAC software tools

For a step-by-step guide on organizing spaceborne geospatial data with STAC, the Microsoft team has put together a detailed article with architectural diagrams here.

The STAC Eco-System

Growth and Adoption

As at the writing of this article:

  1. STAC API 1.0.0 has been Released.

  2. STAC Specification 1.0.0 has been Released.

  3. The contributors are growing.

  4. 93 repositories on GitHub topics.

    STAC on GitHub Topic
    STAC on GitHub Topic

  5. 61 ecosystem tools and software. (According to the Stac Index)

  6. 74 public catalogs. (According to the Stac Index)

To learn more about the state of the STAC ecosystem, visit this great article published by Planet.

Prominent Tools

1. STAC Browser:

The STAC Browser is a Vue JS app that allows you to browse your STAC catalog. You can provide a URL to a STAC catalog or select from provided templates, and it will load the catalog for you to browse interactively. The GIF below illustrates how it looks like. All data providers that submits their catalog on the STAC index automatically have a STAC browser deployed for their catalog.

A demo of the STAC browser
A demo of the STAC browser

2. Official STAC Spec Website

The official STAC Spec website is the best place to learn about the STAC specification, it's ecosystem of tools, supporters and concepts.

The Official STAC Spec website
The Official STAC Spec website

3. STAC Index

On the STAC index website, you find STAC catalogs, collections, APIs, software and tools. You can also add your own data and tools to the list. If you're looking for a catalog to find specific spatiotemporal data of interest, this is the best place to go.

The STAC Index
The STAC Index

Contributing to STAC

Below are some of the ways I think you can contribute to the STAC ecosystem:

  1. If you're a developer or an enthusiast, you can contribute to the development of software in the STAC ecosystem. You can check the stac index to pick a software written in your programming language of interest, and visit the repository to contribute to the project.

  2. If you have used STAC in your research workflow, please consider speaking about it at a conference or in your publications.

  3. You can also contribute to STAC by creating contents in the following form: Written article, Video contents, podcast recordings, books e.t.c.

  4. Decision makers can help by encouraging the adoption of STAC in their organization.

For more detailed information on how to contribute, please check the official 'How to Help' section on the STAC spec website.

References & Further Reading


STACSTAC API

Join the community!

We're a place where geospatial professionals showcase their works and discover opportunities.

1

Probably everything you need to know to get started with STAC

SpatioTemporal Asset Catalog (STAC) For The Rest of Us
50
2

A step-by-step guide to query Overture Maps Foundation data in ArcGIS Pro notebook using duckdb

How to Query Overture Maps Foundation Data in ArcGIS Pro with Duck DB
20