The Exciting Future of the STAC Browser

Matthias Mohr
Radiant Earth Insights
5 min readJan 11, 2022

More and more organizations benefit from the STAC specification and publish their geospatial data with STAC metadata. Having the data published in a standardized way in JSON is paving the way to wider adoption of geospatial data so that humans can find and make good use of the data. There is no doubt having JSON files is nice for developers, but it is equally important to spread the data to professionals in other sectors. Those users often need an easily accessible and searchable graphical user interface for the data. That is where STAC Browser comes into play.

Previously, the STAC Browser was developed by Radiant Earth’s former Technical Fellows Seth Fitzsimmons and Rob Emmanuele, with a strong focus on static catalogs as specified in the STAC specification. These STAC Browser versions have served the STAC community well up until the development of the STAC API specification, which is now a fundamental part of the STAC ecosystem. The initial STAC Browser was not meant to work with the STAC API, and expectedly the implementation was not designed to handle the dynamic nature of an API. As such, the STAC Browser had strong limitations when used with an API in the background (e.g., no pagination and no search).

STAC Browser v2

Starting last year, we tried to implement missing API functionality, such as pagination but quickly realized that it would be easier to start building the STAC Browser from scratch with a new architecture instead of making the existing architecture work for dynamic content.

So I started to implement STAC Browser v3. It has since then been through 6 alpha versions, and most of the original functionality has been re-implemented while adding additional functionality. The major additions are shown in the screenshots below.

Basic search functionality, allowing to filter by temporal extent, spatial extent, Collection identifiers, Item identifiers for now:

STAC Browser v3: Basic Item Search (via STAC API)

Pagination support for APIs, both in lists of Collections and Items:

STAC Browser v3: Pagination support and filters for Collection (via OGC API — Features)

Visualization of Asset metadata, which was completely missing in STAC Browser v2:

STAC Browser v3: Asset metadata

A new sidebar to quickly browse through the Catalogs, Collections, and Items which replaces the old Breadcrumb-style navigation:

STAC Browser v3: Sidebar to quickly navigate through the catalog hierarchy

Client-side support for cloud-optimized GeoTiffs (COGs) through the new library stac-layer (developed by Daniel J. Dufour):

Various different types of data are visualized through stay-layer

More detailed overview lists for Items and Collections, which shows the
1. Temporal information, the primary file format, and a preview for Items
and,
2. Description and a preview for Collections:

STAC Browser v3: The list of Items additionally shows a preview and the file type now.

And additionally, some other features that you may not notice directly, but can still make an impact:

  • Easily themeable (e.g., add your logo and customize colors via config)
  • Human-readable URLs (e.g., https://example.com/collections/ch.swisstopo.pixelkarte-farbe-pk25.noscale/items/swiss-map-raster25_1984_1056 instead of https://example.com/item/91zP74yZWQw9uxj6H5KZHsiuyTUWpiT5CMDiPAoxMDMKGhJSZp5VDozYejfbqWUyQLBgsAacMz/zRJ4YVRUHsR5hDaJymynTG7HHTJGLU3yr4vKcZ434boTDXWZkurF6Tkakj4MiTvGSnuMaZE96xi8VsNzrSbXotfrWsMD9H)
  • Sharing functionality (e.g., on Twitter or via e-mail)
  • Less developer-centric look-and-feel (e.g., hide unimportant technical details by default such as version numbers and display understandable file format names instead of media types)

You can check out a demo version at https://radiantearth.github.io/stac-browser — it lists all public catalogs listed on STAC Index and lets you browse them all from a single entry point. You can also paste the URL of another API or catalog, too, e.g., a private one that you can access. A good candidate to see most of the API functionality is data.geo.admin.ch, and the Planet Labs STAC Catalog is a good one for a static catalog.

Please keep in mind that this is an early development version, and this is not fully featured and not bug-free. We aim to work with specialists on the user experience in the next few months to make the Browser a joy to use for everyone, so expect a lot more changes. Also, we have a list of additional functionalities that we aim to implement (not necessarily all straight for 3.0.0, some may only get implemented at a later stage), for example:

  • Better visualization of more complex metadata (e.g., spectral bands, data cubes, histograms, and ML label overviews)
  • Schema.org and Open Graph metadata for better discoverability by search engines and social media
  • Client-side support for more cloud-native file formats (e.g, ZARR) and improvements for COGs
  • Allow STAC Browser to be embedded into existing websites (e.g., STAC Index or your company’s homepage)
  • Ideally, integration with third-party software (e.g., open STAC Items and/or Assets directly in QGIS or provide code snippets in various languages)
  • Align with STAC API changes
    Please note that STAC API is not stable yet and will introduce some major additions in v1.0.0-beta.5. To fully support these, it’s likely that major changes in STAC Browser are required, again.
  • Support for authentication procedures (e.g, OAuth) and other data sources than HTTP (e.g., Amazon S3)
  • Better support more STAC content extensions (e.g., anonymized-location, ml-model) and STAC API extensions (e.g., more complex search via CQL).
    Please note that all STAC content extensions can be displayed by STAC Browser, but the way data is displayed might not be ideal in all cases.
  • Make STAC Browser easier to use via CLI, and of course,
  • Bug fixes, UX improvements, and better documentation.

A list of feature requests and issues can be found in the GitHub issue tracker.

This initiative, generously funded by the Radiant Earth Foundation, is meant to be inclusive and leads to the best results if interested parties contribute to the development. We want to provide you with a tool that fulfills the requirements of the geospatial user community. Thus, we’d be very happy to hear your thoughts, feedback, feature requests, and bug reports. The easiest way to communicate with us is through our GitHub repository, e.g., voting (with thumbs up/down) on existing issues, by opening a new issue, or, if you are fancy, everyone is also welcome to contribute code through Pull Requests. Please don’t be shy; every minor contribution or report, may it “just” be a malfunction or a small annoyance, can make a huge impact.

We are looking forward to it!

This is the first post in a series of upcoming blog posts about STAC Browser. So make sure to keep an eye on it or follow Radiant Earth Insights so that you don’t miss important updates.

--

--

Matthias Mohr
Radiant Earth Insights

Software engineer working on geospatial ☁ solutions for openEO (Platform). Sometimes also shaping STAC & fixing my parents’ computers…