Rasterkartenalgebra in Open Source Web GIS durchführen?

9

Die Kartenalgebra für Raster ist mit ArcGIS Raster Calculator (oder QGIS) einfach. Ich hatte gedacht, dass dies auch mit Web-GIS-Servern wie GeoServer und MapServer sowie OpenLayers usw. einfach sein würde. Was ich erreichen möchte, ist, einfache Dinge wie das Teilen von zwei Bildern zu tun und ein drittes Verhältnisbild zu erzeugen, das auf der Webseite angezeigt wird. Ich habe Wochen damit verbracht, eine Lösung zu finden, und es stellt sich heraus, dass es (für mich) ziemlich schwierig ist.

Ich habe einige Dinge ausprobiert, darunter:

  1. PostGIS-Raster. Ich denke, Rasteralgebra ist hier kein Problem.

    Das Laden von PostGIS-Raster in GeoServer ist jedoch ziemlich schwierig. Es werden immer wieder Fragen zum Laden von pgraster in GeoServer gestellt. Siehe z. B. Wie importiere ich GeoTIFF über postGIS in GeoServer? ? , /gis/86006/publish-rasters-stored-in-postgresql-with-geoserver ?, unter anderem. Keine einzige Antwort hier in GIS.SE oder auf der offiziellen GeoServer-Website enthält eine vollständige Liste der Schritte, die zur Arbeit ausgeführt werden können. Das Laden von pgraster in MapServer hat Erfolg gemeldet, jedoch mit sehr langsamer Leistung. Beide scheinen einige Kacheln zu erfordern, und ein einzeiliger Befehl zum Importieren eines Rasters auf einen der beiden Server scheint nicht in Frage zu kommen.

  2. GeoTIFF

    GeoTIFF lässt sich leicht in GeoServer und MapServer laden. Aber was können wir damit machen? Ohne ein PostGIS wie SQL habe ich mich an WCS gewandt und kurz nach Kartenalgebra gesucht, aber nicht viel gefunden. Ist WCS mit aktuellen Servern ein praktikabler Weg dafür?

  3. Programmiere es auf die harte Tour

    Verwenden Sie AJAX, um eine PHP-Seite aufzurufen oder ein WPS mit GeoServer zu schreiben, um Bilder in PostGIS zu importieren, die Kartenalgebra auszuführen und dann den Ergebnis-Pgraster in ein Format (z. B. GeoTIFF) zu konvertieren, das einfach in GeoServer / MapServer geladen und angezeigt werden kann.

  4. Natürlich kann man Code schreiben, um GeoTIFFs direkt zu lesen und die Kartenalgebra ohne GIS-Unterstützung durchzuführen.

Keines der oben genannten Dinge scheint mir einfach oder vernünftig zu sein, wenn man bedenkt, mit welcher Leichtigkeit dieselbe Algebra in Desktop GIS ausgeführt werden kann.

Ich habe mich gefragt, ob jemand Erfahrung mit Map Algebra in einer Web-GIS-Umgebung hat und einen praktikablen Weg vorschlagen kann.

Ich interessiere mich für Open Source-Lösungen (aus politischen Gründen innerhalb meiner Organisation). Mir ist bekannt, dass ArcGIS Server den Python-Code von ArcGIS aufrufen kann, aber wir haben keine Lizenz und die Umgebung hier ist nicht günstig, um eine zu erwerben.

Tinlyx
quelle
"Gibt es einen vernünftigen Weg, um ..." ist eine wirklich wortreiche Formulierung (wobei z. B. "Wie geht das?" Ihre Frage als das, was ich vorgeschlagen hatte, tun Sie dies bitte. Auch halte ich das Wort „Software“ schließen Programmierung APIs und Bibliotheken, wie GDAL, so von dieser Auslegung Ihre Reversion meiner bearbeiten war wahrscheinlich unnötig. Tun Sie jedoch, was Sie möchten, wenn Sie der Meinung sind, dass dies Ihre Frage klärt.
blah238
@ blah238 Danke für die Änderungen :). Ich war wahrscheinlich wortreich, aber ich denke, es gibt offensichtlich Möglichkeiten, ... es ist nur so, dass sie im Vergleich zur ESRI / Desktop-Welt unangemessen erscheinen. Sie haben auch Recht, dass "Software" APIs enthalten kann. Ich möchte nur betonen, dass das Codieren von Grund auf eine Option ist, wenn es nichts anderes gibt, das einigermaßen einfach zu erreichende Kartenalgebra ist.
Tinlyx

Antworten:

4

Wenn Sie nur Open Source-Software verwenden, müssen Sie mit ziemlicher Sicherheit selbst programmieren. GDAL ist de facto die Open-Source-Raster-E / A-Bibliothek, daher werden Sie sie wahrscheinlich oder einen der vielen Wrapper verwenden. Sie können Python (z. B. rasterio + numpy / scipy ) oder node.js verwenden, z. B. node-gdal ( beachten Sie jedoch, dass es derzeit synchron / blockierend ist). Ich bin mir nicht sicher, was der beste Ansatz für die Implementierung als Webdienst ist, aber hier gibt es eine verwandte Frage: Vergleich verschiedener Open Source-GIS-Server?

Wenn Programmieren nicht Ihr Ding ist, können Sie sich FME Server ansehen . Es ist ein kommerzielles Produkt , aber wahrscheinlich wesentlich billiger als ArcGIS Server, und es hat alle Arten von Raster Berechnung Transformatoren , so dass ich ziemlich überrascht wäre , wenn sie nicht erreichen können , was Sie tun müssen. Sie müssten die Raster nicht in eine Datenbank laden, da sie aus nahezu jedem Rasterdateiformat gelesen werden kann .

Mit dem Serverteil können Sie die Transformationen (FME-Arbeitsbereiche) auf einem Server ausführen und eine API, z. B. die FME-Server-REST-API , verwenden, um diese Transformationen zu initiieren und auf die Ergebnisse zuzugreifen.

Der Hauptvorteil ist, dass Sie nicht viel programmieren müssen, um die Dienste zum Laufen zu bringen, sondern nur ein wenig Front-End-Codierung, um mit der API zu arbeiten.

blah238
quelle
+1 danke. Ich habe auch an Rasdaman gedacht. Ich kann programmieren, fühle mich aber viele Jahre nach der Kartenalgebra nicht richtig, wenn ich es programmiere.
Tinlyx
+1 Zur Unterstützung von Python + GDAL. Rasteralgebra mit Numpy zu machen ist ein Kinderspiel. Wenn Sie mit textbasierten Rastern (wie .asc-Dateien) arbeiten, benötigen Sie nicht einmal gdal (was je nach Installation schwierig zu installieren sein kann), indem Sie numpy.loadtxt verwenden (Überspringen der Kopfzeilen, Leerzeichen als Trennzeichen). etc)
user1269942
Mit rasdaman haben Sie die Möglichkeit, WCPS für die Verarbeitung auf dem Server zu verwenden, obwohl Sie wahrscheinlich einige Skripte erstellen müssen, um die WCPS-Syntax zu erstellen, da die manuelle Ausführung eine Herausforderung sein kann.
nmtoken
2

Was Sie suchen, ist ein Image-Server. ArcGIS for Server hat folgende Erweiterung:

ArcGIS Image Extension für Server

Ich kenne keine Open Source-Entsprechungen.

Pau
quelle
1
OP fragt, wie dies in einem Webkontext und nicht für eine ArcGIS-Erweiterung erfolgen soll.
John Powell
2
@ JohnBarça Die vorgeschlagene Erweiterung bezieht sich auf ArcGIS for Server und wird daher in einem Webkontext verwendet.
PolyGeo
@Pau Ich habe vergessen zu sagen, dass ich gezwungen bin, Open Source GIS zu verwenden. Aber danke für den Vorschlag. Es ist hilfreich.
Tinlyx
1
@TingL Sie können anfangen, nach Open-Source-Alternativen für Arcgis Image Server zu suchen
Pau
1

Sie können dies wahrscheinlich im Browser mit WebGL tun :

http://www.html5rocks.com/de/tutorials/webgl/webgl_fundamentals/

Es würde jedoch einige Programmierung und einen WebGL-kompatiblen Browser erfordern. Es sollte jedoch schnell sein, da in den meisten Fällen die GPU verwendet wird.

Spacedman
quelle
1
Vielen Dank. Haben Sie eine Referenz zum Umgang mit GIS-Daten wie GeoTIFF in WebGL?
Tinlyx