Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Serving earth observation data with GeoServer: ...

Serving earth observation data with GeoServer: COG, STAC, OpenSearch and more - FOSS4G EU 2025

Never before have we had such a rich collection of satellite imagery available to both companies and the general public. Between missions such as Landsat 8 and Sentinels and the explosion of cubesats, as well as the free availability of worldwide data from the European Copernicus program and from Drones, a veritable flood of data is made available for everyday usage.
Managing, locating and displaying such a large volume of satellite images can be challenging. Join this presentation to learn how GeoServer can help with with that job, with real world examples, including:
- Indexing and locating images using The OpenSearch for EO and STAC protocols
- Managing large volumes of satellite images, in an efficient and cost effective way, using Cloud Optimized GeoTIFFs.
- Visualize mosaics of images, creating composite with the right set of views (filtering), in the desired stacking order (color on top, most recent on top, less cloudy on top, your choice)
- Perform both small and large extractions of imagery using the WCS and WPS protocols
- Generate and view time based animations of the above mosaics, in a period of interest
- Perform band algebra operations using Jiffle

Attend this talk to get a good update on the latest GeoServer capabilities in the Earth Observation field.

Avatar for Simone Giannecchini

Simone Giannecchini PRO

July 22, 2025
Tweet

More Decks by Simone Giannecchini

Other Decks in Technology

Transcript

  1. Serving earth observation data with GeoServer: COG, STAC, OpenSearch and

    more Simone Giannecchini Daniele Romagnoli Andrea Aime GeoSolutions
  2. GeoSolutions Enterprise Support Services Deployment Subscription Professional Training Customized Solutions

    GeoNode • Offices in Italy & US, Global Clients/Team • 30+ collaborators, 25+ Engineers • Our products • Our Offer
  3. Affiliations We strongly support Open Source, it is in our

    core We participate in OGC testbeds and get funded to advance new open standards We support standards critical to GEOINT
  4. STAC API - v1.0 • Same use case as OpenSearch

    for EO • Based on OGC API, JSON based • Collections and items • Cross collection search at /search ◦ filter, sort, field selection
  5. STAC API • Screenshots from DLR's EOC Geoservice (STAC support

    in development / Beta) • Customized database, HTML and JSON templates Landing page
  6. OpenSearch for EO (2017) • Earlier OGC specification to search

    for satellite imagery • Based on OpenSearch and OpenSearch Geo and Time OpenSearch OGC OpenSearch Geo and Time OGC OpenSearch for EO
  7. Finding rasters • STAC has “assets” in Item pointing to

    the imagery files • OpenSearch can point to the raw package • Where can they be located? ◦ Local file system (classic approach) ◦ HTTP server ◦ S3 or other blob storage
  8. Reading from blobstore • COG plugin ◦ cog-http-plugin ◦ cog-azure-plugin

    ◦ cog-google-plugin ◦ cog-s3-plugin • But also, old S3 GeoTIFF plugin (Boundless) ◦ Reads any GeoTIFF (non COG) from S3 ◦ Reads in 5MB blocks, caches them ◦ Deprecation planned
  9. COG plugin Hea der • Leverages COG structure • Reads

    header first • HTTP Range read of the tiles needed (coalesce nearby tiles into single read) • May get caching down the way (looking for sponsors!) Tile Tile Tile Tile Tile Tile R1 R2
  10. Mosaic Terminology • Granule/Tile • The individual raster element composing

    the mosaic (asset in STAC) • (Granule) Index • The collection of metadata records describing the location, spatial coverage and other attributes of each single granule
  11. Complete freedom • Granules can: • Overlap as they please,

    can have different resolutions • Be in different file formats (faster if the format is uniform) • Have different color models, RGB, gray, paletted (needs JAI-EXT enabled) • Be in different coordinate reference systems
  12. The mosaic index • The granule lookup system • A

    “table” of granules, their footprint, location, and extra attributes • Currently supported/tested sources: • PostGIS, Oracle, SQL Server, Shapefile • STAC API (local or remote) • Can be customized to support custom granule indexes (e.g. legacy catalog)
  13. The Dimensions • Maps to alphanumeric attributes in the index

    • TIME and ELEVATION receive special treatment for WMS and WCS • Custom/Additional dimensions • Everything besides TIME & ELEVATION • They can be dynamically discovered from GetCapabilities/DescribeCoverage
  14. Internal STAC as an index ・ The OpenSearch/STAC database can

    be used as a mosaic index ・ SQL Views selecting a particular collection sub/set ・ REST API to automatically create them Collection Product or Item Granule
  15. External STAC API as index ・ Community module for STAC

    API store ・ Integrates well with image mosaic ・ Tricky issues: each system uses different auth mechanisms to actually download data STAC API STAC store GeoTools ImageMosaic COG
  16. Documentation links • GeoServer reference docs: • http://docs.geoserver.org/stable/en/user/data/raster/image mosaic/index.html •

    http://docs.geoserver.org/stable/en/user/data/raster/image mosaic/tutorial.html • http://docs.geoserver.org/api/#/1.0.0/structuredcoverages.y aml • GeoSolutions training: • http://geoserver.geo-solutions.it/edu/en/multidim/imagemo saic/index.html • http://geoserver.geo-solutions.it/edu/en/multidim/accessing _multidim/index.html • http://geoserver.geo-solutions.it/edu/en/multidim/rest/index .html
  17. Filtering and sorting • The mosaic index can be filtered

    upon with CQL • Can be sorted on using WFS like syntax • More possibilities than just Time and Elevation SENSOR = SAR AND SATELLITE=XYZ SORTBY = TIME D
  18. Coverage Views • NetCDF/Grib/Mosaic: one reader, many coverages • Sometimes

    the coverages are strictly related • E.g., U and V components of wind/current vectors • Merge them back into a single coverage as bands • Allows rendering engine to work with them both as one
  19. Native multi-coverage support • Satellite images often comes in one

    file per band • Requirement, as they have different resolutions • Grab the band name from file, build a “band specific” coverage • Use coverage views to merge them together in a virtual multiband coverage • Smarts to read only the desired files when doing band selection
  20. Hyperspectral imagery support • Hyperspectral images: those having hundreds of

    bands • Typically stored in band-interleaved structure (one data bank for all pixels in the same band) Rows Cols Bands
  21. Coverage Views • New in 2.27.x • Jiffle, raster algebra

    • E.g. on the fly agronomic index computation • Transparently available on all protocols ◦ WMS/WCS/WPS/OGC APIs
  22. Documentation links • GeoServer reference docs: • http://docs.geoserver.org/latest/en/user/data/raster/image mosaic/index.html •

    http://docs.geoserver.org/latest/en/user/data/raster/covera geview.html • http://docs.geoserver.org/latest/en/user/tutorials/imagemos aic_footprint/imagemosaic_footprint.html • GeoSolutions training: • https://geoserver.geo-solutions.it/edu/en/multidim/accessin g_multidim/coverageview.html
  23. Filtering via WMS-T support TIME, ELEVATION & Custom dimensions http://localhost:8080/geoserver/geosolutions/wms?...

    &time=2013-03-1T00:00:00.000Z &elevation=35.0 &DIM_FILEDATE=2013-03-01T00:00:00.000Z &DIM_UPDATED=2013-04-08T08:18:41.597Z
  24. Rendering transformations • Style based transformations • Applied on the

    fly, yet fast enough for interactive use • Pluggable: add your own contouring
  25. Documentation links • GeoServer documentation • http://docs.geoserver.org/latest/en/user/services/wms /time.html • http://docs.geoserver.org/stable/en/user/data/webad

    min/layers.html#edit-layer-dimensions • http://docs.geoserver.org/latest/en/user/styling/sld/ex tensions/rendering-transform.html • GeoSolutions training: • https://geoserver.geo-solutions.it/edu/en/wps/renderi ng_tx.html • Jiffle documentation: • https://github.com/geosolutions-it/jai-ext/wiki/Jiffle
  26. WCS 2.0 • Basics • Core service • KVP binding

    • XML binding • Common extensions • CRS • Scaling • Interpolation • Range subsetting • GeoTiff • GML • NetCDF • Add the output format extensions • GeoTIFF • GML Grid • NetCDF
  27. Asynchronous download • WCS 2.0 is a fine protocol •

    But it’s synchronous • Not well suited for large downloads • WPS execute can be asynchronous • WPS download plugin • Dedicated to large extractions
  28. WPS download - large rendered map 10GB NDVI GeoTIFF 2

    meters res Some time later Coverage view with Jiffle + SLD