The Open Geospatial Consortium (OGC) is considering CoverageJSON for adoption as an official OGC Community Standard. A new Work Item Justification to begin the Community Standard endorsement process is available for public comment. Comments are due by July 25, 2021.
CoverageJSON is a simple, human- and machine-readable format for publishing spatio-temporal data to the Web. It is used for encoding coverage data such as multi-dimensional grids, time series, and vertical profiles, distinguished by the geometry of their spatio-temporal domain.
The CoverageJSON format supports the efficient download of useful quantities of data from datastores to lightweight clients, such as browsers and mobile applications. It allows local manipulation of the data in a format familiar to, and popular with, web developers, and that is readily usable by e.g. science researchers. It uses linked-data (JSON-LD) to reduce data payload volumes.
CoverageJSON was developed in 2015 at the University of Reading, as part of MELODIES (Maximizing the Exploitation of Linked Open Data in Enterprise and Science), a EU Framework 7 project, inspired by a demonstration by Joan Masó of CREAF.
The project identified a gap in the capabilities available to the developers of websites and apps who wish to consume scientific data. Existing data formats (e.g. NetCDF, HDF, GRIB, XML) were either highly complex or inappropriate to be used in these environments. Therefore the CoverageJSON format was developed for encoding many kinds of scientific and Earth Observation data in a manner that is friendly for web and app developers.
CoverageJSON is based on the concepts and standards from ISO and OGC, and the specification is published openly on the web. The specification is supported by a Cookbook, plus a suite of open source tools for producing and consuming the format. Great interest in the format has already been shown by the user community, who are also encouraged to contribute to its development via GitHub.
Why develop a new data format?
Consuming coverage data and visualizing it interactively in web clients is still not straight-forward. One reason is that existing formats are either unsuitable for the web (like netCDF files) or hard to interpret independently due to missing standard structures and metadata (e.g. the OPeNDAP protocol).
Increasingly, GeoJSON is used in various ways to attach coverage-like data to simple geometries (mostly points or polygons). However, such attempts often seem to bend the semantics of GeoJSON (using
properties to attach data to inner geometry points, even though the geometry is meant as a single entity) and face the limits of it quite quickly (no grid geometry, no time coordinates, bad efficiency for big coverage domains).
With the advent of linked data, some measurement data is directly represented as RDF triples, typically accessible via a (Geo)SPARQL endpoint. While that approach is perfectly fine, there is still the question on how to represent big coverages (like grids) as triples, the current consensus being that it doesn’t make much sense to do that. Another challenge is the flexibility of RDF and a missing standard vocabulary for coverage data, making it hard to write generic clients for it.
For all these reasons, the CoverageJSON format was developed which tries to fill these gaps, while being linked-data friendly, space-efficient, and easy to produce and consume.
How can CoverageJSON be used?
While the format is still in development and changing, a range of libraries are developed for reading and visualizing CoverageJSON documents:
However, as the format is so simple, it is easy to prototype an application from scratch. If you think the format is not simple enough, please open an issue and explain why you feel that way – it’s a priority for us to make it simple!