-
Notifications
You must be signed in to change notification settings - Fork 117
FOSS4G 2018 conference talk
Jachym, Luís, Jonas, (who else?)
WPS, Web Processing Service, Geoprocessing, Python, PyWPS
PyWPS is an open source, light-weight, Python based, implementation of the OGC Web Processing Service (WPS) standard. It provides users with a relatively seamless environment where to code geo-spatial functions and models that are readily exposed to the Internet through the WWW.
Initially started in 2006, PyWPS has been re-written several times; the current 4.x version takes advantage of the state-of-the-art Python infrastructure in order to provide new and useful features. The current version implements the WPS 1.0 standard entirely. The publication of WPS version 2.0 - which brings forth important new functionalities - also prompted this re-structuring of the code for PyWPS version 4.
PyWPS offers a straightforward WPS development framework with the increasingly popular Python language. Python offers access to a vast array of code libraries that can be easily used in the processes, in particular those for geo-spatial data manipulation, e.g. GRASS, GDAL/OGR, Fiona, Shapely, etc., but also to statistics packages (e.g. rpy2 for R statistics) and data analysis tools (e.g. pandas). PyWPS offers storage mechanisms for process inputs and outputs and spawns processes to the background for asynchronous execution requests.
The last 12 months of development brought new and important features to PyWPS. One example is the usage of Docker containers, process load balancing using a scheduler system like Slurm and GridEngine and more. Future goals of the project include automatic publication of geo-spatial results through a WFS/WCS server such as MapServer or Geoserver, data storage using PostgreSQL, support for OWS Context and others.
The authors present general project news such as the recent successful finish to the OSGeo incubation process, the new Project Steering Committee constitution, as well as the current state of PyWPS. It will also be demonstrated how to take advantage of the functionalities currently being provided.