PyWPS 4
Development restart
Jáchym ˇCepický1
1http://les-ejk.cz
Geoinformatics, Prague 2013
TOC
1 PyWPS
2 PyWPS 4
PyWPS
OGC WPS on the Server
Since 2006
Python
http://pywps.wald.intevation.org
http://github.org/geopython/pywps
PyWPS - what it is NOT
PyWPS is no analytical tool or engine. It does not perform
any type of geospatial calculation.
PyWPS is not special XML parser or generator. It does not
validate your GMLs against given schemas (yet), it does
not build GML from Python objects.
It is not complicated
PyWPS - what it is NOT
PyWPS is no analytical tool or engine. It does not perform
any type of geospatial calculation.
PyWPS is not special XML parser or generator. It does not
validate your GMLs against given schemas (yet), it does
not build GML from Python objects.
It is not complicated
PyWPS - what it is NOT
PyWPS is no analytical tool or engine. It does not perform
any type of geospatial calculation.
PyWPS is not special XML parser or generator. It does not
validate your GMLs against given schemas (yet), it does
not build GML from Python objects.
It is not complicated
Keywords
Keywords
rather bike, then a car
Keywords
#small
Keywords
#modular
Keywords
#fast
Keywords
#easy
Keywords
#slick
Keywords
#accessories (GRASS, GDAL, Shapely, #python)
PyWPS 4
Started from scratch
Use Python 2.7 (for future 3.0 migration)
Try different interpreters of Python (pypy)
Easy parsing with lxml
Prepare for next WPS version
Change of the whole process concept
PyWPS 4
Started from scratch
Use Python 2.7 (for future 3.0 migration)
Try different interpreters of Python (pypy)
Easy parsing with lxml
Prepare for next WPS version
Change of the whole process concept
PyWPS 4
Started from scratch
Use Python 2.7 (for future 3.0 migration)
Try different interpreters of Python (pypy)
Easy parsing with lxml
Prepare for next WPS version
Change of the whole process concept
PyWPS 4
Started from scratch
Use Python 2.7 (for future 3.0 migration)
Try different interpreters of Python (pypy)
Easy parsing with lxml
Prepare for next WPS version
Change of the whole process concept
PyWPS 4
Started from scratch
Use Python 2.7 (for future 3.0 migration)
Try different interpreters of Python (pypy)
Easy parsing with lxml
Prepare for next WPS version
Change of the whole process concept
PyWPS 4
Started from scratch
Use Python 2.7 (for future 3.0 migration)
Try different interpreters of Python (pypy)
Easy parsing with lxml
Prepare for next WPS version
Change of the whole process concept
PyWPS 4
Started from scratch
Use Python 2.7 (for future 3.0 migration)
Try different interpreters of Python (pypy)
Easy parsing with lxml
Prepare for next WPS version
Change of the whole process concept
PyWPS 4
#geopython 2006
PyWPS 4
#geopython 2013
lxml http://lxml.org
GRASS-WPS, GRASS-Python
Werkzeug http://werkzeug.pocoo.org/
Python 3
Django
. . .
Process definition in PyWPS 3
class Buffer (WPSProcess ) :
def __init__ ( s e l f ) :
WPSProcess . __init__ ( self , i d e n t i f i e r =" buffe
s e l f . addComplexInput ( i d e n t i f i e r =" input " , . .
. . .
s e l f . addLiteralOutpu ( i d e n t i f i e r =" input " , . .
. . .
def execute ( s e l f ) :
. . .
return
Process definition in PyWPS 4 (proposal)
2-level APIs
Providing the low-level API (integration with GRASS,
writing a compatibility api for PyWPS-3, and defining a
bunch of processes programatically if the user needs that.
The process is just a callable
Inspired by Django
Upper-level API for easy user-written processes
PyWPS 4 - upper-level
class Buffer ( pywps . Process ) :
class Input :
distance = pywps . L i t e r a l ( value_type=pywps . F
layer = pywps . Complex ( a s _ f i l e =True , max_occ
class Output :
feature_count = pywps . L i t e r a l ( value_type=pyw
fortune = pywps . L i t e r a l ( value_type
def execute ( s e l f ) :
. . .
PyWPS 4 - low-level
def make_buffer ( request ) :
. . .
make_buffer_process = pywps . create_process (
i d e n t i f i e r = ’ makebuffer ’ , t i t l e = . . .
inputs =[
pywps . L i t e r a l ( i d e n t i f i e r = ’ distance ’ , value_
pywps . BoundingBox ( i d e n t i f i e r = ’ c l i p ’ ) ,
] ,
outputs =[
pywps . L i t e r a l ( i d e n t i f i e r = ’ feature_count ’ , v
pywps . L i t e r a l ( i d e n t i f i e r = ’ fortune ’ , value_ty
] ,
handler=make_buffer )
make_buffer_process ( )
Where, what, how, who?
http://github.org/jachym/pywps-4
Tests, Basic request parsing, process definition, . . .
Alex Morega @mgax, Jorge de Jesus, Jachym Cepicky
http://lists.osgeo.org/cgi-bin/mailman/
listinfo/pywps-dev
Where, what, how, who?
http://github.org/jachym/pywps-4
Tests, Basic request parsing, process definition, . . .
Alex Morega @mgax, Jorge de Jesus, Jachym Cepicky
http://lists.osgeo.org/cgi-bin/mailman/
listinfo/pywps-dev
Where, what, how, who?
http://github.org/jachym/pywps-4
Tests, Basic request parsing, process definition, . . .
Alex Morega @mgax, Jorge de Jesus, Jachym Cepicky
http://lists.osgeo.org/cgi-bin/mailman/
listinfo/pywps-dev
Where, what, how, who?
http://github.org/jachym/pywps-4
Tests, Basic request parsing, process definition, . . .
Alex Morega @mgax, Jorge de Jesus, Jachym Cepicky
http://lists.osgeo.org/cgi-bin/mailman/
listinfo/pywps-dev
thank you!
jachym@les-ejk.cz
http://github.org/jachym/pywps-4
questions?

PyWPS Development restart

  • 1.
    PyWPS 4 Development restart JáchymˇCepický1 1http://les-ejk.cz Geoinformatics, Prague 2013
  • 2.
  • 3.
    PyWPS OGC WPS onthe Server Since 2006 Python http://pywps.wald.intevation.org http://github.org/geopython/pywps
  • 4.
    PyWPS - whatit is NOT PyWPS is no analytical tool or engine. It does not perform any type of geospatial calculation. PyWPS is not special XML parser or generator. It does not validate your GMLs against given schemas (yet), it does not build GML from Python objects. It is not complicated
  • 5.
    PyWPS - whatit is NOT PyWPS is no analytical tool or engine. It does not perform any type of geospatial calculation. PyWPS is not special XML parser or generator. It does not validate your GMLs against given schemas (yet), it does not build GML from Python objects. It is not complicated
  • 6.
    PyWPS - whatit is NOT PyWPS is no analytical tool or engine. It does not perform any type of geospatial calculation. PyWPS is not special XML parser or generator. It does not validate your GMLs against given schemas (yet), it does not build GML from Python objects. It is not complicated
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    PyWPS 4 Started fromscratch Use Python 2.7 (for future 3.0 migration) Try different interpreters of Python (pypy) Easy parsing with lxml Prepare for next WPS version Change of the whole process concept
  • 16.
    PyWPS 4 Started fromscratch Use Python 2.7 (for future 3.0 migration) Try different interpreters of Python (pypy) Easy parsing with lxml Prepare for next WPS version Change of the whole process concept
  • 17.
    PyWPS 4 Started fromscratch Use Python 2.7 (for future 3.0 migration) Try different interpreters of Python (pypy) Easy parsing with lxml Prepare for next WPS version Change of the whole process concept
  • 18.
    PyWPS 4 Started fromscratch Use Python 2.7 (for future 3.0 migration) Try different interpreters of Python (pypy) Easy parsing with lxml Prepare for next WPS version Change of the whole process concept
  • 19.
    PyWPS 4 Started fromscratch Use Python 2.7 (for future 3.0 migration) Try different interpreters of Python (pypy) Easy parsing with lxml Prepare for next WPS version Change of the whole process concept
  • 20.
    PyWPS 4 Started fromscratch Use Python 2.7 (for future 3.0 migration) Try different interpreters of Python (pypy) Easy parsing with lxml Prepare for next WPS version Change of the whole process concept
  • 21.
    PyWPS 4 Started fromscratch Use Python 2.7 (for future 3.0 migration) Try different interpreters of Python (pypy) Easy parsing with lxml Prepare for next WPS version Change of the whole process concept
  • 22.
  • 23.
  • 24.
    lxml http://lxml.org GRASS-WPS, GRASS-Python Werkzeughttp://werkzeug.pocoo.org/ Python 3 Django . . .
  • 25.
    Process definition inPyWPS 3 class Buffer (WPSProcess ) : def __init__ ( s e l f ) : WPSProcess . __init__ ( self , i d e n t i f i e r =" buffe s e l f . addComplexInput ( i d e n t i f i e r =" input " , . . . . . s e l f . addLiteralOutpu ( i d e n t i f i e r =" input " , . . . . . def execute ( s e l f ) : . . . return
  • 26.
    Process definition inPyWPS 4 (proposal) 2-level APIs Providing the low-level API (integration with GRASS, writing a compatibility api for PyWPS-3, and defining a bunch of processes programatically if the user needs that. The process is just a callable Inspired by Django Upper-level API for easy user-written processes
  • 27.
    PyWPS 4 -upper-level class Buffer ( pywps . Process ) : class Input : distance = pywps . L i t e r a l ( value_type=pywps . F layer = pywps . Complex ( a s _ f i l e =True , max_occ class Output : feature_count = pywps . L i t e r a l ( value_type=pyw fortune = pywps . L i t e r a l ( value_type def execute ( s e l f ) : . . .
  • 28.
    PyWPS 4 -low-level def make_buffer ( request ) : . . . make_buffer_process = pywps . create_process ( i d e n t i f i e r = ’ makebuffer ’ , t i t l e = . . . inputs =[ pywps . L i t e r a l ( i d e n t i f i e r = ’ distance ’ , value_ pywps . BoundingBox ( i d e n t i f i e r = ’ c l i p ’ ) , ] , outputs =[ pywps . L i t e r a l ( i d e n t i f i e r = ’ feature_count ’ , v pywps . L i t e r a l ( i d e n t i f i e r = ’ fortune ’ , value_ty ] , handler=make_buffer ) make_buffer_process ( )
  • 29.
    Where, what, how,who? http://github.org/jachym/pywps-4 Tests, Basic request parsing, process definition, . . . Alex Morega @mgax, Jorge de Jesus, Jachym Cepicky http://lists.osgeo.org/cgi-bin/mailman/ listinfo/pywps-dev
  • 30.
    Where, what, how,who? http://github.org/jachym/pywps-4 Tests, Basic request parsing, process definition, . . . Alex Morega @mgax, Jorge de Jesus, Jachym Cepicky http://lists.osgeo.org/cgi-bin/mailman/ listinfo/pywps-dev
  • 31.
    Where, what, how,who? http://github.org/jachym/pywps-4 Tests, Basic request parsing, process definition, . . . Alex Morega @mgax, Jorge de Jesus, Jachym Cepicky http://lists.osgeo.org/cgi-bin/mailman/ listinfo/pywps-dev
  • 32.
    Where, what, how,who? http://github.org/jachym/pywps-4 Tests, Basic request parsing, process definition, . . . Alex Morega @mgax, Jorge de Jesus, Jachym Cepicky http://lists.osgeo.org/cgi-bin/mailman/ listinfo/pywps-dev
  • 33.