Web Coverage Processing Service: Difference between revisions
imported>Sherlock url |
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''') | 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). | ||
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. | |||
== 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 | |||
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'': | ||
< | <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" ) | ||
</ | </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: | ||
< | <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" ) | ||
</ | </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: | ||
< | <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" ) | ||
</ | </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
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

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
- ↑ Baumann, P. (ed.): OGC Web Coverage Processing Service (WCPS) Language, OGC document 08-068r2, 2008
- ↑ OGC WCPS standards page
- ↑ Baumann, Peter (October 2010). "The OGC web coverage processing service (WCPS) standard" (in en). GeoInformatica 14 (4): 447–479. doi:10.1007/s10707-009-0087-2. ISSN 1384-6175. http://link.springer.com/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
External links
- OGC public wiki pages for coverage-related specifications (including working drafts), also containing WCPS
- The WCPS reference implementation (rasdaman), available in open source.
- A demo showcase for 1-D through 4-D coverage query examples
