PyWPS 2.0.0: The presence and the future Jachym Cepicky Help Service – Remote Sensing s.r.o Černoleská 1600 256 01 Benešov u Prahy jachym at bnhelp dot cz Keywords: OGC, Web Processing Service, WPS, PyWPS, GIS, GRASS, FOSS4G Abstract This paper presents current status of PyWPS1 program, which implements OGC Web Pro- cessing 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 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 dis- tributed 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 to- gether 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. 1 http://pywps.wald.intevation.org Geinformatics FCE CTU 2007 61 http://pywps.wald.intevation.org 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 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 pro- grams, 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 Homepage can be found at http://pywps.wald.intevation.org. 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/ Geinformatics FCE CTU 2007 62 http://pywps.wald.intevation.org http://www.bnhelp.cz/mapserv/wpsdemo/ PyWPS 2.0.0: The presence and the future http://www.bnhelp.cz/mapserv/pokusy/openlayers/wpsdemo Prefarm 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. What’s new in WPS 1.0.0 In 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. Another field of development are the clients, suitable for WPS. Currently, apart from propri- etary 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. Geinformatics FCE CTU 2007 63 http://www.bnhelp.cz/mapserv/pokusy/openlayers/wpsdemo PyWPS 2.0.0: The presence and the future References 1. OGC Web Processing Service 0.4.0, Editors: Peter Schut, Arliss Whiteside, Ref. num- ber: OGC 05-007r4, Open Geospatial Consortium Inc. 2005 2. PyWPS2 – Implementation of OGC WPS specification 3. OpenLayers3 – JavaScript library for dynamic maps provided by MetaCarta 4. ka-Map!4 – JavaScript API for developing interactive web-mapping applications 2 http://pywps.wald.intevation.org 3 http://openlayers.org 4 http://ka-map.maptools.org/ Geinformatics FCE CTU 2007 64 http://pywps.wald.intevation.org http://openlayers.org http://ka-map.maptools.org/