WPS: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
(Notizen zu PyWPS)
K (Frei zugaengliche WPS-Services)
 
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Die OGC Web Processing Service (WPS) Spezifikation von OGC und ISO 19100 bietet einen Zugriff auf räumliche Methoden übers Internet. Es ist eine Maschine-Maschine-Service-Schnittstelle, um Prozesse zu veröffentlichen, zu finden und zu binden und zwar in einer standardisierten Art.  
+
Die OGC Web Processing Service (WPS) Spezifikation von OGC und ISO 19100 bietet einen Zugriff auf räumliche Methoden übers Internet. Es ist eine Maschine-Maschine-Service-Schnittstelle, um Prozesse zu veröffentlichen, zu finden und zu binden und zwar in einer standardisierten Art. WPS is einer der wichtigen Standards für [[Geoprocessing]].
  
 
Siehe auch:
 
Siehe auch:
Zeile 5: Zeile 5:
 
* Web Feature Service ([[WFS]])
 
* Web Feature Service ([[WFS]])
  
== Kurzbeschreibung ==
+
 
 +
== Beschreibung ==
 
WPS unterstützt GET, POST und kann auch mit dem SOAP-Standard genutzt werden. Obwohl WPS speziell für die Arbeit mit räumlich referenzierten Daten konzipiert wurde, ist die Spezifikation geeignet für jede Art von Daten.
 
WPS unterstützt GET, POST und kann auch mit dem SOAP-Standard genutzt werden. Obwohl WPS speziell für die Arbeit mit räumlich referenzierten Daten konzipiert wurde, ist die Spezifikation geeignet für jede Art von Daten.
  
Zeile 13: Zeile 14:
 
# Der Request ''Execute'' löst den Prozess aus, dessen angekündigten Response .
 
# Der Request ''Execute'' löst den Prozess aus, dessen angekündigten Response .
  
WPS lässt sich beispielsweise mit den Open Source-Projekten PyWPS (siehe [[Python]]) und [[GRASS]] recht einfach realisieren.
+
WPS lässt sich beispielsweise mit den Open Source-Projekten PyWPS ([[Python]]) und [[GRASS]] recht einfach realisieren.
 +
 
 +
Hier eine sehr informative Webseite zu WPS: [http://geoprocessing.info/wpsdoc/ geoprocessing.info].
 +
 
 +
== Beispiele ==
  
== Liste von 'freien' WPS-Services ==
+
* kappasys.ch
 +
** GetCapabilities: http://www.kappasys.ch/pywps/pywps.cgi?REQUEST=GetCapabilities&SERVICE=WPS
  
* Kappasys: http://www.kappasys.ch/pywps/pywps.cgi
+
== Frei zugaengliche WPS-Services ==
* <s>SO!GIS: http://www.sogis1.so.ch/wps</s>
 
* deegree WPS: http://demo.deegree.org/deegree-wps
 
* 52n: http://swing.brgm.fr:8080/wps_1_0/WebProcessingService
 
* Agriculture and Agri-Food Canada: http://ngistc1.agr.gc.ca/geoproc2/servlet/SpatialOperation
 
  
Tipp: G*-Suche: http://www.google.ch/search?q=inurl%3Agetcapabilities+wps
+
WPS an der HSR:
 +
* [http://isochrone.ch isochrone.ch] - Erreichbarkeit mit dem öffentlichen Verkehr. [http://www.youtube.com/watch?v=VndIng2yPLs&feature=plcp Instruktions-Video].
 +
 
 +
Suchen von WPS auf Suchmaschinen, Katalogen und Registries:
 +
* G*-Suche:  
 +
** http://www.google.ch/search?q=%2BGetCapabilities+%2Bwps+%2B"SERVICE%3DWPS"
 +
** oder: ''allinurl:service "request=getcapabilities" WPS''
 +
* [http://openregistry.info/registry/service?REQUEST=Find&COLLECTION=WPS openregistry.info]
 +
 
 +
Liste von funktionierenden WPS-Services:
 +
* Kappasys (CH): http://www.kappasys.ch/pywps/pywps.cgi (ausser Overlay und Buffer)
 +
* 52north (DE): http://geoprocessing.demo.52north.org:8080/wps/
 +
* brgm.fr (FR): http://swing.brgm.fr:8080/wps_1_0/WebProcessingService (mit 52north-SW)
 +
* interessant: http://ows7.lat-lon.de/d3WPS_JTS/services
 +
* interessant: http://maps.dwd.de/geoserver/ows
 +
* interessant: http://zoo-project.org/cgi-bin-new/zoo_loader.cgi
 +
* http://deegree3-demo.deegree.org/deegree-wps-demo/services
 +
* http://www.geotests.net/cgi-bin/wps
 +
* http://giv-wfs.uni-muenster.de:8080/52n-wps-webapp-2.0-RC6-SNAPSHOT/WebProcessingService
 +
* http://geoportal.dlsi.uji.es/sextantewps100/WebProcessingService
 +
* http://sedac.ciesin.columbia.edu/wps/WebProcessingService
 +
* http://giv-uw.uni-muenster.de:8080/intamap/WebProcessingService
 +
* http://dev.bnhelp.cz/cgi-bin/inspirewps
 +
* http://apps.esdi-humboldt.cz/cgi-bin/pywps_3_0, http://apps.esdi-humboldt.cz/pywps/
 +
* http://ccip.lat-lon.de/ccip-wps/services
 +
 
 +
WPS-Services, die nicht funktionieren (QGIS WPS-Plugin gibt Error...):
 +
* SO!GIS (CH): <s>http://www.sogis1.so.ch/wps</s>
 +
* deegree (DE): http://demo.deegree.org/deegree-wps
 +
* Agriculture and Agri-Food Canada: <s>http://ngistc1.agr.gc.ca/geoproc2/servlet/SpatialOperation</s>
 +
* http://geoprocessing.demo.52north.org:8080/wps_grass/WebProcessingService
 +
* http://watzmann.geog.uni-heidelberg.de:8080/deegree/all/
 +
* http://demo.deegree.org/deegree-wps/
 +
* http://www.intamap.org/wps.py
 +
* http://demo.deegree.org/deegree-wps/services?REQUEST=GetCapabilities&version=0.4.0&service=WPS
  
 
== WPS Server-Software ==
 
== WPS Server-Software ==
Zeile 30: Zeile 66:
 
* PyWPS (Python): http://pywps.wald.intevation.org/ (mailing list [http://lists.wald.intevation.org/mailman/listinfo/pywps-devel pywps-devel])
 
* PyWPS (Python): http://pywps.wald.intevation.org/ (mailing list [http://lists.wald.intevation.org/mailman/listinfo/pywps-devel pywps-devel])
 
** [http://www.kralidis.ca/blog/2010/06/25/geoprocessing-with-ogr-and-pywps/ Blog zu 'Geoprocessing with OGR and PyWPS']
 
** [http://www.kralidis.ca/blog/2010/06/25/geoprocessing-with-ogr-and-pywps/ Blog zu 'Geoprocessing with OGR and PyWPS']
* WPServer: http://code.google.com/p/webprocessingserver/ , http://crschmidt.net/mapping/wpserverdemo/
+
** [http://les-ejk.cz/skoleni/pywps-de/ WPS Tutorial] von Jachym Cepicky an der FOSSGIS 09.
 +
* WPServer (Python): http://code.google.com/p/webprocessingserver/ , http://crschmidt.net/mapping/wpserverdemo/
 
* ZOO (C): http://www.zoo-project.org/
 
* ZOO (C): http://www.zoo-project.org/
 
* Deegree (Java): http://demo.deegree.org/deegree-wps
 
* Deegree (Java): http://demo.deegree.org/deegree-wps
 
* 52°North (Java): http://swing.brgm.fr:8080/wps_1_0/WebProcessingService
 
* 52°North (Java): http://swing.brgm.fr:8080/wps_1_0/WebProcessingService
 
+
* (im alpha-Stadium/verlassen? http://plwps.sourceforge.net/ )
 
=> Siehe auch [http://external.opengis.org/twiki_public/bin/view/WPS/ComplianceTestingResults2010 OGC's Compliance Testing Results 2010]
 
=> Siehe auch [http://external.opengis.org/twiki_public/bin/view/WPS/ComplianceTestingResults2010 OGC's Compliance Testing Results 2010]
  
Zeile 42: Zeile 79:
  
 
WPS Client-Software Open Source:
 
WPS Client-Software Open Source:
* ''QGIS Client Plugin'' (Python): http://www.kappasys.ch/cms/index.php?id=10 (Version ?)
+
* ''QGIS Client Plugin'' (Python): Siehe [[QGIS WPS Client]]
 
* ''WPSint'' (Java) - includes a generic client: http://wpsint.tigris.org/ (Version 0.4.0)
 
* ''WPSint'' (Java) - includes a generic client: http://wpsint.tigris.org/ (Version 0.4.0)
 
* ''52 North WPS udig client plug-in'' (Java) for generic WPS processing: http://incubator.52north.org/twiki/bin/view/Processing/52nUdigWPSClient
 
* ''52 North WPS udig client plug-in'' (Java) for generic WPS processing: http://incubator.52north.org/twiki/bin/view/Processing/52nUdigWPSClient
 +
* Legato WPS Client: lightweight web mapping client (JavaScript, OpenLayers). http://www.legato.net
  
 
== Notizen zu PyWPS ==
 
== Notizen zu PyWPS ==

Aktuelle Version vom 11. September 2012, 09:22 Uhr

Die OGC Web Processing Service (WPS) Spezifikation von OGC und ISO 19100 bietet einen Zugriff auf räumliche Methoden übers Internet. Es ist eine Maschine-Maschine-Service-Schnittstelle, um Prozesse zu veröffentlichen, zu finden und zu binden und zwar in einer standardisierten Art. WPS is einer der wichtigen Standards für Geoprocessing.

Siehe auch:

  • Web Map Service (WMS)
  • Web Feature Service (WFS)


Beschreibung

WPS unterstützt GET, POST und kann auch mit dem SOAP-Standard genutzt werden. Obwohl WPS speziell für die Arbeit mit räumlich referenzierten Daten konzipiert wurde, ist die Spezifikation geeignet für jede Art von Daten.

WPS definiert drei Operationen:

  1. Der Request GetCapabilities liefert als Response Metadaten in XML zurück.
  2. Der Request DescribeProcess liefert eine Beschreibung eines Prozesses in XML zurück, einschliesslich der Ein-und Ausgaben.
  3. Der Request Execute löst den Prozess aus, dessen angekündigten Response .

WPS lässt sich beispielsweise mit den Open Source-Projekten PyWPS (Python) und GRASS recht einfach realisieren.

Hier eine sehr informative Webseite zu WPS: geoprocessing.info.

Beispiele

Frei zugaengliche WPS-Services

WPS an der HSR:

Suchen von WPS auf Suchmaschinen, Katalogen und Registries:

Liste von funktionierenden WPS-Services:

WPS-Services, die nicht funktionieren (QGIS WPS-Plugin gibt Error...):

WPS Server-Software

WPS Server-Software Open Source:

=> Siehe auch OGC's Compliance Testing Results 2010

Bemerkung SK: Es sollte mit nicht allzu grossem Aufwand möglich sein, eine Server-Software-Komponente für PostGIS für PyWPS oder ZOO zu schreiben (als 'Service Provider').

WPS Client-Software

WPS Client-Software Open Source:

Notizen zu PyWPS

PyWPS implementiert OGC WPS 1.0.0 in Python

  • standardisiert die Beschreibung und Ausführung von entfernten Prozessen mit Fokus auf räumlichen Daten/Operationen
  • Hat native GRASS-Schnittstelle

Hier zwei Beispiel-Prozesse

  • Export: QGIS => Geo-DB
  • Import: Geo-DB => QGIS

Beispiel (aus Christian Schwartze, PGDay.eu 2010):

 class Process(WPSProcess):
 def __init__(self):
   WPSProcess.__init__(self, identifier = "import_img", title= "Grid Calculation", 
     version = "0.1", statusSupported = True)
 
   self.img = self.addComplexInput(identifier = "img", title = "Raster image", 
     abstract = „Raster file for import", maxmegabites = "500", 
     formats=[{"mimeType":"image/tiff"}])
   self.pyramids = self.addLiteralInput(identifier = "pyramids", 
     title = "Number of pyramid levels", type = types.IntType)
   self.gridsize = self.addLiteralInput(identifier = "gridsize", 
     title = "Block size in cells", type = types.IntType)
   […]
   self.debugOut = self.addLiteralOutput(identifier = "debug", 
     title = "Debug Output", type = types.StringType)
 
   def execute(self):
     self.cmd("r.in.gdal input=%s output=img location=newloc" %(self.img.value))
     self.cmd("g.gisenv set=LOCATION_NAME=newloc")
     […]
     self.cmd("r.to.vect input=img_mask output=img_mask_v feature=area")
     […]
     self.cmd("db.execute ‘ALTER TABLE ObereGera ADD COLUMN ax DOUBLE PRECISION’”)
     […]
     self.cmd(“awk ...”)
     […]
     self.debugOut.setValue("INFO: " + self.cmd("g.gisenv LOCATION_NAME"))
     return

Weblinks