Web Coverage Processing Service: Difference between revisions

From HandWiki
imported>Sherlock
url
 
MedAI (talk | contribs)
fixing
 
Line 1: Line 1:
{{Short description|Language for geospatial coverage data}}
{{Short description|Language for geospatial coverage data}}


The '''Web Coverage Processing Service''' ('''WCPS''') defines a language for filtering and processing of multi-dimensional raster [[Earth:Coverage data|coverages]], such as sensor, simulation, image, and statistics data. The Web Coverage Processing Service is maintained by the [[Organization:Open Geospatial Consortium|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.
The '''Web Coverage Processing Service''' ('''WCPS''') is a [[Query language|query language]] for filtering and processing of multi-dimensional [[Raster graphics|raster]] [[Earth:Coverage data|coverages]] (grid-based digital representation of spatio-temporal phenomenon), such as sensor, simulation, satellite images, and statistics data collected over multiple points in time. WCPS allows clients to obtain original coverage data, or derived information, in a platform-neutral manner over the Web. It is maintained by the [[Organization:Open Geospatial Consortium|Open Geospatial Consortium]] (OGC).  


== Overview ==
WCPS allows users 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 [[Earth:Web Coverage Service|Web Coverage Service]] (WCS) and OGC [[Earth:Web Processing Service|Web Processing Service]] (WPS).
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 [[Earth:Web Coverage Service|Web Coverage Service]] (WCS) and OGC [[Earth:Web Processing Service|Web Processing Service]] (WPS).
== Versions ==
 
The current WCPS version is 1.0. The standards document,<ref>Baumann, P. (ed.): [http://portal.opengeospatial.org/files/?artifact_id=32319 OGC Web Coverage Processing Service (WCPS) Language], OGC document 08-068r2, 2008</ref> available from the OGC WCPS standards page,<ref>[http://www.opengeospatial.org/standards/wcps OGC WCPS standards page]</ref> presents a condensed definition of syntax and semantics. In addition, there is an introduction to the concepts along with design rationales.<ref>{{Cite journal |last=Baumann |first=Peter |date=October 2010 |title=The OGC web coverage processing service (WCPS) standard |url=http://link.springer.com/10.1007/s10707-009-0087-2 |journal=GeoInformatica |language=en |volume=14 |issue=4 |pages=447–479 |doi=10.1007/s10707-009-0087-2 |issn=1384-6175|url-access=subscription }}</ref>
The current WCPS version is 1.0. The standards document,<ref>Baumann, P. (ed.): [http://portal.opengeospatial.org/files/?artifact_id=32319 OGC Web Coverage Processing Service (WCPS) Language], OGC document 08-068r2, 2008</ref> available from the OGC WCPS standards page,<ref>[http://www.opengeospatial.org/standards/wcps OGC WCPS standards page]</ref> presents a condensed definition of syntax and semantics. In addition, there is an introduction to the concepts along with design rationales.<ref>Baumann, P.: [https://archive.today/20130203043448/http://www.springerlink.com/openurl.asp?genre=article&id=doi:10.1007/s10707-009-0087-2 The OGC Web Coverage Processing Service (WCPS) Standard]. Geoinformatica, 14(4)2010, pp. 447-479, DOI 10.1007/s10707-009-0087-2</ref>


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''<ref>[http://portal.opengeospatial.org/files/?artifact_id=19820  OGC Abstract Specification Topic 6: Schema for Coverage Geometry and Functions, OGC 08-126]</ref> (which is identical to [[Organization:International Organization for Standardization|ISO]] 19123) and refined to a concrete, interoperable model in the OGC ''GML 3.2.1 Application Schema - Coverages'' (GMLCOV) Standard.<ref>[https://portal.opengeospatial.org/files/?artifact_id=48553 OGC GML Application Schema - Coverages, OGC 09-146r2]</ref>
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''<ref>[http://portal.opengeospatial.org/files/?artifact_id=19820  OGC Abstract Specification Topic 6: Schema for Coverage Geometry and Functions, OGC 08-126]</ref> (which is identical to [[Organization:International Organization for Standardization|ISO]] 19123) and refined to a concrete, interoperable model in the OGC ''GML 3.2.1 Application Schema - Coverages'' (GMLCOV) Standard.<ref>[https://portal.opengeospatial.org/files/?artifact_id=48553 OGC GML Application Schema - Coverages, OGC 09-146r2]</ref>
Line 15: Line 13:
[[File:Sample WCPS query results.png|thumb|400px|alt=Sample WCPS query results|Sample WCPS query results]]
[[File:Sample WCPS query results.png|thumb|400px|alt=Sample WCPS query results|Sample WCPS query results]]


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.
WCPS establishes a protocol to send a [[Query string|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 query string can be expressed in either ''Abstract Syntax'' or XML. In the following examples, [[Abstract syntax|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 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'':
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'':
<source lang="xquery">
<syntaxhighlight lang="xquery">
for $c in ( M1, M2, M3 )
for $c in ( M1, M2, M3 )
return
return
     encode( abs( $c.red - $c.nir ), "hdf5" )
     encode( abs( $c.red - $c.nir ), "hdf5" )
</source>
</syntaxhighlight>
This will return three coverages, that is: three HDF5 files.
This will return three coverages, that is: three HDF5 files.


Next, we are interested only in those coverages where nir exceeds 127 somewhere:
Next, we are interested only in those coverages where nir exceeds 127 somewhere:
<source lang="xquery">
<syntaxhighlight lang="xquery">
for $c in ( M1, M2, M3 )
for $c in ( M1, M2, M3 )
where
where
Line 35: Line 33:
return
return
     encode( abs( $c.red - $c.nir ), "hdf5" )
     encode( abs( $c.red - $c.nir ), "hdf5" )
</source>
</syntaxhighlight>
The result might be only two coverages that pass the filter.
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:
Finally, we want to constrain the filter predicate through a pixel mask acting as filter:
<source lang="xquery">
<syntaxhighlight lang="xquery">
for $c in ( M1, M2, M3 ),
for $c in ( M1, M2, M3 ),
     $r in ( R )
     $r in ( R )
Line 46: Line 44:
return
return
     encode( abs( $c.red - $c.nir ), "hdf5" )
     encode( abs( $c.red - $c.nir ), "hdf5" )
</source>
</syntaxhighlight>


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.
The evaluation procedure can be thought of as a nested loop. In general, the language allows to express a range of imaging, [[Signal processing|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|Discrete Fourier Transform]] are expressible.


== See also ==
== See also ==

Latest revision as of 17:14, 24 May 2026

Short description: Language for geospatial coverage data


The Web Coverage Processing Service (WCPS) is a query language for filtering and processing of multi-dimensional raster coverages (grid-based digital representation of spatio-temporal phenomenon), such as sensor, simulation, satellite images, and statistics data collected over multiple points in time. WCPS allows clients to obtain original coverage data, or derived information, in a platform-neutral manner over the Web. It is maintained by the Open Geospatial Consortium (OGC).

WCPS allows users 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).

Versions

The current WCPS version is 1.0. The standards document,[1] available from the OGC WCPS standards page,[2] presents a condensed definition of syntax and semantics. In addition, there is an introduction to the concepts along with design rationales.[3]

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[4] (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.[5]

WCPS language in a nutshell

Sample WCPS query results
Sample WCPS query results

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.

See also

References