THE OGC WCPS STANDARD FOR UNIFIED SENSOR, IMAGE, AND STATISTICS DATA SERVICES
In the modular geo service specification set of the Open GeoSpatial Consortium (OGC, www.opengeospatial.org), foundation for coverage handling is laid down in the Web Coverage Service (WCS) standard, its current version 1.1.2 [9] adopted by the OGC Technical Committee (TC) in April 2008. WCS offers basic services, essentially spatial and temporal subsetting, range ('band', 'channel') subsetting, scaling, and reprojection.
Further services, such as Sensor Web Enablement (SWE) [4] and Web Processing Service (WPS) [8] build upon the coverage model introduced by WCS.
Actually, WCS is not just one specification, but a 'core' of services with 'extensions' as optional add-on services an implementor may offer. Among the extensions under work are data format encodings, so-called transactional services for updating coverages (WCS per se is purely focusing on retrieval), and a coverage processing extension offering a processing request language with server-side evaluation.
In this contribution we present this processing extension, the Web Coverage Processing Service (WCPS) emerging standard [2,3].
The author is co-chair of the WCS Working Group, the Coverages Working Group, chair of the WCPS group.
2 The OGC Coverage Model
OGC's conceptual model of a coverage grounds on ISO 19123 [5] and OGC Abstract Topic 6 [7]. However, definitions there are rather generic and include, for example, any currently known type of coverage. For practical reasons, in WCS the notion of a coverage has been trimmed down to gridded coverages for the moment being.
A coverage offered by a server consists of a locally unique identifier, the value array itself, its domain (which is a description of its spatio-temporal extent), its range (the data type of the coverage's 'pixel' elements), a list of Coordinate Reference Systems under which the coverage can be addressed, an optional set of null values, interpolation methods which can be applied to this coverage when needed by an operation, and metadata (part of which are optional).
3 The WCPS Processing Language
WCPS offers an XQuery-oriented coverage request language for describing coverage manipulation. Design has been guided by the experience gained in developing and formalizing a database array query language [1].
The basic request structure consists of a loop over a list of coverages offered by the server, followed by an expression indicating the desired processing of each coverage.
for var_1 in ( coverage_1_1, coverage_1_2, ... ), var_2 in ( coverage_2_1, coverage_2_2, ... ), ... [ where filterPredicate( var_1, var_2, ... ) ] return processingExpr(var_1, var_2, ... )
Example: The difference between red and near-infrared channel in coverage ModisScene, encoded in TIFF:
for m in ( ModisScene ) return encode( abs( m.red - m.nir ), "TIFF" )
In the example above the resulting TIFF file is returned to the client immediately. By using the store() function, a coverage result alternatively can be stored on server-side for subsequent download by the client. The response in this case is a URL under which the file is accessible. The following request implements this:
for m in ( ModisScene ) return store( encode( m, "TIFF" ) )
The list of operations allows for spatio-temporal subsetting, changing pixel values via airthmetic and further operations, scaling, reprojection, summarization, and derivation of new coverages (such as histograms or convolutions). The following example returns not a coverage but a single scalar representing the average of the squared differences between red and near-infrared channel of a Modis scene.
for m in ( ModisScene ) return avg( sq( m.red - m.nir ) )
Note that the result, one floating point number, needs not be encoded.
In practice, WCPS covers a range of statistics, image, and signal processing functionality. As an exercise, we have implemented a Web Map Service (WMS) over WCPS. However, the language is "safe in evaluation" - no single request can ever entirely block the server.
4 WCPS Implementation
The WCPS reference implementation is based on the multi-dimensional raster DBMS, rasdaman, which stores n-D coverages of unlimited size in standard relational databases, and adds an SQL-like raster query language for retrieving and manipulating them. Extensive server-side optimization is performed, in particular algebraic optimization as well as hardware and software parallelization. Raster objects internally are partitioned into tiles, optionally applying compression
Rasdaman is in operational use since several years and serving, e.g., dozen-Terabytes airborne images, 3-D geophysics data, and 4-D climate simulation results. As a proof of concept, a Web Map Service (WMS) has been implemented on top of WCPS. An on-line demo is available at www.earthlook.org.
5 WCPS Service Embedding
The WCS Processing Extension [2] embeds WCPS into the WCS suite by defining an additional request type, ProcessCoverages. It specifis how clients send WCPS expressions to a server and receive the processing results. Currently foreseen are a HTTP GET / KVP encoding and a SOAP/XML encoding.
6 Outlook & Future Work
WCS being a stable and mature specification the standardization group's work now concentrates on modularization and adding optional extensions to accommodate the different user communities interested. For example, atmospheric researchers from the OGC GALEON Network (Geo-interface to Atmosphere, Land, Earth, Ocean, NetCDF; see www.ogcnetwork.net/galeon) are contributing actively.
Among list of the extensions planned or already under work are the following. Currently WCS (and hence WCPS) consider only regularly gridded data, that is: raster data. It is under investigation how to extend the coverage model to incorporate irregular grids as well.
Further, the historically grown view of 2D/3D/4D coverages is going to be extended to allow coverages of any number of spatio-temporal dimensions plus any number of 'abstract' dimensions which do not necessarily bear any spatio-temporal semantics. Examples of non-classical coverages are 1-D timeseries and 5-D climate simulation results bearing pressure as an extra, simulation-induced axis.
All in all, work is plentiful, hence expert in the fields of computer or earth sciences - to name two examples - is very much invited to join the standardization group's forces and contribute to shaping the future standards of our communities.
References Cited
1. Baumann, P., 1999, A Database Array Algebra for Spatio-Temporal and Beyond, Fourth International Workshop on Next Generation Information Technologies and Systems (NGITS '99), Lecture Notes on Computer Science 1649, Springer Verlag, pp. 76.93
2. Baumann, P. (ed.), 2008, Web Coverage Service (WCS) Processing Extension, version 1.0.0, OGC document 08-059r1
3. Baumann, P. (ed.), 2008, Web Coverage Processing Service (WCPS), version 1.0.0, OGC document 08-068 2008
4. Botts, M., Robin, A., Davidson, J., Simonis, I. (eds.), 2006, Sensor Web Enablement Architecture. OGC document 06-021r1, 2006
5. Jerosch, K. et al., 2006, Automatic content-based analysis of georeferenced image data: Detection of Beggiatoa mats in seafloor video mosaics from the Hakon Mosby Mud Volcano, Computers & Geosciences
6. n.n., 2005, Geographic Information - Coverage Geometry and Functions, ISO 19123:2005
7. n.n., 2000, Abstract Specification Topic 6: The Coverage Type and its Subtypes, OGC document 00-106
8. Schut, P., 2005, Web Processing Service Implementation Specification, version 1.0.0, OGC document 05-007r7
9. Whiteside, A., Keens, S. (eds.), 2008, Web Coverage Service Implementation Standard, version 1.1.2, OGC document 07-067r5, 2008
Acronyms Used
OGC - Open GeoSpatial Consortium
SWE - Sensor Web Enablement
WCS - Web Coverage Service
WCPS - Web Coverage Processing Service
WMS - Web Map Service
WPS - Web Processing Service
Figures
Fig. 1: WMS access to Hakon-Mosby underwater volcano area (one bathymetry layer, three submersible seafloor video mosaic layers)
Fig. 2: WCS extraction from a 3-D AVHRR satellite image time series mosaic consisting of about 10,000 single images