WPS: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
(WPS Server Software (Open Source))
Zeile 15: Zeile 15:
 
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 (siehe [[Python]]) und [[GRASS]] recht einfach realisieren.
  
== WPS Server Software (Open Source) ==
+
== Liste von 'freien' WPS-Servern ==
 +
 
 +
G*-Suche: http://www.google.ch/search?q=inurl%3Agetcapabilities+wps
 +
 
 +
* Kappasys: http://www.kappasys.ch/pywps/pywps.cgi
 +
* <s>SO!GIS: http://www.sogis1.so.ch/wps</s>
 +
* deegree WPS: http://demo.deegree.org/deegree-wps
 +
* Agriculture and Agri-Food Canada: http://ngistc1.agr.gc.ca/geoproc2/servlet/SpatialOperation
 +
* 52n: http://swing.brgm.fr:8080/wps_1_0/WebProcessingService
  
 +
== WPS Server-Software ==
 +
 +
WPS Server-Software Open Source:
 
* 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']
Zeile 27: Zeile 38:
  
 
''Bemerkung SK'': Es sollte mit nicht allzu grossem Aufwand möglich sein, eine Server-Software-Komponente für PostGIS zu schreiben. Dafür könnte auch PyWPS oder ZOO als Basis dienen.
 
''Bemerkung SK'': Es sollte mit nicht allzu grossem Aufwand möglich sein, eine Server-Software-Komponente für PostGIS zu schreiben. Dafür könnte auch PyWPS oder ZOO als Basis dienen.
 +
 +
== WPS Client Software ==
 +
 +
 +
http://www.kappasys.ch/cms/index.php?id=10
  
 
== Notizen zu PyWPS ==
 
== Notizen zu PyWPS ==
Zeile 68: Zeile 84:
 
       self.debugOut.setValue("INFO: " + self.cmd("g.gisenv LOCATION_NAME"))
 
       self.debugOut.setValue("INFO: " + self.cmd("g.gisenv LOCATION_NAME"))
 
       return
 
       return
 
== Liste von 'freien' WPS-Servern ==
 
 
G*-Suche: http://www.google.ch/search?q=inurl%3Agetcapabilities+wps
 
 
* SO!GIS: http://www.sogis1.so.ch/wps / http://www.kappasys.ch/pywps/pywps.cgi
 
* deegree WPS: http://demo.deegree.org/deegree-wps
 
* Agriculture and Agri-Food Canada: http://ngistc1.agr.gc.ca/geoproc2/servlet/SpatialOperation
 
* 52n: http://swing.brgm.fr:8080/wps_1_0/WebProcessingService
 
  
 
== Weblinks ==
 
== Weblinks ==
 
* http://de.wikipedia.org/wiki/Web_Processing_Service
 
* http://de.wikipedia.org/wiki/Web_Processing_Service

Version vom 27. März 2011, 18:39 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.

Siehe auch:

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

Kurzbeschreibung

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 (siehe Python) und GRASS recht einfach realisieren.

Liste von 'freien' WPS-Servern

G*-Suche: http://www.google.ch/search?q=inurl%3Agetcapabilities+wps

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 zu schreiben. Dafür könnte auch PyWPS oder ZOO als Basis dienen.

WPS Client Software

http://www.kappasys.ch/cms/index.php?id=10

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