PyWPS 2 . 0 . 0 : The presence and the future

This paper presents current status of PyWPS1 program, which implements OGC Web Processing Service standard. PyWPS 0.2.0, which was released only recently, implements OGC WPS 0.4.0. Nowadays, OGC is preparing the WPS 1.0.0 standard, with slightly different characteristics. Next versions of PyWPS should implement this version too. OGC Web Processing Service The Open Geospatial Consortium, Inc.® (OGC) is a non-profit, international, voluntary consensus standards organization that is leading the development of standards for geospatial and location based services. OGC specifications are technical documents that detail interfaces or encodings. Software developers use these documents to build support for the interfaces or encodings into their products and services. One of this document OGC Web Processing Service (WPS). It is relatively new standard (compared to other, more used standards, like OGC Web Mapping Service (WMS) or Web Feature Service). The document number 05007r4 describes version 0.4.0 of the WPS standard. Request for comments to this standard was published February 2006. In June 2007, version 1.0.0 of this standard was released. The standard describes the way, how geospatial operations (referred as “processes”) are distributed across networks. WPS server can be configured to offer any sort of GIS functionality to clients across network. Process can be simple calculation, like adding to raster maps together or making buffer around vector feature, as well as complicated models, as for example climate change model. The main goal of WPS is, that computational high-demanded operations are moved from client stations (general desktop PC) to server. http://pywps.wald.intevation.org Geinformatics FCE CTU 2007 61 PyWPS 2.0.0: The presence and the future WPS request types Three types of request-response pairs are defined. Request can be in Key-Value-Pairs (KVP) encoding, as well as XML document. Server response is always formatted as XML document.  GetCapabilities – Server returns Capabilities document. First part of the document includes metadata about server provider and other server features. Second part of the document includes list of on server available processes.  DescribeProcess – Server returns ProcessDescription document. Apart from process identifier, title and abstract, process inand outputs are defined.  Execute – Client overhands necessary inputs for partial process, the server provides geospatial calculations and returns document with all process outputs.


OGC Web Processing Service
The Open Geospatial Consortium, Inc.® (OGC) is a non-profit, international, voluntary consensus standards organization that is leading the development of standards for geospatial and location based services.OGC specifications are technical documents that detail interfaces or encodings.Software developers use these documents to build support for the interfaces or encodings into their products and services.One of this document OGC Web Processing Service (WPS).It is relatively new standard (compared to other, more used standards, like OGC Web Mapping Service (WMS) or Web Feature Service).The document number 05-007r4 describes version 0.4.0 of the WPS standard.Request for comments to this standard was published February 2006.In June 2007, version 1.0.0 of this standard was released.
The standard describes the way, how geospatial operations (referred as "processes") are distributed across networks.WPS server can be configured to offer any sort of GIS functionality to clients across network.Process can be simple calculation, like adding to raster maps together or making buffer around vector feature, as well as complicated models, as for example climate change model.
The main goal of WPS is, that computational high-demanded operations are moved from client stations (general desktop PC) to server.Three types of request-response pairs are defined.Request can be in Key-Value-Pairs (KVP) encoding, as well as XML document.Server response is always formatted as XML document.
GetCapabilities -Server returns Capabilities document.First part of the document includes metadata about server provider and other server features.Second part of the document includes list of on server available processes.
DescribeProcess -Server returns ProcessDescription document.Apart from process identifier, title and abstract, process in-and outputs are defined.
Execute -Client overhands necessary inputs for partial process, the server provides geospatial calculations and returns document with all process outputs.

Data Types
Three basic types of in-and output data are defined: LiteralData -Character strings as well as integer or double numbers.

BoundingBoxData -Two pairs of coordinates
ComplexValue and ComplexValueReference -Input and output vector and/or raster data.Vector data (e.g.GML files) can be directly part of request/response execute document (than they the input is of type ComplexValue).Client can specify only URL to input data (e.g.address to Web Coveradge Server (WCS)).In this case, the data are of type ComplexValueReference.

PyWPS
The PyWPS program implements OGC Web Processing Service (WPS) standard in it's 0.4.0 version.It can be understand as proxy, between common GIS command-line-oriented programs, like GRASS GIS, GDAL/OGR tools as well as R statistic package and Internet.PyWPS is Free Software, published under GNU/GPL.Currently, PyWPS has three developers, and about 40 people registered in mailing list.From beginning, it has been developed with direct support for GRASS GIS.

PyWPS usage examples
Several examples are provided, which are demonstrating usage of OGC WPS.All examples are web browser oriented.

WPS Demos
Two demo applications are provided, with same functionality.Help Service -Remote Sensing demo running at http://www.bnhelp.cz/mapserv/wpsdemo/http://www.bnhelp.cz/mapserv/pokusy/openlayers/wpsdemoPrefarm As part of the Premathmod project, which is an statistical and mathematical modeling, data analysis simulation and optimization methodologies for precision farming, PyWPS was used.On the server, GRASS GIS is used, to calculate optimal fertilization over fields.
Embrio interface Lorenzo Becchi made WPS interface for his map viewer ka-Map.It works together with PyWPS and till now, only basic functions are implemented, like shortest path calculation, vector buffers and lines of sight.
OpenLayers WPS plugin WPS can be also used together with OpenLayers map viewer.New OpenLayers.Control class was written, which serves like WPS client.It communicates with the server directly and can be used for any kind process.Another field of development are the clients, suitable for WPS.Currently, apart from proprietary client-server solutions, there are WPS plugins for uDig and Open Jump programs, both provided by 52north, and OpenLayers WPS plugin.Other GIS (viewers) are now lacking for suitable WPS plugin, so they could enjoy advantages of remote geoprocessing.

Conclusion
PyWPS (Python Web Processing Service) implements OGC Web Processing Service standard in it's 0.4.0 version.Several applications, which are using PyWPS are available on Internet as well as intranet applications.
In the future, new version of WPS standard should be implemented, as well as new WPS client plugins should be developed.
What's new in WPS 1.0.0In July 2007, new version of WPS standard was launched.This version implements some missing functionality of previous version of the standard, mainly: SOAP/WSDL API New and more rich KVP request encoding definition Better input specification, including e.g.maximal file size Basic support for WPS server internationalization Future of PyWPS Current version of PyWPS supports only the 0.4.0 version of named standard.In the summer 2008, PyWPS development team would like to release new version, which would implement current version of the standard.