Wie importiere ich GeoTIFF über postGIS in GeoServer?

10

Als einfachen Testfall versuche ich, den Software-Stack von OpenGeo so zu konfigurieren, dass ich ein GeoTIFF als Overlay zu einer normalen Karte wie OSM anzeigen kann. Also führe ich die folgenden Schritte aus:

  1. Erstellen Sie mit postGIS eine Geodatenbank
  2. Laden Sie das GeoTIFF in die Datenbank
  3. Importieren Sie die Datenbank in GeoServer
  4. Vorschau als Kartenüberlagerung in GeoServer (z. B. mit GeoExplorer oder OpenLayers)

Im Gegensatz zu einem direkten Import des GeoTIFF in den Geoserver (der hervorragend funktioniert) wird die aus der Datenbank importierte Tabelle in der GeoServer-Webanwendung als "Vektordaten" und nicht als "Rasterdaten" markiert. In der Ebenenvorschau zeigt GeoExplorer nichts von GeoTIFF an und OpenLayers gibt eine WMS-Datei zurück, die Folgendes meldet ServiceExeption:

The requested Style can not be used with this layer.
The style specifies an attribute of geom and the layer is: opengeo:test

Ich glaube, die Lösung ist recht einfach, aber ich verstehe anscheinend nicht, wie GeoServer in postGIS gespeicherte Rasterdaten interpretiert.

Kann mir jemand sagen, welchen Punkt ich vermisse?


Meine Schritte im Detail:

  1. Erstellen Sie eine räumliche Datenbank mit postGIS, wie dokumentiert, und verwenden Sie sie template_postgisals Vorlage und Port 5432, wenn ich mit Ubuntu 12.04 arbeite.
  2. Laden Sie das GeoTIFF über die Befehlszeile raster2pgsqlwie in ( http://suite.opengeo.org/docs/dataadmin/pgGettingStarted/raster2pgsql.html ) in die Datenbank.

    raster2pgsql -I -C -s 32632 test.tif public.testTable
    | psql -d test -h localhost -U opengeo
    

    wo

    • -I: Flag, um den räumlichen GiST-Index für die Leistung zu erstellen
    • -C: Flag, um die Rastereinschränkungen anzuwenden
    • -s 32632: SRID von test.tifvom Tool gemeldetgdalinfo
    • test.tif: richtiger Test GeoTIFF
    • public.testTable: Neue Tabelle im Zielschema
    • -d test: räumlich aktivierte Datenbank
    • -U opengeo: Eigentümer der Datenbank (Standardbenutzername)
  3. Importieren Sie die Datenbank wie im offiziellen Workshop beschrieben in GeoServer
xandriksson
quelle

Antworten:

7

Installieren Sie das Image Mosaic JDBC-Plugin

Eine GeoServer-Webseite weist auf die Ursache des Problems hin:

GeoServer ist nicht mit Unterstützung für Postgis-Rasterspalten integriert, sondern muss über eine Erweiterung installiert werden. Weitere Informationen zur Installation finden Sie unter Image Mosaic JDBC. Diese Erweiterung enthält die Unterstützung für Postgis-Raster.

Ich habe dort die komplexen Setup-Anweisungen befolgt und es geschafft , meinem GeoServer eine ImageMosaicJDBC-Rasterdatenquelle hinzuzufügen .

Konvertieren Sie das GeoTIFF in 8bit

Wenn es darum geht, die Ebene bereitzustellen / in der Vorschau anzuzeigen, werden die Daten nicht richtig angezeigt, wie dies auch bei einem anderen Benutzer der Fall ist [1]. Wie dort beschrieben, wurde das Problem durch eine vorherige Konvertierung der GeoTIFF-Datei vom Datentyp INT16 in BYTE (zum Preis einer geringeren Farbtiefe) behoben. Die Konvertierung kann mit dem Befehlszeilentool gdal_translate erfolgen :

$ gdal_translate -ot BYTE input.tif output.tif

Fazit

Sie benötigen das umständliche ImageMosaicJDBC-Plugin und 8-Bit-GeoTiffs, um das Ding zum Laufen zu bringen. Ich habe nicht herausgefunden, warum die Vorschaumodule (openLayer, GeoExt, JPEG-Vorschau, ...) nicht mit 16-Bit-Farbtiefe funktionieren. Im Moment stimme ich dem Kommentar zu, dass "PostGIS-Raster noch nicht so produktiv genutzt werden" [2].


[1] leeres Vorschaubild für die Ebene ImageMosaicJDBC (Postgis-Raster) .

[2] Rasterdaten in PostGIS

xandriksson
quelle