Introducing WMS and WCS Support for GeoTrellis and Raster Foundry

Introducing WMS and WCS Support for GeoTrellis and Raster Foundry

On Azavea’s GeoTrellis team, we have big ambitions to deliver a modern, idiomatic set of tools for manipulating and delivering spatial data on the JVM. It may come as some surprise, then, that some of our recent efforts have focused on supporting standards defined almost 20 years ago. With support from Natural Resources Canada and a grant from NASA (NNX16CS04C), those efforts have borne fruit by enabling us to serve layers of imagery in the popular Web Mapping Service (WMS) and Web Coverage Service (WCS) standards.

Why do these standards matter?

The WMS and WCS standards published by the Open Geospatial Consortium (OGC) were both designed to enable consumers of these services to request imagery and related metadata through a simple HTTP interface. The metadata made available by these services includes (but is certainly not limited to) characterization of the imagery: its spatial extent, available projections, data authors/maintainers, data provenance, and even URLs to images that are meant to serve as keys to data being served.

Both formats generate raster imagery results, but what distinguishes WMS from WCS is the fact that WMS services are used to apply predefined cartographic styles aimed at human viewers of interactive web maps, whereas WCS services produce unstyled images for the client to further analyze and style (or not) in whatever fashion they desire. Well-defined indices and highly curated sources of data are a great fit for WMS because the provided styles can guide users to the best interpretation of information. WCS is a better fit when users might wish to investigate data on their own or when it isn’t clear, ahead of time, how best to render a given dataset. WCS, which serves raw values rather than rendered png or jpg images, is also suitable as a potential data source for more complex data processing pipelines. Because of their similarities—of which there are many—it’s not unusual for the same dataset to be provided using both services.

We have wanted to add WMS and WCS support to GeoTrellis for several years. These standards are useful because they are supported in a broad range of both commercial and open source software. By supporting WMS a web application that uses GeoTrellis can leverage other WMS data sources served by GeoServer or ArcGIS to create composite maps. Similarly, WCS support enables the construction of a chain of analysis steps that includes data from multiple data sources. For example, an analysis workflow could potentially combine Landsat imagery stored in Raster Foundry with elevation slope and aspect data published by the US Geological Survey and global population estimates from SEDAC.

QGIS reading a WCS layer
Moving around the map with a WCS layer of median household incomes in the US (styled by QGIS on the frontend)

With the addition of WCS and WMS support in GeoTrellis, Natural Resources Canada plans to implement a set of standardized web services to access and visualize large geospatial collections (e.g. the High Resolution Digital Elevation Model). In using OGC standards to provide their open data, Natural Resources Canada is hardly alone. In 2019 there are nearly 16,000 WMS services and over 8,000 WCS services made available through the US federal government open data portal data.gov. Each of them is provided—free of charge—by government, university, or non-profit sources. These are only a small sample of these services published across the internet with hundreds of thousands more (the exact numbers aren’t readily available) provided by companies, universities, and government agencies around the globe.

OGC Standards at Azavea

Obviously then, these standards are broadly used. They also happen to be supported, out of the box, by some of the best analysis and visualization tools in the GIS software ecosystem (a host of ESRI products, QGIS, Leaflet, Mapbox GL JS—the list goes on). While the tools that consume these services are popular and regularly used by people with a range of technical competencies, the offerings for hosting layers are decidedly less user-friendly. In addition to setting up one of the applications that aims to host imagery with support for OGC standards (e.g. GeoServer) a would-be data provider must also navigate the complexity of actually hosting said application in a robust fashion on cloud infrastructure. Needless to say, this is a big ask for an organization with a fixed budget that wants to focus on collecting and curating their data and avoid the minutiae required to actually share that data with a wider audience.

Enter Raster Foundry, a platform Azavea has been developing (and using internally on a number of our projects) for managing raster datasets. Raster Foundry facilitates organizing, exploring, analyzing, and sharing raster datasets with your organization—or, indeed, the whole world. With the new WMS and WCS support in GeoTrellis, Raster Foundry will now be able to automatically publish WMS and WCS versions of any layer constructed from satellite, aerial, or drone imagery.

layers on top of map
A layer sampled from NASA ISERV and constructed as a composite layer in Raster Foundry
project dashboard
Publishing this layer for the public to see
layer of imagery over map

For an idea of what can be built on top of Raster Foundry, take a look at this demo which uses satellite imagery to analyze the impacts of a handful of North American wildfires. If your organization has imagery and is looking for a way to store, analyze, and share it, Raster Foundry might be what you’ve been missing. Drop us a line if you’d like to chat about how Raster Foundry or GeoTrellis can help you solve your imagery storage and analysis challenges or if you’d like to learn more about how Azavea can help solve your geospatial problems using open standards.