# PyWPS and external tools

## GRASS GIS

PyWPS can handle all the management needed to setup temporal GRASS GIS environemtn (GRASS DBASE, Location and Mapset) for you. You just need to configure it in the `pywps.Process`, using the parameter `grass_location`, which can have 2 possible values:

`epsg:[EPSG_CODE]`
  New temporal location is created using the EPSG code given. PyWPS will create temporal directory as GRASS Location and remove it after the WPS Execute response is constructed.
`/path/to/grassdbase/location/`
  Existing absolute path to GRASS Location directory. PyWPS will create temporal GRASS Mapset direcetory and remove it after the WPS Exceute response is constructed.

Then you can use Python - GRASS interfaces in the execute method, to make the work.

Note

Even PyWPS supports GRASS integration, the data still need to be imported using GRASS modules `v.in.*` or `r.in.*` and also they have to be exported manually at the end.

    def execute(request, response):
            from grass.script import core as grass
            grass.run_command('v.in.ogr', input=request.inputs["input"][0].file,
            ...)
            ...
            grass.run_command('v.out.ogr', input="myvector", ...)

Also do not forget to set `gisbase` Configuration option.

## OpenLayers WPS client

## ZOO-Project

ZOO-Project provides both a server (C) and client (JavaScript) framework.

## QGIS WPS Client

The QGIS WPS client provides a plugin with WPS support for the QGIS Desktop GIS.