[Pywps-commits] r547 - in trunk/doc: . html

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Aug 28 15:09:12 CEST 2008


Author: jachym
Date: 2008-08-28 15:09:10 +0200 (Thu, 28 Aug 2008)
New Revision: 547

Added:
   trunk/doc/html/
   trunk/doc/html/index.html
   trunk/doc/html/pywps-howto.css
   trunk/doc/html/pywps-howto.html
   trunk/doc/html/pywps-schema.png
Log:
HTML documentation moved to html directory

Added: trunk/doc/html/index.html
===================================================================
--- trunk/doc/html/index.html	2008-08-28 13:07:48 UTC (rev 546)
+++ trunk/doc/html/index.html	2008-08-28 13:09:10 UTC (rev 547)
@@ -0,0 +1,1054 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Implementation of OGC WPS standard: PyWPS</TITLE>
+<META NAME="description" CONTENT="Implementation of OGC WPS standard: PyWPS">
+<META NAME="keywords" CONTENT="pywps-howto">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="pywps-howto.css">
+
+</HEAD>
+
+<BODY >
+
+<DIV CLASS="navigation"><!--Navigation Panel-->
+<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive"
+ SRC="/usr/share/latex2html/icons/nx_grp_g.png"> 
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="/usr/share/latex2html/icons/up_g.png"> 
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="/usr/share/latex2html/icons/prev_g.png">   
+<BR>
+<BR>
+<BR></DIV>
+<!--End of Navigation Panel-->
+<H1 ALIGN="CENTER">Implementation of OGC WPS standard: PyWPS</H1>
+<DIV CLASS="author_info">
+
+<P ALIGN="CENTER"><STRONG>Jachym Cepicky</STRONG></P>
+</DIV>
+
+<P>
+
+<P><P>
+<BR>
+<BLOCKQUOTE>
+Copyright &#169;2006-2009 PyWPS Development Team
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+
+</BLOCKQUOTE>
+
+<P><P>
+<BR>
+
+<P>
+In this file, you can found the description of installation and
+configuration of PyWPS script. At the and, you can learn, how to add
+your own process. This document describes most recent
+version of PyWPS (<SPAN  CLASS="textit">2.0.0</SPAN>), available in subversion respository.
+
+<P>
+PyWPS project has been started on April 2006 with support of DBU -
+Deutsche Bundesstiftung Umwelt<A NAME="tex2html1"
+  HREF="#foot222"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A> and with help of
+GDF-Hannover<A NAME="tex2html3"
+  HREF="#foot223"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A> and Help Service Remote
+Sensing<A NAME="tex2html5"
+  HREF="#foot224"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A> companies. Initial author is Jachym
+Cepicky<A NAME="tex2html7"
+  HREF="#foot225"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A>.
+
+<P>
+<BR>
+
+<H2><A NAME="SECTION00010000000000000000">
+Contents</A>
+</H2>
+<!--Table of Contents-->
+
+<UL CLASS="TofC">
+<LI><A NAME="tex2html54"
+  HREF="pywps-howto.html#SECTION00020000000000000000">Introduction</A>
+<UL>
+<LI><A NAME="tex2html55"
+  HREF="pywps-howto.html#SECTION00021000000000000000">How it works</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html56"
+  HREF="pywps-howto.html#SECTION00030000000000000000">Quick install</A>
+<LI><A NAME="tex2html57"
+  HREF="pywps-howto.html#SECTION00040000000000000000">Know issues</A>
+<LI><A NAME="tex2html58"
+  HREF="pywps-howto.html#SECTION00050000000000000000">Installation</A>
+<UL>
+<LI><A NAME="tex2html59"
+  HREF="pywps-howto.html#SECTION00051000000000000000">Installation the quick 'n' dirty way</A>
+<LI><A NAME="tex2html60"
+  HREF="pywps-howto.html#SECTION00052000000000000000">Installation the 'clean' way</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html61"
+  HREF="pywps-howto.html#SECTION00060000000000000000">Configuration</A>
+<LI><A NAME="tex2html62"
+  HREF="pywps-howto.html#SECTION00070000000000000000">Write your own processes</A>
+<UL>
+<LI><A NAME="tex2html63"
+  HREF="pywps-howto.html#SECTION00071000000000000000">Process initialization and configuration</A>
+<LI><A NAME="tex2html64"
+  HREF="pywps-howto.html#SECTION00072000000000000000">Process Programming</A>
+<LI><A NAME="tex2html65"
+  HREF="pywps-howto.html#SECTION00073000000000000000">Using GRASS GIS</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html66"
+  HREF="pywps-howto.html#SECTION00080000000000000000">Testing your new process</A>
+</UL>
+<!--End of Table of Contents-->
+<P>
+
+<P>
+
+<H1><A NAME="SECTION00020000000000000000">
+Introduction</A>
+</H1>
+PyWPS (Python Web Processing Service) is implementation of Web
+Processing Service 1.0.x standard from Open Geospatial
+Consortium<A NAME="tex2html9"
+  HREF="#foot226"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A>.
+
+<P>
+It has been started on Mai 2006 as project supported by DBU. It offers
+environment for programming own process (geofunctions or models) which can
+be accessed from the public. The main advantage of PyWPS is, that it has
+been written with native support for GRASS
+GIS<A NAME="tex2html11"
+  HREF="#foot42"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A>. Access GRASS modules via web
+interace should be as easy as possible.
+However, not only GRASS GIS is supported. Usage of other programs, like
+R package or GDAL or PROJ tools is possible as well.
+
+<P>
+PyWPS is written in Python programming language, your processes must use
+this language too. 
+
+<P>
+PyWPS Homepage can be found at <TT><A NAME="tex2html12"
+  HREF="http://pywps.wald.intevation.org">http://pywps.wald.intevation.org</A></TT>.
+PyWPS Wiki is hosted on <TT><A NAME="tex2html13"
+  HREF="http://pywps.ominiverdi.org/wiki">http://pywps.ominiverdi.org/wiki</A></TT>. 
+
+<P>
+
+<H2><A NAME="SECTION00021000000000000000">
+How it works</A>
+</H2>
+PyWPS is an translator application between client (Web Browser, Desktop
+GIS, command line tool, ...) and working tool installed on the server.
+PyWPS does no process the data by it self. As working tool, GRASS GIS, GDAL, PROJ, R
+and other programs can be used.
+
+<P>
+
+<DIV ALIGN="CENTER"><A NAME="pic:pywps"></A><A NAME="47"></A>
+<TABLE>
+<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG>
+How does PyWPS work: GRASS GIS is in this case working tool</CAPTION>
+<TR><TD>
+<DIV ALIGN="CENTER">
+<IMG
+  WIDTH="832" HEIGHT="275" ALIGN="BOTTOM" BORDER="0"
+ SRC="./pywps-schema.png"
+ ALT="Image pywps-schema">
+
+</DIV></TD></TR>
+</TABLE>
+</DIV>
+
+<P>
+
+<H1><A NAME="SECTION00030000000000000000">
+Quick install</A>
+</H1>
+
+<OL>
+<LI>Install PyWPS, see page&nbsp;<A HREF="pywps-howto.html#install"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A> for details
+</LI>
+<LI>NOTE: Rename original files (process examples, configuration files)
+    with <TT>.py-dist</TT> suffix to <TT>.py</TT>, when you see them.
+</LI>
+<LI>Edit configuration files in <TT>pywps/etc/</TT> directory. See
+    page&nbsp;<A HREF="pywps-howto.html#configuration"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A> for details.
+</LI>
+<LI>Create or edit <TT>__init__.py</TT> file in
+    <TT>pywps/processes</TT> directory. Add available process names to
+    <TT>__all__</TT> array.
+</LI>
+<LI>Add your processes to <TT>pywps/processes</TT> directory. See
+    page&nbsp;<A HREF="pywps-howto.html#processes"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A> for details.
+</LI>
+<LI>Run PyWPS with <TT>./wps.py</TT> command, see
+    page&nbsp;<A HREF="pywps-howto.html#testing"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A> for details.
+</LI>
+</OL>
+
+<P>
+
+<H1><A NAME="SECTION00040000000000000000">
+Know issues</A>
+</H1>
+Known bugs and limitations to UL>
+<LI>Translations do not work for GetCapabilities. They only work for DescribeProcess request types.
+</LI>
+<LI>If inputs are of type <TT>LiteralValue</TT> and it's type is
+string, it could be security problem. Take care on your inputs and do
+not use it directly in scripts to avoid your server to be hacked.
+</LI>
+</UL>
+
+<P>
+Please report all problems or unexpected handeling either via pywps mailing
+list<A NAME="tex2html15"
+  HREF="#foot227"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A>or using PyWPS
+bugtracker<A NAME="tex2html16"
+  HREF="#foot228"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A>.
+
+<P>
+
+<H1><A NAME="SECTION00050000000000000000"></A>
+<A NAME="install"></A>
+<BR>
+Installation
+</H1>   
+Required packages:
+
+<P>
+
+<UL>
+<LI>python 
+</LI>
+<LI>python-xml 
+</LI>
+<LI>python-htmltmpl 
+</LI>
+</UL>
+
+<P>
+Recommended packages:
+
+<P>
+
+<UL>
+<LI>Web Server (e.g. Apache) - <TT><A NAME="tex2html17"
+  HREF="http://httpd.apache.org">http://httpd.apache.org</A></TT> -  You
+    will need an web server, to be able to execute processes from remote
+    computers.
+
+<P>
+</LI>
+<LI>GIS GRASS  - <TT><A NAME="tex2html18"
+  HREF="http://grass.itc.it">http://grass.itc.it</A></TT> - Geographical Resources
+    Analysis Support System (GRASS) is Open Source GIS, which provides more
+    then 350 modules for raster and vector (2D, 3D) data analysis. PyWPS is
+    written with native support for GRASS and it's functions.
+
+<P>
+</LI>
+<LI>PROJ.4  - <TT><A NAME="tex2html19"
+  HREF="http://proj.maptools.org">http://proj.maptools.org</A></TT> - Cartographic
+    Projections library used in various Open Source projects, such as
+    GRASS, UMN MapServer, QGIS and others. It can be used e.g. for data
+    transformation.
+
+<P>
+</LI>
+<LI>GDAL/OGR  - <TT><A NAME="tex2html20"
+  HREF="http://gdal.org">http://gdal.org</A></TT> - translator library for
+    raster geospatial data formats, is used in various projects for
+    importing, exporting and transformation between various raster and vector
+    data formats.
+
+<P>
+</LI>
+<LI>R  - <TT><A NAME="tex2html21"
+  HREF="http://www.r-project.org">http://www.r-project.org</A></TT> - is a language and environment
+    for statistical computing and graphics.
+
+<P>
+</LI>
+</UL>
+
+<P>
+
+<H2><A NAME="SECTION00051000000000000000">
+Installation the quick 'n' dirty way</A>
+</H2>
+For installing pywps to your server simply unzip the archive to the
+directory, where cgi programs are allowed to run. You can also use current
+repository version.
+
+<P>
+<PRE>
+$ cd /usr/lib/cgi-bin/
+$ tar xvzf /tmp/pywps-VERSION.tar.gz
+$ pywps/wps.py
+</PRE>
+
+<P>
+
+<H2><A NAME="SECTION00052000000000000000">
+Installation the 'clean' way</A>
+</H2>
+Unzip the package 
+<PRE>
+$ tar -xzf pywps-VERSION.tar.gz
+</PRE>
+and run 
+<PRE>
+$ python setup.py install
+</PRE> 
+adjust the configuration file 
+<PRE>
+$ vim /etc/pywps.cfg
+</PRE> 
+permint write access to templates directory
+<PRE>
+# chmod -R 777 /usr/lib/python2.5/site-packages/pywps/Templates
+</PRE> 
+
+<P>
+Several binary packages for Linux distributios (<TT>RPM,DEB</TT>) are also avaliable on PyWPS
+homepage<A NAME="tex2html22"
+  HREF="#foot98"><SUP><SPAN CLASS="arabic">9</SPAN></SUP></A>.
+
+<P>
+
+<H1><A NAME="SECTION00060000000000000000"></A>
+<A NAME="configuration"></A>
+<BR>
+Configuration
+</H1>
+
+<P>
+Before you start to tune your PyWPS installation, you should get your copy of
+OpenGIS(R) Web Processing Service document (OGC  05-007r7) version
+1.0.0<A NAME="tex2html24"
+  HREF="#foot229"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A>.
+
+<P>
+
+<P>
+<BR>
+NOTE: Note, that the configuration option are CASE SENSITIVE
+<P>
+<BR>
+
+
+<P>
+Pywps configuration takes place in <TT>pywps.cfg</TT> file located in
+<TT>/etc/pywps.cfg</TT> or <TT>pywps/etc/pywps.cfg</TT>. 
+
+<P>
+Default configuration file is located in <TT>pywps/default.cfg</TT>, you
+can always make a copy of this file and start the configuration from
+scratch.
+
+<P>
+Several sections are in the file. 
+
+<UL>
+<LI>Section <SPAN  CLASS="textbf">[wps]</SPAN> contains general WPS settings, which are:
+        
+<UL>
+<LI>encoding - Language encoding (utf-8, iso-8859-2, windows-1250, ...)
+</LI>
+<LI>title - Server title 
+</LI>
+<LI>version - WPS version (1.0.0)
+</LI>
+<LI>abstract - Server anstract
+</LI>
+<LI>fees - Possible fees
+</LI>
+<LI>constraints - Possible constraints
+</LI>
+<LI>serveraddress - WPS script address: <TT><A NAME="tex2html26"
+  HREF="http://foo/bar/wps.py">http://foo/bar/wps.py</A></TT>
+</LI>
+<LI>keywords - Comma-separated list of kyewords
+</LI>
+<LI>lang - Default langue (eng)
+        
+</LI>
+</UL>
+</LI>
+<LI>Section <SPAN  CLASS="textbf">[provider]</SPAN> contains informations about you
+        
+<UL>
+<LI>providerName - Name of your company
+</LI>
+<LI>individualName - Your name
+</LI>
+<LI>positionName
+</LI>
+<LI>role 
+</LI>
+<LI>deliveryPoint - Street
+</LI>
+<LI>city
+</LI>
+<LI>postalCode
+</LI>
+<LI>country
+</LI>
+<LI>electronicMailAddress - foo at bar
+</LI>
+<LI>providerSite - <TT><A NAME="tex2html27"
+  HREF="http://foo.bar">http://foo.bar</A></TT>
+</LI>
+<LI>phoneVoice
+</LI>
+<LI>phoneFacsimile
+</LI>
+<LI>administrativeArea
+        
+</LI>
+</UL>
+</LI>
+<LI>Section <SPAN  CLASS="textbf">[server]</SPAN> contains server settings
+        
+<UL>
+<LI>maxoperations - Maximal number of parallel running
+            processes. If set to 0, then there is no limit.
+</LI>
+<LI>maxinputparamlength - Maximal length of string input
+            parameter.
+</LI>
+<LI>maxfilesize - Maximal input file size (raster or
+            vector). The size can be determined as follows: 1GB, 5MB, 3kB,
+            1000b.
+</LI>
+<LI>tempPath - Direcotory for temporary files (mostly
+            temporary GRASS locations).
+</LI>
+<LI>outputUrl - Url where the outputs are stored.
+</LI>
+<LI>outputPath - Path. where output files are stored.
+</LI>
+<LI>debug - true/false
+        
+</LI>
+</UL>
+</LI>
+<LI>Section <SPAN  CLASS="textbf">[grass]</SPAN> - GRASS GIS settings
+        
+<UL>
+<LI>path - $PATH variable, e.g. <TT>/usr/lib/grass/bin</TT>
+</LI>
+<LI>addonPath - $GRASS_ADDONS variable
+</LI>
+<LI>version - GRASS version
+</LI>
+<LI>gui - Should be "text"
+</LI>
+<LI>gisbase - Path to GRASS GIS_BASE directory
+            (<TT>/usr/lib/grass</TT>)
+</LI>
+<LI>ldLibraryPath - Path of GRASS Libs
+            (<TT>/usr/lib/grass/lib</TT>)
+        
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P>
+File example follows:
+<PRE>
+[wps]
+encoding=utf-8
+title=PyWPS Server
+version=1.0.0
+abstract=See http://pywps.wald.intevation.org and http://www.opengeospatial.org/standards/wps
+fees=None
+constraints=none
+serveraddress=http://localhost/cgi-bin/wps
+keywords=GRASS,GIS,WPS
+lang=eng
+
+[provider]
+providerName=Your Company Name
+individualName=Your Name
+positionName=Your Position
+role=Your role
+deliveryPoint=Street
+city=City
+postalCode=000 00
+country=eu
+electronicMailAddress=login at server.org
+providerSite=http://foo.bar
+phoneVoice=False
+phoneFacsimile=False
+administrativeArea=False
+
+[server]
+maxoperations=3
+maxinputparamlength=1024
+maxfilesize=3mb
+tempPath=/tmp
+outputUrl=http://localhost/wps/wpsoutputs
+outputPath=/var/www/wps/wpsoutputs
+debug=true
+
+[grass]
+path=/usr/lib/grass/bin/:/usr/lib/grass/scripts/
+addonPath=
+version=6.2.1
+gui=text
+gisbase=/usr/lib/grass/
+ldLibraryPath=/usr/lib/grass/lib
+</PRE>
+
+<P>
+subsectionTesting after installation
+<A NAME="testing"></A>For test, just run
+<TT>wps.py</TT> in your command line:
+
+<P>
+<PRE>
+$ ./wps.py "service=wps&amp;request=getcapabilities"
+
+INIT DONE
+LOADING PRECOMPILED
+TEMPLATE: UPTODATE
+PRECOMPILED: UPTODATE
+Content-type: text/xml
+
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;wps:Capabilities service="WPS" version="1.0.0" xml:lang="eng,ger"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:wps="http://www.opengis.net/wps/1.0.0"
+    xmlns:ows="http://www.opengis.net/ows/1.1"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
+    xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
+    http://schemas.opengis.net/wps/1.0.0/wpsGetCapabilities_response.xsd"
+    updateSequence="1"&gt;
+	&lt;ows:ServiceIdentification&gt;
+		&lt;ows:Title&gt;PyWPS Development Server&lt;/ows:Title&gt;
+    ...
+&lt;/wps:Capabilities&gt;
+</PRE>
+
+<P>
+If you got something like this, (Capabilities response), everything looks
+fine.
+
+<P>
+If you got some other message, like e.g.:
+
+<P>
+<PRE>
+Traceback (most recent call last):
+  File "/usr/bin/wps.py", line 221, in &lt;module&gt;
+    wps = WPS()
+  File "/usr/bin/wps.py", line 140, in __init__
+    self.performRequest()
+  File "/usr/bin/wps.py", line 188, in performRequest
+    from pywps.WPS.GetCapabilities import GetCapabilities
+  File "/usr/lib/python2.5/site-packages/pywps/WPS/GetCapabilities.py", line 26, in &lt;module&gt;
+    from Response import Response
+  File "/usr/lib/python2.5/site-packages/pywps/WPS/Response.py", line 28, in &lt;module&gt;
+    from htmltmpl import TemplateManager, TemplateProcessor
+ImportError: No module named htmltmpl
+</PRE>
+
+<P>
+Than something is wrong with your Python installation or with the program.
+This message means, that the python-htmltmpl package is not installed in
+your system.
+
+<P>
+
+<H1><A NAME="SECTION00070000000000000000"></A>
+<A NAME="processes"></A>
+<BR>
+Write your own processes
+</H1>
+
+<P>
+All processes are stored in the <TT>pywps/processes</TT> directory. You can
+create custom directory anywhere in your system and set
+<TT>$PYTHON_PROCESS</TT> environment variabl (how to do this for the web
+server, refer to your Server documentation). Following example will
+describe buffering process.  Several example processes are distributed along with PyWPS source code.
+
+<P>
+Create file <TT>exampleBufferProcess.py</TT> in PYWPS_PROCESSES directory.
+
+<P>
+Each process is stand-alone python script with one class <TT>Process</TT>,
+which has two methods: <TT>__init__, execute</TT>. It is possible also to add as 
+many your functions/methods, as you wish.
+
+<P>
+
+<H2><A NAME="SECTION00071000000000000000">
+Process initialization and configuration</A>
+</H2>
+
+<P>
+<PRE>
+  1 from pywps.Process.Process import WPSProcess                                
+  2 class Process(WPSProcess):
+  3     """Main process class"""
+  4     def __init__(self):
+  5         """Process initialization"""
+  7         # init process
+  8         WPSProcess.__init__(self,
+  9             identifier = "exampleBufferProcess",
+ 10             title="Buffer",
+ 11             version = "0.2",
+ 12             storeSupported = "true",
+ 13             statusSupported = "true",
+ 14             abstract="Create a buffer around an input vector file",
+ 15             grassLocation = True)
+</PRE>
+
+<P>
+We defined new process called <TT>exampleBufferProcess</TT>. The process is allowed to
+store it's output data on the server (<TT>storeSupported</TT>) and it is also possible to run it in
+asynchronous mode (<TT>statusSupported</TT>). The process will run within
+GRASS GIS environment (<TT>grassLocation = True</TT>).
+
+<P>
+
+<H4><A NAME="SECTION00071010000000000000">
+Metadata defition</A>
+</H4> is stored in array <TT>self.Metadata</TT> in
+<TT>__init__</TT> method. You can add new Medatada using
+<TT>self.AddMetadata()</TT> method:
+<PRE>
+            self.AddMetadata(identifier="point",type="point",
+                            textContent="Click in the map")
+</PRE>
+
+<P>
+
+<H3><A NAME="SECTION00071100000000000000">
+Data Inputs</A>
+</H3>
+
+<P>
+Three types of data inputs are defined:
+
+<UL>
+<LI>Literal Input - Basic literal input - single number or text
+    value
+</LI>
+<LI>ComplexValue Input  - Mostly vector file embded in input XML
+    request or reference (URL) to such file.
+</LI>
+<LI>BoundingBox Input - Coordinates for lower-left and upper-right
+    corner.
+</LI>
+</UL>
+
+<P>
+
+<H4><A NAME="SECTION00071110000000000000">
+ComplexInput</A>
+</H4>
+Complex input can be raster or vector file, to be processed. 
+
+<P>
+<PRE>
+ 18         self.dataIn = self.addComplexInput(identifier="data",
+ 19                              title = "Input data")
+ 20
+</PRE>
+
+<P>
+
+<H4><A NAME="SECTION00071120000000000000">
+LiteralInput</A>
+</H4>
+
+<P>
+With literal input, you can obtain any type of character string.
+
+<P>
+<PRE>
+ 21         self.widthIn = self.addLiteralInput(identifier = "width",
+ 22                              title = "Width")
+ 23
+</PRE>
+
+<P>
+For further documentation, refere example processes distributed with the
+source code as well as <TT>pydoc&nbsp;pywps/Wps/Process.py</TT>. This help is
+also available in
+<TT>process.html</TT><A NAME="tex2html28"
+  HREF="#foot230"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A> file distributed along with PyWPS
+source code.
+
+<P>
+
+<H3><A NAME="SECTION00071200000000000000">
+Data Outputs</A>
+</H3>
+Data outputs can be defined in similar way.
+
+<UL>
+<LI>Literal Output
+</LI>
+<LI>ComplexValue Outout
+</LI>
+<LI>BoundingBox Output
+</LI>
+</UL>
+
+<P>
+
+<H4><A NAME="SECTION00071210000000000000">
+ComplexValue Output</A>
+</H4>
+The complex value can be raster or vector file (or any other binary or text
+file).
+
+<P>
+<PRE>
+24        self.bufferOut = self.addComplexOutput(identifier="buffer",
+25                                title="Output buffer file")
+26
+</PRE>
+
+<P>
+
+<H4><A NAME="SECTION00071220000000000000">
+Literal Output</A>
+</H4>
+If you want to output any text string.
+<PRE>
+27          self.textOut = self.addLiteralOutput(identifier="text",
+28                               title="just some text")
+29
+</PRE>
+
+<P>
+
+<H2><A NAME="SECTION00072000000000000000">
+Process Programming</A>
+</H2>
+
+<P>
+The process must be defined in the <TT>execute(self)</TT> method. 
+Basicly, you want to get input values and set output values. For this
+purpose, you can use <TT>getValue(input_identifier)</TT> and
+<TT>setValue(output_identifier,value)</TT> methods of the input/output
+objects (see lower).
+
+<P>
+If you need to execute some shell command, you should use
+<TT>self.cmd(command,["string for standard input"])</TT> instead of e.g.
+<TT>os.system()</TT> or <TT>os.popen()</TT> functions.
+
+<P>
+Calculation progress can be set using <TT>self.status(string message,
+number percent)</TT> method.
+
+<P>
+Example follows:
+
+<P>
+<PRE>
+33     def execute(self):
+34         """Execute process.
+35         
+36         Each command will be executed and output values will be set
+37         """
+38 
+39         # run some command from the command line
+40         self.cmd("g.region -d")
+41 
+42         # set status value
+43         self.status.set("Importing data",20)
+44         self.cmd("v.in.ogr dsn=%s output=data" %\
+45                 (self.getInputValue('data')))
+46             
+47         self.status.set("Buffering",50)
+48         self.cmd("v.buffer input=data output=data_buff buffer=%s scale=1.0 tolerance=0.01" %\
+49                 (self.getInputValue('width')))
+50 
+51         self.status.set("Exporting data",90)
+52 
+53         self.cmd("v.out.ogr type=area format=GML input=data_buff dsn=out.xml olayer=path.xml")
+54         
+55         self.bufferOut.setValue("out.xml")
+56         self.textOut.setValue("ahoj, svete")
+57         return
+</PRE>
+
+<P>
+
+<H3><A NAME="SECTION00072100000000000000">
+Error handling</A>
+</H3>
+
+<P>
+At the end of the <TT>execute</TT> function, <TT>None</TT> value should be returned. Any other 
+value means, that the calculation will be stopped and error report will be
+returned back to the client, example:
+
+<P>
+<PRE>
+        def execute(self):
+            ...
+            return "Ups, something failed!"
+</PRE>
+
+<P>
+
+<H2><A NAME="SECTION00073000000000000000">
+Using GRASS GIS</A>
+</H2>
+
+<P>
+Configuration is done using standard pywps configuration file (see
+page<A HREF="pywps-howto.html#configuration"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A>).
+
+<P>
+If you want to use GRASS GIS commands in your process, and there is no
+GRASS Location to be used, you have to set <TT>grassLocation=True</TT> in
+process definition:
+
+<P>
+<PRE>
+         WPSProcess.__init__(self,
+             identifier = "exampleBufferProcess",
+             ....
+             grassLocation = True)
+</PRE>
+
+<P>
+In this case, temporary GRASS Location will be created and after the
+process is done, it will be deleted again. By default, no GRASS Location is
+created.
+
+<P>
+You can also work in existing GRASS Location, then just set the location
+path:
+<PRE>
+         WPSProcess.__init__(self,
+             identifier = "exampleBufferProcess",
+             ....
+             grassLocation = "/home/grass/grassdata/spearfish60")
+</PRE>
+
+<P>
+
+<H1><A NAME="SECTION00080000000000000000">
+Testing your new process</A>
+</H1>
+
+<P>
+To test your PyWPS installation, you run it either as Webserver
+cgi-application or in the command line directly. It is always good to start
+with the command line test, so do not have to check <TT>error.log</TT> of
+the web server.
+
+<P>
+
+<UL>
+<LI>GetCapabilities request (webserver)
+<PRE>
+./wps.py "service=wps&amp;request=getcapabilities"
+
+wget -nv -q -O - "http://localhost/cgi-bin/wps.py?\
+    service=Wps&amp;request=getcapabilities"
+</PRE>
+
+<P>
+</LI>
+<LI>DescribeProcess request:
+<PRE>
+./wps.py "version=1.0.0&amp;service=Wps&amp;request=DescribeProcess&amp;\
+    Identifier=bufferExampleProcess"
+
+wget -nv -q -O - "http://localhost/cgi-bin/wps.py?\
+    version=0.4.0&amp;service=Wps&amp;request=DescribeProcess&amp;\
+    Identifier=exampleBufferProcess"
+</PRE>
+
+<P>
+</LI>
+<LI>Execute request:
+            For data inputs encoding, using HTTP Get method, see
+            OGC 05-007r7<A NAME="tex2html29"
+  HREF="#foot242"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A>, page 38 &#8222;Execute HTTP GET request KVP
+            encoding``
+<PRE>
+./wps.py "version=1.0.0&amp;service=Wps&amp;\
+    request=Execute&amp;Identifier=exampleBufferProcess&amp;\
+    datainputs=data=http://foo/bar/roads.gml;width=0.5"
+</PRE>
+
+<P>
+</LI>
+</UL>
+
+<P>
+Some examples of XML request econding are available in doc/examples
+directory.
+
+<P>
+Before testing WPS via HTTP POST, you have to set <TT>REQUEST_METHOD</TT>
+environment variable, then you can redirect input XML into <TT>wps.py</TT>
+script via standard input:
+
+<P>
+<PRE>
+$ export REQUEST_METHOD=POST
+$ cat doc/wps_execute_request-responsedocument.xml|./wps.py
+</PRE>
+
+<P>
+
+<H1><A NAME="SECTION00090000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG>Implementation of OGC WPS standard: PyWPS</STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright &#169; 1993, 1994, 1995, 1996,
+Nikos Drakos, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright &#169; 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-split 0 pywps-howto.tex</TT>
+<P>
+The translation was initiated by Jachym Cepicky on 2008-08-28
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot222">... Umwelt</A><A
+ HREF="pywps-howto.html#tex2html1"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html2"
+  HREF="http://dbu.de">http://dbu.de</A></TT>
+
+</DD>
+<DT><A NAME="foot223">...
+GDF-Hannover</A><A
+ HREF="pywps-howto.html#tex2html3"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html4"
+  HREF="http://gdf-hannover.de">http://gdf-hannover.de</A></TT>
+
+</DD>
+<DT><A NAME="foot224">...
+Sensing</A><A
+ HREF="pywps-howto.html#tex2html5"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html6"
+  HREF="http://www.bnhelp.cz">http://www.bnhelp.cz</A></TT>
+
+</DD>
+<DT><A NAME="foot225">...
+Cepicky</A><A
+ HREF="pywps-howto.html#tex2html7"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html8"
+  HREF="http://les-ejk.cz">http://les-ejk.cz</A></TT>
+
+</DD>
+<DT><A NAME="foot226">...
+Consortium</A><A
+ HREF="pywps-howto.html#tex2html9"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html10"
+  HREF="http://www.opengeospatial.org/standards/requests/28">http://www.opengeospatial.org/standards/requests/28</A></TT>
+
+</DD>
+<DT><A NAME="foot42">...
+GIS</A><A
+ HREF="pywps-howto.html#tex2html11"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A></DT>
+<DD>http://grass.itc.it
+
+</DD>
+<DT><A NAME="foot227">...
+list</A><A
+ HREF="pywps-howto.html#tex2html15"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A></DT>
+<DD>http://wald.intevation.org/mailman/listinfo/pywps-develPyWPS
+- development list
+
+</DD>
+<DT><A NAME="foot228">...
+bugtracker</A><A
+ HREF="pywps-howto.html#tex2html16"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A></DT>
+<DD>http://wald.intevation.org/tracker/?atid=174&amp;group_id=22&amp;func=browsePyWPS
+Bug tracker
+
+</DD>
+<DT><A NAME="foot98">...
+homepage</A><A
+ HREF="pywps-howto.html#tex2html22"><SUP><SPAN CLASS="arabic">9</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html23"
+  HREF="http://pywps.wald.intevation.org">http://pywps.wald.intevation.org</A></TT>
+
+</DD>
+<DT><A NAME="foot229">...
+1.0.0</A><A
+ HREF="pywps-howto.html#tex2html24"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html25"
+  HREF="http://www.opengeospatial.org/standards/wps">http://www.opengeospatial.org/standards/wps</A></TT>
+
+</DD>
+<DT><A NAME="foot230">...process.html</A><A
+ HREF="pywps-howto.html#tex2html28"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A></DT>
+<DD>http://wald.intevation.org/plugins/scmsvn/viewcvs.php/*checkout*/trunk/doc/process.html?rev=369&amp;root=pywpsDocumentation
+to Process.py module
+
+</DD>
+<DT><A NAME="foot242">... 05-007r7</A><A
+ HREF="pywps-howto.html#tex2html29"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html30"
+  HREF="http://opengeospatial.org/standards/wps/">http://opengeospatial.org/standards/wps/</A></TT>
+
+</DD>
+</DL>
+<DIV CLASS="navigation"><HR>
+<!--Navigation Panel-->
+<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive"
+ SRC="/usr/share/latex2html/icons/nx_grp_g.png"> 
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="/usr/share/latex2html/icons/up_g.png"> 
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="/usr/share/latex2html/icons/prev_g.png">   
+<BR></DIV>
+<!--End of Navigation Panel-->
+<ADDRESS>
+Jachym Cepicky
+2008-08-28
+</ADDRESS>
+</BODY>
+</HTML>

Added: trunk/doc/html/pywps-howto.css
===================================================================
--- trunk/doc/html/pywps-howto.css	2008-08-28 13:07:48 UTC (rev 546)
+++ trunk/doc/html/pywps-howto.css	2008-08-28 13:09:10 UTC (rev 547)
@@ -0,0 +1,37 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+PRE.preform		{   }
+DIV.quote		{   }
+DIV.center		{   }
+DIV.navigation		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.arabic		{   }
+SPAN.textit		{ font-style: italic  }

Added: trunk/doc/html/pywps-howto.html
===================================================================
--- trunk/doc/html/pywps-howto.html	2008-08-28 13:07:48 UTC (rev 546)
+++ trunk/doc/html/pywps-howto.html	2008-08-28 13:09:10 UTC (rev 547)
@@ -0,0 +1,1054 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Implementation of OGC WPS standard: PyWPS</TITLE>
+<META NAME="description" CONTENT="Implementation of OGC WPS standard: PyWPS">
+<META NAME="keywords" CONTENT="pywps-howto">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="pywps-howto.css">
+
+</HEAD>
+
+<BODY >
+
+<DIV CLASS="navigation"><!--Navigation Panel-->
+<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive"
+ SRC="/usr/share/latex2html/icons/nx_grp_g.png"> 
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="/usr/share/latex2html/icons/up_g.png"> 
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="/usr/share/latex2html/icons/prev_g.png">   
+<BR>
+<BR>
+<BR></DIV>
+<!--End of Navigation Panel-->
+<H1 ALIGN="CENTER">Implementation of OGC WPS standard: PyWPS</H1>
+<DIV CLASS="author_info">
+
+<P ALIGN="CENTER"><STRONG>Jachym Cepicky</STRONG></P>
+</DIV>
+
+<P>
+
+<P><P>
+<BR>
+<BLOCKQUOTE>
+Copyright &#169;2006-2009 PyWPS Development Team
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+
+</BLOCKQUOTE>
+
+<P><P>
+<BR>
+
+<P>
+In this file, you can found the description of installation and
+configuration of PyWPS script. At the and, you can learn, how to add
+your own process. This document describes most recent
+version of PyWPS (<SPAN  CLASS="textit">2.0.0</SPAN>), available in subversion respository.
+
+<P>
+PyWPS project has been started on April 2006 with support of DBU -
+Deutsche Bundesstiftung Umwelt<A NAME="tex2html1"
+  HREF="#foot222"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A> and with help of
+GDF-Hannover<A NAME="tex2html3"
+  HREF="#foot223"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A> and Help Service Remote
+Sensing<A NAME="tex2html5"
+  HREF="#foot224"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A> companies. Initial author is Jachym
+Cepicky<A NAME="tex2html7"
+  HREF="#foot225"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A>.
+
+<P>
+<BR>
+
+<H2><A NAME="SECTION00010000000000000000">
+Contents</A>
+</H2>
+<!--Table of Contents-->
+
+<UL CLASS="TofC">
+<LI><A NAME="tex2html54"
+  HREF="pywps-howto.html#SECTION00020000000000000000">Introduction</A>
+<UL>
+<LI><A NAME="tex2html55"
+  HREF="pywps-howto.html#SECTION00021000000000000000">How it works</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html56"
+  HREF="pywps-howto.html#SECTION00030000000000000000">Quick install</A>
+<LI><A NAME="tex2html57"
+  HREF="pywps-howto.html#SECTION00040000000000000000">Know issues</A>
+<LI><A NAME="tex2html58"
+  HREF="pywps-howto.html#SECTION00050000000000000000">Installation</A>
+<UL>
+<LI><A NAME="tex2html59"
+  HREF="pywps-howto.html#SECTION00051000000000000000">Installation the quick 'n' dirty way</A>
+<LI><A NAME="tex2html60"
+  HREF="pywps-howto.html#SECTION00052000000000000000">Installation the 'clean' way</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html61"
+  HREF="pywps-howto.html#SECTION00060000000000000000">Configuration</A>
+<LI><A NAME="tex2html62"
+  HREF="pywps-howto.html#SECTION00070000000000000000">Write your own processes</A>
+<UL>
+<LI><A NAME="tex2html63"
+  HREF="pywps-howto.html#SECTION00071000000000000000">Process initialization and configuration</A>
+<LI><A NAME="tex2html64"
+  HREF="pywps-howto.html#SECTION00072000000000000000">Process Programming</A>
+<LI><A NAME="tex2html65"
+  HREF="pywps-howto.html#SECTION00073000000000000000">Using GRASS GIS</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html66"
+  HREF="pywps-howto.html#SECTION00080000000000000000">Testing your new process</A>
+</UL>
+<!--End of Table of Contents-->
+<P>
+
+<P>
+
+<H1><A NAME="SECTION00020000000000000000">
+Introduction</A>
+</H1>
+PyWPS (Python Web Processing Service) is implementation of Web
+Processing Service 1.0.x standard from Open Geospatial
+Consortium<A NAME="tex2html9"
+  HREF="#foot226"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A>.
+
+<P>
+It has been started on Mai 2006 as project supported by DBU. It offers
+environment for programming own process (geofunctions or models) which can
+be accessed from the public. The main advantage of PyWPS is, that it has
+been written with native support for GRASS
+GIS<A NAME="tex2html11"
+  HREF="#foot42"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A>. Access GRASS modules via web
+interace should be as easy as possible.
+However, not only GRASS GIS is supported. Usage of other programs, like
+R package or GDAL or PROJ tools is possible as well.
+
+<P>
+PyWPS is written in Python programming language, your processes must use
+this language too. 
+
+<P>
+PyWPS Homepage can be found at <TT><A NAME="tex2html12"
+  HREF="http://pywps.wald.intevation.org">http://pywps.wald.intevation.org</A></TT>.
+PyWPS Wiki is hosted on <TT><A NAME="tex2html13"
+  HREF="http://pywps.ominiverdi.org/wiki">http://pywps.ominiverdi.org/wiki</A></TT>. 
+
+<P>
+
+<H2><A NAME="SECTION00021000000000000000">
+How it works</A>
+</H2>
+PyWPS is an translator application between client (Web Browser, Desktop
+GIS, command line tool, ...) and working tool installed on the server.
+PyWPS does no process the data by it self. As working tool, GRASS GIS, GDAL, PROJ, R
+and other programs can be used.
+
+<P>
+
+<DIV ALIGN="CENTER"><A NAME="pic:pywps"></A><A NAME="47"></A>
+<TABLE>
+<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG>
+How does PyWPS work: GRASS GIS is in this case working tool</CAPTION>
+<TR><TD>
+<DIV ALIGN="CENTER">
+<IMG
+  WIDTH="832" HEIGHT="275" ALIGN="BOTTOM" BORDER="0"
+ SRC="./pywps-schema.png"
+ ALT="Image pywps-schema">
+
+</DIV></TD></TR>
+</TABLE>
+</DIV>
+
+<P>
+
+<H1><A NAME="SECTION00030000000000000000">
+Quick install</A>
+</H1>
+
+<OL>
+<LI>Install PyWPS, see page&nbsp;<A HREF="pywps-howto.html#install"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A> for details
+</LI>
+<LI>NOTE: Rename original files (process examples, configuration files)
+    with <TT>.py-dist</TT> suffix to <TT>.py</TT>, when you see them.
+</LI>
+<LI>Edit configuration files in <TT>pywps/etc/</TT> directory. See
+    page&nbsp;<A HREF="pywps-howto.html#configuration"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A> for details.
+</LI>
+<LI>Create or edit <TT>__init__.py</TT> file in
+    <TT>pywps/processes</TT> directory. Add available process names to
+    <TT>__all__</TT> array.
+</LI>
+<LI>Add your processes to <TT>pywps/processes</TT> directory. See
+    page&nbsp;<A HREF="pywps-howto.html#processes"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A> for details.
+</LI>
+<LI>Run PyWPS with <TT>./wps.py</TT> command, see
+    page&nbsp;<A HREF="pywps-howto.html#testing"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A> for details.
+</LI>
+</OL>
+
+<P>
+
+<H1><A NAME="SECTION00040000000000000000">
+Know issues</A>
+</H1>
+Known bugs and limitations to UL>
+<LI>Translations do not work for GetCapabilities. They only work for DescribeProcess request types.
+</LI>
+<LI>If inputs are of type <TT>LiteralValue</TT> and it's type is
+string, it could be security problem. Take care on your inputs and do
+not use it directly in scripts to avoid your server to be hacked.
+</LI>
+</UL>
+
+<P>
+Please report all problems or unexpected handeling either via pywps mailing
+list<A NAME="tex2html15"
+  HREF="#foot227"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A>or using PyWPS
+bugtracker<A NAME="tex2html16"
+  HREF="#foot228"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A>.
+
+<P>
+
+<H1><A NAME="SECTION00050000000000000000"></A>
+<A NAME="install"></A>
+<BR>
+Installation
+</H1>   
+Required packages:
+
+<P>
+
+<UL>
+<LI>python 
+</LI>
+<LI>python-xml 
+</LI>
+<LI>python-htmltmpl 
+</LI>
+</UL>
+
+<P>
+Recommended packages:
+
+<P>
+
+<UL>
+<LI>Web Server (e.g. Apache) - <TT><A NAME="tex2html17"
+  HREF="http://httpd.apache.org">http://httpd.apache.org</A></TT> -  You
+    will need an web server, to be able to execute processes from remote
+    computers.
+
+<P>
+</LI>
+<LI>GIS GRASS  - <TT><A NAME="tex2html18"
+  HREF="http://grass.itc.it">http://grass.itc.it</A></TT> - Geographical Resources
+    Analysis Support System (GRASS) is Open Source GIS, which provides more
+    then 350 modules for raster and vector (2D, 3D) data analysis. PyWPS is
+    written with native support for GRASS and it's functions.
+
+<P>
+</LI>
+<LI>PROJ.4  - <TT><A NAME="tex2html19"
+  HREF="http://proj.maptools.org">http://proj.maptools.org</A></TT> - Cartographic
+    Projections library used in various Open Source projects, such as
+    GRASS, UMN MapServer, QGIS and others. It can be used e.g. for data
+    transformation.
+
+<P>
+</LI>
+<LI>GDAL/OGR  - <TT><A NAME="tex2html20"
+  HREF="http://gdal.org">http://gdal.org</A></TT> - translator library for
+    raster geospatial data formats, is used in various projects for
+    importing, exporting and transformation between various raster and vector
+    data formats.
+
+<P>
+</LI>
+<LI>R  - <TT><A NAME="tex2html21"
+  HREF="http://www.r-project.org">http://www.r-project.org</A></TT> - is a language and environment
+    for statistical computing and graphics.
+
+<P>
+</LI>
+</UL>
+
+<P>
+
+<H2><A NAME="SECTION00051000000000000000">
+Installation the quick 'n' dirty way</A>
+</H2>
+For installing pywps to your server simply unzip the archive to the
+directory, where cgi programs are allowed to run. You can also use current
+repository version.
+
+<P>
+<PRE>
+$ cd /usr/lib/cgi-bin/
+$ tar xvzf /tmp/pywps-VERSION.tar.gz
+$ pywps/wps.py
+</PRE>
+
+<P>
+
+<H2><A NAME="SECTION00052000000000000000">
+Installation the 'clean' way</A>
+</H2>
+Unzip the package 
+<PRE>
+$ tar -xzf pywps-VERSION.tar.gz
+</PRE>
+and run 
+<PRE>
+$ python setup.py install
+</PRE> 
+adjust the configuration file 
+<PRE>
+$ vim /etc/pywps.cfg
+</PRE> 
+permint write access to templates directory
+<PRE>
+# chmod -R 777 /usr/lib/python2.5/site-packages/pywps/Templates
+</PRE> 
+
+<P>
+Several binary packages for Linux distributios (<TT>RPM,DEB</TT>) are also avaliable on PyWPS
+homepage<A NAME="tex2html22"
+  HREF="#foot98"><SUP><SPAN CLASS="arabic">9</SPAN></SUP></A>.
+
+<P>
+
+<H1><A NAME="SECTION00060000000000000000"></A>
+<A NAME="configuration"></A>
+<BR>
+Configuration
+</H1>
+
+<P>
+Before you start to tune your PyWPS installation, you should get your copy of
+OpenGIS(R) Web Processing Service document (OGC  05-007r7) version
+1.0.0<A NAME="tex2html24"
+  HREF="#foot229"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A>.
+
+<P>
+
+<P>
+<BR>
+NOTE: Note, that the configuration option are CASE SENSITIVE
+<P>
+<BR>
+
+
+<P>
+Pywps configuration takes place in <TT>pywps.cfg</TT> file located in
+<TT>/etc/pywps.cfg</TT> or <TT>pywps/etc/pywps.cfg</TT>. 
+
+<P>
+Default configuration file is located in <TT>pywps/default.cfg</TT>, you
+can always make a copy of this file and start the configuration from
+scratch.
+
+<P>
+Several sections are in the file. 
+
+<UL>
+<LI>Section <SPAN  CLASS="textbf">[wps]</SPAN> contains general WPS settings, which are:
+        
+<UL>
+<LI>encoding - Language encoding (utf-8, iso-8859-2, windows-1250, ...)
+</LI>
+<LI>title - Server title 
+</LI>
+<LI>version - WPS version (1.0.0)
+</LI>
+<LI>abstract - Server anstract
+</LI>
+<LI>fees - Possible fees
+</LI>
+<LI>constraints - Possible constraints
+</LI>
+<LI>serveraddress - WPS script address: <TT><A NAME="tex2html26"
+  HREF="http://foo/bar/wps.py">http://foo/bar/wps.py</A></TT>
+</LI>
+<LI>keywords - Comma-separated list of kyewords
+</LI>
+<LI>lang - Default langue (eng)
+        
+</LI>
+</UL>
+</LI>
+<LI>Section <SPAN  CLASS="textbf">[provider]</SPAN> contains informations about you
+        
+<UL>
+<LI>providerName - Name of your company
+</LI>
+<LI>individualName - Your name
+</LI>
+<LI>positionName
+</LI>
+<LI>role 
+</LI>
+<LI>deliveryPoint - Street
+</LI>
+<LI>city
+</LI>
+<LI>postalCode
+</LI>
+<LI>country
+</LI>
+<LI>electronicMailAddress - foo at bar
+</LI>
+<LI>providerSite - <TT><A NAME="tex2html27"
+  HREF="http://foo.bar">http://foo.bar</A></TT>
+</LI>
+<LI>phoneVoice
+</LI>
+<LI>phoneFacsimile
+</LI>
+<LI>administrativeArea
+        
+</LI>
+</UL>
+</LI>
+<LI>Section <SPAN  CLASS="textbf">[server]</SPAN> contains server settings
+        
+<UL>
+<LI>maxoperations - Maximal number of parallel running
+            processes. If set to 0, then there is no limit.
+</LI>
+<LI>maxinputparamlength - Maximal length of string input
+            parameter.
+</LI>
+<LI>maxfilesize - Maximal input file size (raster or
+            vector). The size can be determined as follows: 1GB, 5MB, 3kB,
+            1000b.
+</LI>
+<LI>tempPath - Direcotory for temporary files (mostly
+            temporary GRASS locations).
+</LI>
+<LI>outputUrl - Url where the outputs are stored.
+</LI>
+<LI>outputPath - Path. where output files are stored.
+</LI>
+<LI>debug - true/false
+        
+</LI>
+</UL>
+</LI>
+<LI>Section <SPAN  CLASS="textbf">[grass]</SPAN> - GRASS GIS settings
+        
+<UL>
+<LI>path - $PATH variable, e.g. <TT>/usr/lib/grass/bin</TT>
+</LI>
+<LI>addonPath - $GRASS_ADDONS variable
+</LI>
+<LI>version - GRASS version
+</LI>
+<LI>gui - Should be "text"
+</LI>
+<LI>gisbase - Path to GRASS GIS_BASE directory
+            (<TT>/usr/lib/grass</TT>)
+</LI>
+<LI>ldLibraryPath - Path of GRASS Libs
+            (<TT>/usr/lib/grass/lib</TT>)
+        
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P>
+File example follows:
+<PRE>
+[wps]
+encoding=utf-8
+title=PyWPS Server
+version=1.0.0
+abstract=See http://pywps.wald.intevation.org and http://www.opengeospatial.org/standards/wps
+fees=None
+constraints=none
+serveraddress=http://localhost/cgi-bin/wps
+keywords=GRASS,GIS,WPS
+lang=eng
+
+[provider]
+providerName=Your Company Name
+individualName=Your Name
+positionName=Your Position
+role=Your role
+deliveryPoint=Street
+city=City
+postalCode=000 00
+country=eu
+electronicMailAddress=login at server.org
+providerSite=http://foo.bar
+phoneVoice=False
+phoneFacsimile=False
+administrativeArea=False
+
+[server]
+maxoperations=3
+maxinputparamlength=1024
+maxfilesize=3mb
+tempPath=/tmp
+outputUrl=http://localhost/wps/wpsoutputs
+outputPath=/var/www/wps/wpsoutputs
+debug=true
+
+[grass]
+path=/usr/lib/grass/bin/:/usr/lib/grass/scripts/
+addonPath=
+version=6.2.1
+gui=text
+gisbase=/usr/lib/grass/
+ldLibraryPath=/usr/lib/grass/lib
+</PRE>
+
+<P>
+subsectionTesting after installation
+<A NAME="testing"></A>For test, just run
+<TT>wps.py</TT> in your command line:
+
+<P>
+<PRE>
+$ ./wps.py "service=wps&amp;request=getcapabilities"
+
+INIT DONE
+LOADING PRECOMPILED
+TEMPLATE: UPTODATE
+PRECOMPILED: UPTODATE
+Content-type: text/xml
+
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;wps:Capabilities service="WPS" version="1.0.0" xml:lang="eng,ger"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:wps="http://www.opengis.net/wps/1.0.0"
+    xmlns:ows="http://www.opengis.net/ows/1.1"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
+    xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
+    http://schemas.opengis.net/wps/1.0.0/wpsGetCapabilities_response.xsd"
+    updateSequence="1"&gt;
+	&lt;ows:ServiceIdentification&gt;
+		&lt;ows:Title&gt;PyWPS Development Server&lt;/ows:Title&gt;
+    ...
+&lt;/wps:Capabilities&gt;
+</PRE>
+
+<P>
+If you got something like this, (Capabilities response), everything looks
+fine.
+
+<P>
+If you got some other message, like e.g.:
+
+<P>
+<PRE>
+Traceback (most recent call last):
+  File "/usr/bin/wps.py", line 221, in &lt;module&gt;
+    wps = WPS()
+  File "/usr/bin/wps.py", line 140, in __init__
+    self.performRequest()
+  File "/usr/bin/wps.py", line 188, in performRequest
+    from pywps.WPS.GetCapabilities import GetCapabilities
+  File "/usr/lib/python2.5/site-packages/pywps/WPS/GetCapabilities.py", line 26, in &lt;module&gt;
+    from Response import Response
+  File "/usr/lib/python2.5/site-packages/pywps/WPS/Response.py", line 28, in &lt;module&gt;
+    from htmltmpl import TemplateManager, TemplateProcessor
+ImportError: No module named htmltmpl
+</PRE>
+
+<P>
+Than something is wrong with your Python installation or with the program.
+This message means, that the python-htmltmpl package is not installed in
+your system.
+
+<P>
+
+<H1><A NAME="SECTION00070000000000000000"></A>
+<A NAME="processes"></A>
+<BR>
+Write your own processes
+</H1>
+
+<P>
+All processes are stored in the <TT>pywps/processes</TT> directory. You can
+create custom directory anywhere in your system and set
+<TT>$PYTHON_PROCESS</TT> environment variabl (how to do this for the web
+server, refer to your Server documentation). Following example will
+describe buffering process.  Several example processes are distributed along with PyWPS source code.
+
+<P>
+Create file <TT>exampleBufferProcess.py</TT> in PYWPS_PROCESSES directory.
+
+<P>
+Each process is stand-alone python script with one class <TT>Process</TT>,
+which has two methods: <TT>__init__, execute</TT>. It is possible also to add as 
+many your functions/methods, as you wish.
+
+<P>
+
+<H2><A NAME="SECTION00071000000000000000">
+Process initialization and configuration</A>
+</H2>
+
+<P>
+<PRE>
+  1 from pywps.Process.Process import WPSProcess                                
+  2 class Process(WPSProcess):
+  3     """Main process class"""
+  4     def __init__(self):
+  5         """Process initialization"""
+  7         # init process
+  8         WPSProcess.__init__(self,
+  9             identifier = "exampleBufferProcess",
+ 10             title="Buffer",
+ 11             version = "0.2",
+ 12             storeSupported = "true",
+ 13             statusSupported = "true",
+ 14             abstract="Create a buffer around an input vector file",
+ 15             grassLocation = True)
+</PRE>
+
+<P>
+We defined new process called <TT>exampleBufferProcess</TT>. The process is allowed to
+store it's output data on the server (<TT>storeSupported</TT>) and it is also possible to run it in
+asynchronous mode (<TT>statusSupported</TT>). The process will run within
+GRASS GIS environment (<TT>grassLocation = True</TT>).
+
+<P>
+
+<H4><A NAME="SECTION00071010000000000000">
+Metadata defition</A>
+</H4> is stored in array <TT>self.Metadata</TT> in
+<TT>__init__</TT> method. You can add new Medatada using
+<TT>self.AddMetadata()</TT> method:
+<PRE>
+            self.AddMetadata(identifier="point",type="point",
+                            textContent="Click in the map")
+</PRE>
+
+<P>
+
+<H3><A NAME="SECTION00071100000000000000">
+Data Inputs</A>
+</H3>
+
+<P>
+Three types of data inputs are defined:
+
+<UL>
+<LI>Literal Input - Basic literal input - single number or text
+    value
+</LI>
+<LI>ComplexValue Input  - Mostly vector file embded in input XML
+    request or reference (URL) to such file.
+</LI>
+<LI>BoundingBox Input - Coordinates for lower-left and upper-right
+    corner.
+</LI>
+</UL>
+
+<P>
+
+<H4><A NAME="SECTION00071110000000000000">
+ComplexInput</A>
+</H4>
+Complex input can be raster or vector file, to be processed. 
+
+<P>
+<PRE>
+ 18         self.dataIn = self.addComplexInput(identifier="data",
+ 19                              title = "Input data")
+ 20
+</PRE>
+
+<P>
+
+<H4><A NAME="SECTION00071120000000000000">
+LiteralInput</A>
+</H4>
+
+<P>
+With literal input, you can obtain any type of character string.
+
+<P>
+<PRE>
+ 21         self.widthIn = self.addLiteralInput(identifier = "width",
+ 22                              title = "Width")
+ 23
+</PRE>
+
+<P>
+For further documentation, refere example processes distributed with the
+source code as well as <TT>pydoc&nbsp;pywps/Wps/Process.py</TT>. This help is
+also available in
+<TT>process.html</TT><A NAME="tex2html28"
+  HREF="#foot230"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A> file distributed along with PyWPS
+source code.
+
+<P>
+
+<H3><A NAME="SECTION00071200000000000000">
+Data Outputs</A>
+</H3>
+Data outputs can be defined in similar way.
+
+<UL>
+<LI>Literal Output
+</LI>
+<LI>ComplexValue Outout
+</LI>
+<LI>BoundingBox Output
+</LI>
+</UL>
+
+<P>
+
+<H4><A NAME="SECTION00071210000000000000">
+ComplexValue Output</A>
+</H4>
+The complex value can be raster or vector file (or any other binary or text
+file).
+
+<P>
+<PRE>
+24        self.bufferOut = self.addComplexOutput(identifier="buffer",
+25                                title="Output buffer file")
+26
+</PRE>
+
+<P>
+
+<H4><A NAME="SECTION00071220000000000000">
+Literal Output</A>
+</H4>
+If you want to output any text string.
+<PRE>
+27          self.textOut = self.addLiteralOutput(identifier="text",
+28                               title="just some text")
+29
+</PRE>
+
+<P>
+
+<H2><A NAME="SECTION00072000000000000000">
+Process Programming</A>
+</H2>
+
+<P>
+The process must be defined in the <TT>execute(self)</TT> method. 
+Basicly, you want to get input values and set output values. For this
+purpose, you can use <TT>getValue(input_identifier)</TT> and
+<TT>setValue(output_identifier,value)</TT> methods of the input/output
+objects (see lower).
+
+<P>
+If you need to execute some shell command, you should use
+<TT>self.cmd(command,["string for standard input"])</TT> instead of e.g.
+<TT>os.system()</TT> or <TT>os.popen()</TT> functions.
+
+<P>
+Calculation progress can be set using <TT>self.status(string message,
+number percent)</TT> method.
+
+<P>
+Example follows:
+
+<P>
+<PRE>
+33     def execute(self):
+34         """Execute process.
+35         
+36         Each command will be executed and output values will be set
+37         """
+38 
+39         # run some command from the command line
+40         self.cmd("g.region -d")
+41 
+42         # set status value
+43         self.status.set("Importing data",20)
+44         self.cmd("v.in.ogr dsn=%s output=data" %\
+45                 (self.getInputValue('data')))
+46             
+47         self.status.set("Buffering",50)
+48         self.cmd("v.buffer input=data output=data_buff buffer=%s scale=1.0 tolerance=0.01" %\
+49                 (self.getInputValue('width')))
+50 
+51         self.status.set("Exporting data",90)
+52 
+53         self.cmd("v.out.ogr type=area format=GML input=data_buff dsn=out.xml olayer=path.xml")
+54         
+55         self.bufferOut.setValue("out.xml")
+56         self.textOut.setValue("ahoj, svete")
+57         return
+</PRE>
+
+<P>
+
+<H3><A NAME="SECTION00072100000000000000">
+Error handling</A>
+</H3>
+
+<P>
+At the end of the <TT>execute</TT> function, <TT>None</TT> value should be returned. Any other 
+value means, that the calculation will be stopped and error report will be
+returned back to the client, example:
+
+<P>
+<PRE>
+        def execute(self):
+            ...
+            return "Ups, something failed!"
+</PRE>
+
+<P>
+
+<H2><A NAME="SECTION00073000000000000000">
+Using GRASS GIS</A>
+</H2>
+
+<P>
+Configuration is done using standard pywps configuration file (see
+page<A HREF="pywps-howto.html#configuration"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="/usr/share/latex2html/icons/crossref.png"></A>).
+
+<P>
+If you want to use GRASS GIS commands in your process, and there is no
+GRASS Location to be used, you have to set <TT>grassLocation=True</TT> in
+process definition:
+
+<P>
+<PRE>
+         WPSProcess.__init__(self,
+             identifier = "exampleBufferProcess",
+             ....
+             grassLocation = True)
+</PRE>
+
+<P>
+In this case, temporary GRASS Location will be created and after the
+process is done, it will be deleted again. By default, no GRASS Location is
+created.
+
+<P>
+You can also work in existing GRASS Location, then just set the location
+path:
+<PRE>
+         WPSProcess.__init__(self,
+             identifier = "exampleBufferProcess",
+             ....
+             grassLocation = "/home/grass/grassdata/spearfish60")
+</PRE>
+
+<P>
+
+<H1><A NAME="SECTION00080000000000000000">
+Testing your new process</A>
+</H1>
+
+<P>
+To test your PyWPS installation, you run it either as Webserver
+cgi-application or in the command line directly. It is always good to start
+with the command line test, so do not have to check <TT>error.log</TT> of
+the web server.
+
+<P>
+
+<UL>
+<LI>GetCapabilities request (webserver)
+<PRE>
+./wps.py "service=wps&amp;request=getcapabilities"
+
+wget -nv -q -O - "http://localhost/cgi-bin/wps.py?\
+    service=Wps&amp;request=getcapabilities"
+</PRE>
+
+<P>
+</LI>
+<LI>DescribeProcess request:
+<PRE>
+./wps.py "version=1.0.0&amp;service=Wps&amp;request=DescribeProcess&amp;\
+    Identifier=bufferExampleProcess"
+
+wget -nv -q -O - "http://localhost/cgi-bin/wps.py?\
+    version=0.4.0&amp;service=Wps&amp;request=DescribeProcess&amp;\
+    Identifier=exampleBufferProcess"
+</PRE>
+
+<P>
+</LI>
+<LI>Execute request:
+            For data inputs encoding, using HTTP Get method, see
+            OGC 05-007r7<A NAME="tex2html29"
+  HREF="#foot242"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A>, page 38 &#8222;Execute HTTP GET request KVP
+            encoding``
+<PRE>
+./wps.py "version=1.0.0&amp;service=Wps&amp;\
+    request=Execute&amp;Identifier=exampleBufferProcess&amp;\
+    datainputs=data=http://foo/bar/roads.gml;width=0.5"
+</PRE>
+
+<P>
+</LI>
+</UL>
+
+<P>
+Some examples of XML request econding are available in doc/examples
+directory.
+
+<P>
+Before testing WPS via HTTP POST, you have to set <TT>REQUEST_METHOD</TT>
+environment variable, then you can redirect input XML into <TT>wps.py</TT>
+script via standard input:
+
+<P>
+<PRE>
+$ export REQUEST_METHOD=POST
+$ cat doc/wps_execute_request-responsedocument.xml|./wps.py
+</PRE>
+
+<P>
+
+<H1><A NAME="SECTION00090000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG>Implementation of OGC WPS standard: PyWPS</STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright &#169; 1993, 1994, 1995, 1996,
+Nikos Drakos, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright &#169; 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-split 0 pywps-howto.tex</TT>
+<P>
+The translation was initiated by Jachym Cepicky on 2008-08-28
+<BR><HR><H4>Footnotes</H4>
+<DL>
+<DT><A NAME="foot222">... Umwelt</A><A
+ HREF="pywps-howto.html#tex2html1"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html2"
+  HREF="http://dbu.de">http://dbu.de</A></TT>
+
+</DD>
+<DT><A NAME="foot223">...
+GDF-Hannover</A><A
+ HREF="pywps-howto.html#tex2html3"><SUP><SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html4"
+  HREF="http://gdf-hannover.de">http://gdf-hannover.de</A></TT>
+
+</DD>
+<DT><A NAME="foot224">...
+Sensing</A><A
+ HREF="pywps-howto.html#tex2html5"><SUP><SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html6"
+  HREF="http://www.bnhelp.cz">http://www.bnhelp.cz</A></TT>
+
+</DD>
+<DT><A NAME="foot225">...
+Cepicky</A><A
+ HREF="pywps-howto.html#tex2html7"><SUP><SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html8"
+  HREF="http://les-ejk.cz">http://les-ejk.cz</A></TT>
+
+</DD>
+<DT><A NAME="foot226">...
+Consortium</A><A
+ HREF="pywps-howto.html#tex2html9"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html10"
+  HREF="http://www.opengeospatial.org/standards/requests/28">http://www.opengeospatial.org/standards/requests/28</A></TT>
+
+</DD>
+<DT><A NAME="foot42">...
+GIS</A><A
+ HREF="pywps-howto.html#tex2html11"><SUP><SPAN CLASS="arabic">6</SPAN></SUP></A></DT>
+<DD>http://grass.itc.it
+
+</DD>
+<DT><A NAME="foot227">...
+list</A><A
+ HREF="pywps-howto.html#tex2html15"><SUP><SPAN CLASS="arabic">7</SPAN></SUP></A></DT>
+<DD>http://wald.intevation.org/mailman/listinfo/pywps-develPyWPS
+- development list
+
+</DD>
+<DT><A NAME="foot228">...
+bugtracker</A><A
+ HREF="pywps-howto.html#tex2html16"><SUP><SPAN CLASS="arabic">8</SPAN></SUP></A></DT>
+<DD>http://wald.intevation.org/tracker/?atid=174&amp;group_id=22&amp;func=browsePyWPS
+Bug tracker
+
+</DD>
+<DT><A NAME="foot98">...
+homepage</A><A
+ HREF="pywps-howto.html#tex2html22"><SUP><SPAN CLASS="arabic">9</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html23"
+  HREF="http://pywps.wald.intevation.org">http://pywps.wald.intevation.org</A></TT>
+
+</DD>
+<DT><A NAME="foot229">...
+1.0.0</A><A
+ HREF="pywps-howto.html#tex2html24"><SUP><SPAN CLASS="arabic">10</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html25"
+  HREF="http://www.opengeospatial.org/standards/wps">http://www.opengeospatial.org/standards/wps</A></TT>
+
+</DD>
+<DT><A NAME="foot230">...process.html</A><A
+ HREF="pywps-howto.html#tex2html28"><SUP><SPAN CLASS="arabic">11</SPAN></SUP></A></DT>
+<DD>http://wald.intevation.org/plugins/scmsvn/viewcvs.php/*checkout*/trunk/doc/process.html?rev=369&amp;root=pywpsDocumentation
+to Process.py module
+
+</DD>
+<DT><A NAME="foot242">... 05-007r7</A><A
+ HREF="pywps-howto.html#tex2html29"><SUP><SPAN CLASS="arabic">12</SPAN></SUP></A></DT>
+<DD><TT><A NAME="tex2html30"
+  HREF="http://opengeospatial.org/standards/wps/">http://opengeospatial.org/standards/wps/</A></TT>
+
+</DD>
+</DL>
+<DIV CLASS="navigation"><HR>
+<!--Navigation Panel-->
+<IMG WIDTH="81" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next_inactive"
+ SRC="/usr/share/latex2html/icons/nx_grp_g.png"> 
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="/usr/share/latex2html/icons/up_g.png"> 
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="/usr/share/latex2html/icons/prev_g.png">   
+<BR></DIV>
+<!--End of Navigation Panel-->
+<ADDRESS>
+Jachym Cepicky
+2008-08-28
+</ADDRESS>
+</BODY>
+</HTML>

Added: trunk/doc/html/pywps-schema.png
===================================================================
(Binary files differ)


Property changes on: trunk/doc/html/pywps-schema.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream



More information about the Pywps-commits mailing list