Web Coverage Processing Service


The Web Coverage Processing Service defines a language for filtering and processing of multi-dimensional raster coverages, such as sensor, simulation, image, and statistics data. The Web Coverage Processing Service is maintained by the Open Geospatial Consortium. This raster query language allows clients to obtain original coverage data, or derived information, in a platform-neutral manner over the Web.

Overview

WCPS allows to generate pictures suitable for displaying to humans and information concise enough for further consumption by programs. In particular, the formally defined syntax and semantics make WCPS amenable to program-generated queries and automatic service chaining.
As the WCPS language is not tied to any particular transmission protocol, the query paradigm can be embedded into any service framework, such as OGC Web Coverage Service and OGC Web Processing Service.
The current WCPS version is 1.0. The standards document, available from the OGC WCPS standards page, presents a condensed definition of syntax and semantics. In addition, there is an introduction to the concepts along with design rationales.
Currently, WCPS is constrained to multi-dimensional raster data, but an activity is under work in OGC to extend it to all coverage types, i.e., digital geospatial information representing space-varying phenomena as defined in OGC Abstract Specification Topic 6: Schema for Coverage Geometry and Functions and refined to a concrete, interoperable model in the OGC GML 3.2.1 Application Schema - Coverages Standard.

WCPS language in a nutshell

WCPS establishes a protocol to send a query string to a server and obtain, as a result of the server's processing, a set of coverages.
The query string can be expressed in either Abstract Syntax or XML. In the following examples, Abstract Syntax will be used as it is more apt for human consumption.
The WCPS syntax tentatively has been crafted close to the XQuery language – as metadata more and more are established in XML, and OGC heavily relies on XML, it is anticipated that eventually a combination of XQuery and WCPS will be established. This will unify data and metadata retrieval.
The following example may serve to illustrate these principles. Task is to inspect three coverages M1, M2, and M3; for each one, deliver the pixelwise difference of red and near-infrared channel; return the result encoded in HDF5:

for $c in
return
encode

This will return three coverages, that is: three HDF5 files.
Next, we are interested only in those coverages where nir exceeds 127 somewhere:

for $c in
where
some
return
encode

The result might be only two coverages that pass the filter.
Finally, we want to constrain the filter predicate through a pixel mask acting as filter:

for $c in,
$r in
where
some
return
encode

The evaluation procedure can be thought of as a nested loop. In general, the language allows to express a range of imaging, signal processing, and statistics operations. The limit is given because the language is safe in evaluation, that is: every request is guaranteed to terminate after a finite number of steps. This excludes recursion. Still, algorithms like classification, filter kernels and general convolutions, histograms, and Discrete Fourier Transform are expressible.