Cepicky: Python Web Processing ServicePython Web Processing Service: OGC WPS, Implementierung undAnwendungJachym ČepickýOG...
zess kann auch im asynchronem Mode aufgerufen werden, so dass es im Hintergrundlauft und Klient kann in regelmäßigen Inter...
Cepicky: Python Web Processing ServiceÜberwachte Luftbilder KlassifizierungFür tschechisches Forsteinrichtung Institut wur...
Nächste SlideShare
Wird geladen in …5
×

Cepicky pywps

684 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
684
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Cepicky pywps

  1. 1. Cepicky: Python Web Processing ServicePython Web Processing Service: OGC WPS, Implementierung undAnwendungJachym ČepickýOGC Web Processing Service erreichte im Sommer 2007 die Version 1.0.0. Es ist einStandard, der beschreibt, wie Geoprozesse im Netzwerk nur Verfügung gestellt werdensollen. "Prozess" kann ein einfaches Algorithmus, aber auch komplexer Modell, sein.Benutzer für den Prozess auf, er wird aber nicht auf dem Desktop-PC, sondern aufdem Server ausgeführt. In dem Vortrag wird Implementation von WPS, Python WebProcessing Service (PyWPS), vorgestellt. Es wird gezeigt, wie es eingestellt werdenkann, um z.B. GRASS GIS Skripte über Netzwerk zur Verfügung stellen. Zusätzlichwerden einige Klientapplikationen gezeigt,die die Möglichkeit ausnutzen, jede GIS-Kal-kulation auf einem entfernten Server laufen zu lassen.Schlüsselwörter: GRASS GIS, OGC, PyWPS, Web Processing Service, WPSPyWPSPython Web Processing Service (PyWPS)1 existiert seit im Frühjahr 2006 als ein Pro-jekt, der den OGC Web Processing Service Standard auf Seite des Servers in PythonProgrammiersprache umsetzt. Vorteil des Projektes ist, dass man von Anfang an direktmit GRASS GIS als Hintergrund processing Werkzeug gezählt hat. Außer GRASSkönnen sowohl andere Kommandozeile orientiert Programme können auch angewen-det werden (R, GDAL/OGR, ...), als auch Python Packete, die zur Geodatenverarbei-tung dienen können (ArcGIS-Python Schnittstelle ist leider noch nicht getestet worden).Web Processing Service unterscheidet (ähnlich wie andere OGC W*Se) drei Anfragstü-pen: GetCapabilities, DescribeProcess und Execute. Mit GetCapabilities erfährt der Kli-ent, was für Prozesse auf dem Server zur Verfügung gestellt sind, mit DescribeProcessstellt man fest, was für Inputs konkrete Prozesse benötigen und was für Outputs derKlient erwarten kann. Mit Execute werden alle benötige Parameter zu dem Prozess ge-liefert und nach der Berechnung werden die Outputs zu dem Klient übergeben. Pro-Bild 1: PyWPS als Mediator zwischen Netzwerk (Internet) und Geowerkzeug (z.B. GRASS)1 http://pywps.wald.intevation.orgFOSSGIS 2008 Seite 1
  2. 2. zess kann auch im asynchronem Mode aufgerufen werden, so dass es im Hintergrundlauft und Klient kann in regelmäßigen Intervallen kontrollieren, wie weit die Berechnungist. Die Kommunikation funktioniert auf Basis von XML Dateien oder via HTTP Get An-frage, wo einzelne Inputparameter mit „&“ Zeichen separiert werden.PyWPS ist ein CGI-Skript, der mit WPS-Klient kommuniziert und übersetzt seine Anfra-gen so dass es GRASS verstehen kann und wenn alle benötige Berechnungen fertigsind, formuliert als WPS Response XML Dokument mit Ergebnissen zurück.Jeder Prozess ist in eine separate Datei gespeichert. Es handelt sich um Python Skript,in dem Kommandos des Betriebssystems aufgerufen werden können. PyWPS bieteteine Umgebung für Prozessprogrammierer, die die Prozessentwicklung einfacher ma-chen sollen. Dazu soll vor allem die Klasse Prozess dienen, mit Methoden wie GetIn-putValue(), SetOutputValue und SetStatus().PyWPS Kümmert sich darum, dass alle Inputdaten auf dem Harddisk gespeichert wer-den, bevor es zu eigener Berechnung kommt. Die Daten können nämlich auf einem an-derem Server liegen und PyWPS muss sie mit WFS oder WCS erstmal downloaden.Input Vektordaten können auch als Teil von input Execute XML (z.B. als GML-Datei)werden. PyWPS speichert alle so genannte ComplexInputs (Vektor- und Rasterdaten)in Datei und Prozessprogrammier arbeitet dann mit diesen Dateien.Beispielanwendungen – (Py)WPS ClientsOpenLayersOpenLayers ist eine freie JavaScript-Bibliothek zur Anzeige von dynamischen Kartenim Web-Browser. Dabei wird OpenLayers vor allem als Client für Web Map Serviceseingesetzt. Mit OpenLayers.Control.WPS2 Klasse kann man auf WPS Prozesse zugrei-fen und so web-basiertes GIS Viewer zu GIS zu machen. Bild 2: OpenLayers WPS Control2 http://dev.openlayers.org/sandbox/jachym/openlayers/lib/OpenLayers/Control/WPS.js 3
  3. 3. Cepicky: Python Web Processing ServiceÜberwachte Luftbilder KlassifizierungFür tschechisches Forsteinrichtung Institut wurde web-basierte Applikation für Über-wachte Luftbildklassifikation entwickelt. Mit Hilfe von OpenLayers kann der Benutzerneue Trainingsflächen definiert oder alte modifiziert. Trainingsflächen werden dann alsTeil von WPS Execute XML Datei auf den Server geschickt, wo der Luftbild mit GRASSModulen i.gensigset und i.smap klassifiziert wird. Ergebnis wird als PNG Datei direkt inOpenLayers Karte gezeigt mit dem Link zu Ergebnis GeoTIFF Datei. Postprocessingdes Ergebnisses ist auch möglich.AusblickPyWPS unterstützt leider nur alten WPS Standard 0.4.0. Neue Version (3.0.x) sollteWPS 1.0.0 als Ausgangsformat benutzen. Momentan wird der Quellcode komplett re-strukturiert so dass die Entwickelung in der Zukunft einfacher wird. Output XML Datei-en werden aus den Templates generiert (und nicht mit Hilfe von DOM in Python) undPyWPS sollte also auch niedrigeren Serverbelastung verursachen.Releaseplan: Sommer 2008. Patches graciously accepted!Kontakt zum Autor: Ing. Jáchym Čepický Help Service – Remote Sensing s.r.o. Černoleská 1600 +420 723 185 957 jachym@bnhelp.czFOSSGIS 2008 Seite 3

×