PyWPS is an implementation of the Web Processing Service standard from the Open Geospatial Consortium. PyWPS is written in Python.
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github updating pull request template as per #102 Mar 4, 2016
debian remove dependencies not required Mar 6, 2016
docs Merge pull request #172 from jachym/151_dblog2 Aug 28, 2016
pywps Merge pull request #174 from jonas-eberle/master Aug 28, 2016
tests Implementing SQLalchemy for logging mechanism Aug 27, 2016
.gitignore refresh docs Aug 22, 2016
.nojekyll refresh docs Aug 22, 2016
.travis.yml little fixes Jun 21, 2016
CONTRIBUTING.rst minor editorial updates [ci skip] Mar 5, 2016
CONTRIBUTORS.md update README, normalize text, abstract version Feb 15, 2016
INSTALL.md install demo with https://github.com:ldesousa/pywps-4-demo.git pywps-… Jun 20, 2016
LICENSE.txt update README, normalize text, abstract version Feb 15, 2016
MANIFEST.in update README, normalize text, abstract version Feb 15, 2016
README.md StatusSucceeded is not anymore related to update_status with 100% tha… Aug 28, 2016
VERSION.txt Adding RC1 candidate Aug 22, 2016
default-sample.cfg Adjust PyWPS configuration to pycsw (#67) Feb 17, 2016
requirements-dev.txt add code coverage workflows Feb 22, 2016
requirements-gdal.txt refactor build and centralize dependencies Feb 17, 2016
requirements-py2.txt refactor build and centralize dependencies Feb 17, 2016
requirements.txt Implementing SQLalchemy for logging mechanism Aug 27, 2016
setup.py refactor build and centralize dependencies Feb 17, 2016
tox.ini Implementing SQLalchemy for logging mechanism Aug 27, 2016

README.md

PyWPS

Join the chat at https://gitter.im/geopython/pywps

PyWPS is an implementation of the Web Processing Service standard from the Open Geospatial Consortium. PyWPS is written in Python.

Documentation Status Build Status Coverage Status PyPI GitHub license Gitter Chat

License

As of PyWPS 4.0.0, PyWPS is released under an MIT license (see LICENSE.txt).

Dependencies

See requirements.txt file

Run tests

pip install -r requirements-dev.txt
# run unit tests
python -m unittest tests
# run code coverage
python -m coverage run --source=pywps -m unittest tests
python -m coverage report -m

Run web application

Demo application

Clone demo app after having installed PyWPS:

git clone git://github.com/PyWPS/pywps-4-demo.git
cd demo/
python demo.py

Apache configuration

  1. Enable WSGI extension

  2. Add configuration:

    WSGIDaemonProcess pywps user=user group=group processes=2 threads=5
    WSGIScriptAlias /pywps /path/to/www/htdocs/wps/pywps.wsgi
    
    <Directory /path/to/www/htdocs/wps/>
        WSGIProcessGroup group
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
  3. Create wsgi file:

    #!/usr/bin/env python3
    import sys
    sys.path.append('/path/to/src/pywps/')
    
    import pywps
    from pywps.app import Service, WPS, Process
    
    def pr1():
        """This is the execute method of the process
        """
        pass
    
    
    application = Service(processes=[Process(pr1)])
  4. Run via web browser

    http://localhost/pywps/?service=WPS&request=GetCapabilities&version=1.0.0

  5. Run in command line:

    curl 'http://localhost/pywps/?service=WPS&request=GetCapabilities&version=1.0.0'

Issues

On Windows PyWPS does not support multiprocessing which is used when making requests storing the response document and updating the status to displaying to the user the progression of a process.