Open Source-Alternative zum ArcGIS-Geoverarbeitungs-Service-Konzept?

15

Ich suche nach Beispielen für die Implementierung einer Logik, die Esri mit Geoverarbeitungs-Services erstellt hat. Sie erstellen ein benutzerdefiniertes Tool oder es kann ein Systemtool sein. >> Sie veröffentlichen es und machen diese Funktionalität als Webdienst verfügbar. >> Sie verwenden den Webdienst mit einem Client.

Ein klassisches einfaches Beispiel: Der Benutzer kann auf die Karte klicken, um einen Punkt zu erstellen. Die Koordinaten werden an den Server gesendet. Die Pufferoperation wird am Back-End ausgeführt. Die Pufferzonenfunktion (oder nur ein Bild) wird an den Client zurückgesendet und auf der Karte Leinwand gezeigt. Ich habe Esri GP-Dienste für die letzten 3 Jahre entwickelt und es war eine schöne Erfahrung speziell seit Version 10.1.

Gibt es Beispiele für das Open-Source-System / die Open-Source-Lösung, mit denen eine ähnliche Logik erstellt werden könnte?

Ich habe gegoogelt und sextante gis gefunden, aber es gab nichts Spezifisches darüber, wie dies funktioniert und wie viel Logik, die über Esri verfügbar ist, verfügbar ist. Daran scheint auch Nord zu arbeiten, aber auch hier fehlt mir die klare Erklärung des Konzepts.

Alex Tereshenkov
quelle

Antworten:

6

Vorhandenes WPS verwenden oder erstellen

Eine vollständige Beschreibung / Anleitung zu Web Processing Services (WPS) finden Sie hier . Das meiste wird mithilfe von HTTP-Anforderungen erledigt, die an einen Server wie GeoServer gesendet werden, der diesen Prozess hostet . Der GeoServer-Link beschreibt den allgemeinen Prozess des Hosting und Aufrufs eines WPS mithilfe seiner Software. Die WPS-Erweiterung von GeoServer enthält JTS Topology Suite-Prozesse. Hierbei handelt es sich um eine Bibliothek allgemeiner räumlicher Funktionen wie Puffer- und Schnittmengenoperationen. Hier ist ihr Beispiel zum Ausführen einer Pufferoperation unter Verwendung der JTS-Bibliothek.

Andere Möglichkeiten

Es gibt aber auch andere Möglichkeiten. Unser Web-Team verwendet Abfragen für die PostGRE / PostGIS-Datenbank, um einfache Analysen durchzuführen, aber ich bin damit nicht vollständig vertraut.

Eine Idee, die ich zu erforschen begonnen habe, ist die Verwendung von Open-Source-Python-Skripten wie PySal / GDAL für die räumliche Analyse. Sie müssten JavaScript / AJAX (oder eine andere serverseitige Sprache) verwenden, um diese Skripts auf Ihrem Server auszuführen und die Ergebnisse zurückzuspucken. Es wäre eine komplizierte Option, aber ich glaube, es würde Ihnen bessere Anpassungsoptionen im Gegensatz zu ESRI bieten.

Ich denke, Sie sollten in der Lage sein, Features in einen GeoJSON-String aufzuteilen, um sie als Parameter in die Python-Skripte zu übergeben. Von dort müssten Sie das Ergebnis wieder in einen GeoJSON-String konvertieren, um es zur Anzeige an den Client zurückzuleiten. Python-Pakete wie Shapely können einen GeoJSON-String interpretieren. Für andere ist möglicherweise ein Workaround erforderlich, um GeoJSON zu verwenden, oder es gibt eine bessere Option, über die ich nicht nachgedacht habe.

Eine andere Möglichkeit wäre, mit GeoTools eine Java-Webanwendung zu schreiben, die eine räumliche Analyse durchführt. Dies unterstützt auch GeoJSON-Zeichenfolgen und verfügt über einige integrierte räumliche Analysefunktionen. Sie haben einige Screenshots, die ihre verschiedenen Anwendungen zeigen.

Es ist möglich, ein eigenes WPS zu erstellen oder ein serverseitiges Skript auszuführen. Es wird nicht so einfach sein, wie ESRI es macht, aber es wäre kostenlos, wenn Sie Open Source verwenden.

Egal für welche Route Sie sich entscheiden, aktualisieren Sie sie hier, da es sich um ein großartiges Thema handelt!

Branco
quelle
Vielen Dank, tolle Antwort. Sie haben eine der Alternativen genannt, an die ich gedacht habe: Auslösen von Python .py-Dateien von der JS-Webseite, die die von Benutzern übermittelten Daten speichern, diese Daten an die Python-Funktionen weiterleiten und dann die Ausgabeergebnisse an den Webbrowser zurückgeben. Die Sache hier ist, dass Sie die meisten GP-Tools von Grund auf neu schreiben müssten. Der von Ihnen freigegebene GeoTools-Link sieht jedoch interessant aus. Es wäre wirklich cool, ein Live-Beispiel eines GP-Vorgangs zu sehen, der im Back-End von GeoServer ausgeführt wird!
Alex Tereshenkov
2

Das OpenGeo-Plugin für Qgis kann die auf dem Geoserver gehosteten WPS-Dienste verwenden. Es funktioniert ähnlich wie die Toolbox von arcgis. Es ist erforderlich, dass der WPS-Dienst aktiviert ist und der Prozess verfügbar ist. Sie sollten auch pyWPS ausprobieren

John Jediny
quelle
Könnten Sie bitte das QGIS-Plugin näher erläutern? Wird es nur ein Desktop-Client sein, der WPS-Dienste nutzen kann? Ich bin daran interessiert, WPS-Dienste in einem ähnlichen Workflow wie Esri zu erstellen (oder in der Nähe davon, mit mehr Konfiguration und einer akzeptablen leichten Programmierung). Vielleicht können Sie Informationen zur Entwicklung des WPS-Dienstes von einem Desktop-GIS auf GeoServer oder eine andere GIS-Serverplattform übertragen.
Alex Tereshenkov