1 of 18

State of STAC�FOSS4G 2023 Edition

Introduction | What’s new?��Matthias Mohr | Ind. ConsultantMatthew Hanson | Element 84��Slides: mohr.ws/foss4g

2 of 18

STAC is a suite of specifications and software

3 of 18

The STAC specification describes geospatial and/or temporal data�(through interlinked static JSON files)

4 of 18

The STAC API specification adds search, aggregation, transactions and makes STAC dynamic

5 of 18

Entities | STAC specification

  • Catalog
    • Simple, mostly for static (virtual folders)
    • Basic grouping for Items, Catalogs and Collections (instead of pagination in an API)
    • Example: all Sentinel 2 L2A imagery for a specific day
  • Collection
    • Is basically a Catalog with rich metadata (extents, license, providers, keywords, …)
    • Example: Sentinel-2 L2A
  • Item
    • A set of data files for a specific location at a specific date and time (or interval)
    • Extended GeoJSON
    • Example: all bands of a single Sentinel-2 capture

6 of 18

Entities II | STAC specification

  • Asset (in: Item, Collection)
    • A single data file for (machine) consumption
    • Example: green band of a Sentinel 2 capture as COG
  • Link (in: Catalog, Collection, Item)
    • A related resource for (human) consumption
    • Example: Sentinel-2 documentation,�connection between STAC entities

7 of 18

Extensions | STAC specification

  • 60+ Extensions in total
  • New extensions:
    • Contacts
    • Forecast
    • Language
    • Order
    • Stats
    • Themes
    • Web Map Links
  • Extension maturity update
  • Extension maturity update
  • Stable
    • Electro-Optical
    • File Info
    • Item Assets Definition
    • Projection
    • Scientific Citation
    • View Geometry
  • Candidate
    • Datacube
    • Processing
    • Raster
    • SAR
    • Satellite
    • Versioning Indicators
  • + Pilot, Proposal, Deprecated

yellow = new

8 of 18

Bands RFC | STAC specification extensions

  • Merge eo:bands and raster:bands => bands (or subassets)
    • Bands in common metadata (with name, description, statistics, …)
    • Raster extends it: raster:spatial_resolution, …
    • EO extends it: eo:wavelength, eo:common_name, …
    • eo/raster fields usable outside of bands
  • Please comment on RFC
  • Target: STAC 1.1

9 of 18

Bands RFC | STAC specification extensions

{

"eo:bands": [{

"name": "B4",

"description": "Red band",

"common_name": "red",

"center_wavelength": 0.665,

"full_width_half_max": 0.038

}],

"raster:bands": [{

"data_type": "float32",

"nodata": "nan",

"statistics":

{"minimum": 0, "maximum": 1},

"spatial_resolution": 10

}]

}

{

"bands": [{

"name": "B4",

"description": "Red band",

"data_type": "float32",

"nodata": "nan",

"statistics":

{"minimum": 0, "maximum": 1},

"eo:common_name": "red",

"eo:center_wavelength": 0.665,

"eo:full_width_half_max": 0.038,

"raster:spatial_resolution": 10

}]

}

10 of 18

STAC API specification

  • HTTP(S) & JSON
  • Multiple “parts”:
    • Core
    • Item Search
    • Collections / Features�based on OGC API (Features)
  • Extensible
  • Recently released: 1.0.0 🎉

11 of 18

API Extensions | STAC API specification

  • 60+ Extensions in total
  • Moved from API specification to stac-api-extensions GitHub organization
  • New extensions:
    • Aggregation
    • Collection Search
    • Language
  • Further alignment with OGC APIs (e.g. Filter/CQL2)

12 of 18

Adoption (Data)

  • Many new catalogs / APIs
    • RapidAI4EO
    • Paituli STAC (Finland)
    • UVT Romania
    • Polar Geospatial Center
    • Iconem
    • UP42
    • Land Information New Zealand
    • Open Data from Capella, Maxar, Planet

13 of 18

Ecosystem

  • General
    • STAC website with new tutorials
    • Tutorials in Japanese available
    • STAC API Validator
  • Languages
    • Rust: pgstac-rs
    • Julia: STAC.jl, STACCube.js
    • R: stac4cast
    • Python, JavaScript: next slides
  • See STAC Index for more (C#, Java, Go, Ruby, Scala, …)

14 of 18

Python | Ecosystem

  • stac-fastapi 2.4.8
    • ready for STAC API 1.0.0
    • backends split into separate repositories
  • pystac 1.7.3
    • many enhancements
    • preparations for 2.0
  • pystac-client 0.7.1
    • ready for STAC API 1.0.0
  • stactools 0.4.8
    • new packages
    • footprint generation: valid data only + antimeridian aware
  • stac-asset 0.1
  • pygeoapi got STAC support

15 of 18

JavaScript | Ecosystem

  • stac-js: lightweight drop-in classes for STAC objects
  • stac-layer rewrite
  • STAC implementation for OpenLayers (PR)
  • STAC Browser v3 | Dedicated Talk: today, 16:00, here
  • stac-server
    • ready for STAC API 1.0.0
    • support for the Aggregation Extension and OpenSearch
  • Dedicated Talk: in ~40 mins, here

16 of 18

Future

  • Get to more API 1.0.0 implementations
  • Finalize and release API extensions as 1.0.0
  • STAC Sprint #7 (Sept, 26-28 in Philadelphia, US)
  • STAC 1.1.0 (after the sprint?)
    • Bands
    • Common Metadata
    • …?
  • PSC (governance)
  • OGC community standard

17 of 18

Related Talks

  • Standardized Data Management with STAC | in ~10 mins
  • The STAC JavaScript ecosystem | in ~40 mins
  • Earth Search: A STAC API of open datasets on AWS | in ~70 mins�
  • Stac-Check and Stac-Validator (lightning talk) | Wed, 15:20, UBT C N115
  • Get most out of STAC Browser v3 | Wed, 16:00, Lumbardhi
  • An overview of Cloud-Native Geospatial | Wed, 16:30, Lumbardhi�
  • Serving EO data with GeoServer: COG, STAC, … | Fri, 11:00, UBT F N212

18 of 18

Resources

Q&A�Slides�mohr.ws/foss4g

18