<!-- Docs for making Markdown slide deck on HackMD using Revealjs https://hackmd.io/s/how-to-create-slide-deck https://hackmd.io/c/codimd-documentation/%2F%40codimd%2Fmarkdown-syntax https://revealjs.com --> ## Spatial web delivery trends <small>Presentation at Queensland government <br> Tuesday 5 Aug 2025, 11:00–12:00 (AEST)</small> _by **[Wei Ji Leong](https://github.com/weiji14)** @ [Development Seed](https://developmentseed.org/team/weiji-leong)_ <!-- Put the link to this slide here so people can follow --> <small>P.S. Slides are at https://hackmd.io/@weiji14/spatialwebtrends</small> --- ### History in terms of OGC standards - 2000 - WMS v1.0.0 - 2002 - WFS v1.0.0 - ... - 2019 - GeoTIFF v1.1 - 2019 - OGC API - Features v1.0 - 2023 - STAC API v1.0 - 2023 - Cloud-optimized GeoTIFF standard v1.0 - 2023 - GeoParquet Standards Working Group formed - 2024 Geoparquet v1.1.0 specification ---- ### Overview of today's talk > <small> In general, DevSeed has been working with the community on the forefront of cloud-native geospatial solutions (that hopefully become standards at some point) </small> As of mid-2025: - What's stable :rock: - "eoAPI" - (pgstac, titiler, etc) - What's fresh :seedling: - stac-geoparquet - What's coming :eyes: - more Rust, 3D mapping --- ### What's stable <small>eoAPI - A battle-tested cloud-native Earth Observation infrastructure</small> ![eoAPI logo](https://eoapi.dev/img/eoAPI.png =60%x) <small>https://eoapi.dev/intro/</small> ---- ### eoAPI components - pgstac - STAC Metadata Store -![pgstac](https://eoapi.dev/img/pgstac_logo.png =12%x) - titiler - Raster tiling service - ![titiler](https://eoapi.dev/img/titilerpgstac_logo.png =12%x) - tipg - Vector tiling service - ![tipg](https://eoapi.dev/img/tipg_logo.png =12%x) - stac-fastapi - STAC Metadata API - ![stac-fastapi](https://eoapi.dev/img/stacfastapi_logo.png =12%x) <small>All open source under MIT license at https://github.com/developmentseed/eoAPI</small> ---- ### Users of eoAPI - European Space Agency (ESA) - https://business.esa.int/projects/whis - Planetary Computer - https://planetarycomputer.microsoft.com - NASA IMPACT - <small>Visualization, Exploration, & Data Analysis (VEDA) <br> https://www.earthdata.nasa.gov/dashboard/</small> - <small>Multi-Mission Algorithm and Analysis Platform (MAAP) <br> https://www.earthdata.nasa.gov/maap-biomass/</small> - <small>Commercial Smallsat Data Acquisition (CSDA) Program <br> https://www.earthdata.nasa.gov/esds/csda</small> ---- ### Smallsat Data Explorer Demo <!-- <video data-autoplay src="https://developmentseed.org/static/csdac-5e9d14c0176536704293eebc4d3e838d.mp4"></video> --> ![](https://hackmd.io/_uploads/S1Hvl7Awlx.gif) <small>https://csdap.earthdata.nasa.gov/explore/</small> --- ## What's fresh stac-geoparquet ![STAC logo](https://github.com/stac-utils/pystac/blob/v1.13.0/docs/_static/STAC-03.png?raw=true =30%x) + &nbsp; Geo-![Parquet logo](https://github.com/apache/parquet-format/raw/refs/tags/apache-parquet-format-2.9.0/logo/parquet-logos_2.svg =30%x) No-database and serverless STAC API queries <small>(via clear separation of storage and compute)</small> ---- ### STAC API from static files? Original STAC specifications: [JSON (static)](https://github.com/radiantearth/stac-spec/) & [API (dynamic)](https://github.com/radiantearth/stac-api-spec) Can we do both with [stac-geoparquet](https://github.com/stac-utils/stac-geoparquet/blob/0.7.0/spec/stac-geoparquet-spec.md)? <small>Implement queryable (dynamic) API on top of (static) GeoParquet files</small> ---- ![](https://www.gadom.ski/presentations/img/stac-data-storage.excalidraw.png =70%x) <small>https://github.com/stac-utils/stac-geoparquet/blob/0.7.0/spec/stac-geoparquet-spec.md</small> ---- ### Option 1: stac-geoparquet + serverless fastapi function ![](https://developmentseed.org/static/right-size-stac-fig1-830b970568b91e1a0e82298a49fdb5e0.png) ---- ### Benchmarks: stac-fastapi-geoparquet vs stac-fastapi-pgstac ![](https://developmentseed.org/static/right-size-stac-fig2-3466e4327cd78427feba7a7fe1227068.png) <small>Key point: traditional db (pgstac) still better for single/targetted queries, stac-fastapi-geoparquet works reasonably for broad searches (under 100k items)</small> ---- ### Option 2: query stac-geoparquet directly with `rustac` ![](https://developmentseed.org/static/right-size-stac-fig4-36c2f3f09aa77eb352f4c252063dc237.png) ---- ### rustac duckdb client <small>Do an API search directly on the parquet file!</small> ```python from rustac import DuckdbClient client = DuckdbClient() # Configure AWS credentials client.execute("CREATE SECRET (TYPE S3, PROVIDER CREDENTIAL_CHAIN)") items = client.search( "s3://stac-fastapi-geoparquet-labs-375/naip.parquet", intersects={"type": "Point", "coordinates": [-105.1019, 40.1672]}, ) ``` ---- ### Comparison of STAC API tools | Method | pystac-client compatible | level of effort (setup + maintain) | good for how many STAC items | |--|--|--|--| | pgstac | ✅ | high | >100,000 | | stac-fastapi-geoparquet | ✅ | medium | <100,000 | | rustac | ❌ | low | <100,000 | --- ## What's next More Rust :crab: and more 3D :globe_with_meridians: ---- ### 'Rewriting' geospatial stack in Rust | | Javascript / Python / C(++) | Rust :crab: | |--|--|--| | Slippy maps | leaflet/folium | lonboard | | STAC API | pystac-client | rustac | | s3/azure/gcp access | fsspec | obstore | | GeoTIFF | GDAL/rasterio | async-tiff | ++ more, e.g cql2-rs, las-rs, etc ---- ### Rust core + Python (or other) bindings ![](https://www.gadom.ski/presentations/img/stac-fastapi-geoparquet-software.excalidraw.png) <small> Write core lib once, bind to Python, WASM, etc </small> ---- ### Titiler-multidim Tiling NetCDF/Zarr formats (e.g. climate/ocean data) ![](https://miro.medium.com/v2/resize:fit:1400/format:webp/1*NItzSn4db3ZI3Ah7JRz0rg.gif =70%x) <small> https://github.com/developmentseed/titiler-multidim </small> --- ### More reading - lonboard - https://developmentseed.org/projects/lonboard/ - stac-geoparquet - https://www.gadom.ski/talks/ - eoAPI - https://developmentseed.org/projects/eoapi/ - obstore - https://developmentseed.org/blog/2025-08-01-obstore/ Thanks for your attention!
{"title":"Spatial Web Delivery trends","description":"DevSeed Team Week 2024 deep dive session","slideOptions":"{\"theme\":\"beige\",\"width\":\"70%\"}","lang":"en-NZ","contributors":"[{\"id\":\"c1f3f3d8-2cb7-4635-9d54-f8f7487d0956\",\"add\":13355,\"del\":6909,\"latestUpdatedAt\":1754347996315}]"}
    362 views