Web Coverage Processing Service
This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (August 2012) (Learn how and when to remove this template message)
The Web Coverage Processing Service (WCPS) 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 (OGC). This raster query language allows clients to obtain original coverage data, or derived information, in a platform-neutral manner over the Web.
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 (WCS) and OGC Web Processing Service (WPS).
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 (which is identical to ISO 19123) and refined to a concrete, interoperable model in the OGC GML 3.2.1 Application Schema - Coverages (GMLCOV) 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 (such as Geography Markup Language), 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 (nir) channel; return the result encoded in HDF5:
for $c in ( M1, M2, M3 ) return encode( abs( $c.red - $c.nir ), "hdf5" )
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 ( M1, M2, M3 ) where some( $c.nir > 127 ) return encode( abs( $c.red - $c.nir ), "hdf5" )
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 ( M1, M2, M3 ), $r in ( R ) where some( $c.nir > 127 and $r ) return encode( abs( $c.red - $c.nir ), "hdf5" )
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.
- Baumann, P. (ed.): OGC Web Coverage Processing Service (WCPS) Language, OGC document 08-068r2, 2008
- OGC WCPS standards page
- Baumann, P.: The OGC Web Coverage Processing Service (WCPS) Standard. Geoinformatica, 14(4)2010, pp. 447-479, DOI 10.1007/s10707-009-0087-2
- OGC Abstract Specification Topic 6: Schema for Coverage Geometry and Functions, OGC 08-126
- OGC GML Application Schema - Coverages, OGC 09-146r2