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:
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.
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?
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.
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.
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle