Come importare GeoTIFF tramite PostGIS in GeoServer?


10

Come semplice test case, sto cercando di configurare lo stack software di OpenGeo in modo tale da poter visualizzare un GeoTIFF come overlay su una normale mappa come OSM. Quindi eseguo i seguenti passaggi:

  1. Crea una base di dati spaziali con postGIS
  2. Carica il GeoTIFF nella base di dati
  3. Importa la base dati su GeoServer
  4. Visualizza l'anteprima come overlay della mappa in GeoServer (ad es. Con GeoExplorer o OpenLayers)

Contrariamente all'importazione diretta di GeoTIFF in Geoserver (che funziona formidabilmente), la tabella importata dalla base di dati è contrassegnata come "dati vettoriali" e non "dati raster" nell'applicazione Web GeoServer. Nell'anteprima dei livelli, GeoExplorer non visualizza nulla da GeoTIFF e OpenLayers restituisce un file WMS che riporta un ServiceExeption:

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

Credo che la soluzione sia abbastanza semplice ma sembra che non capisca come GeoServer interpreta i dati raster memorizzati in postGIS.

Qualcuno può dirmi che punto mi manca?


I miei passi in dettaglio:

  1. Crea una base di dati spaziali con PostGIS come documentato, prendendo template_postgiscome modello e porta 5432 mentre opero su Ubuntu 12.04.
  2. Caricare GeoTIFF nella base di dati dalla riga di comando utilizzando raster2pgsqlcome in ( http://suite.opengeo.org/docs/dataadmin/pgGettingStarted/raster2pgsql.html )

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

    dove

    • -I: flag per creare l'indice spaziale GiST per le prestazioni
    • -C: flag per applicare i vincoli raster
    • -s 32632: SRID di test.tifsegnalato dallo strumentogdalinfo
    • test.tif: test corretto GeoTIFF
    • public.testTable: nuova tabella nello schema di destinazione
    • -d test: database abilitato spazialmente
    • -U opengeo: proprietario del database (nome utente standard)
  3. Importa la base dati su GeoServer come descritto nell'officina ufficiale

Risposte:


7

Installa il plug-in JDBC di Image Mosaic

Una pagina Web di GeoServer suggerisce la radice del problema:

GeoServer non è integrato con il supporto per le colonne raster Postgis, deve essere installato tramite un'estensione. Passare a Image Mosaic JDBC per i dettagli di installazione. Questa estensione include il supporto per Postgis raster.

Ho seguito le complesse istruzioni di installazione e sono riuscito ad aggiungere un'origine dati raster ImageMosaicJDBC al mio GeoServer.

Convertire il GeoTIFF a 8 bit

Quando si tratta di servire / visualizzare in anteprima il livello, i dati non vengono visualizzati correttamente come sperimentato anche da un altro utente [1]. Come descritto qui, una precedente conversione del file GeoTIFF dal tipo di dati INT16 a BYTE ha risolto il problema (al prezzo di una profondità di colore inferiore). La conversione può essere effettuata utilizzando lo strumento da riga di comando gdal_translate :

$ gdal_translate -ot BYTE input.tif output.tif

Conclusione

È necessario utilizzare il plug-in ImageMosaicJDBC ingombrante e GeoTiffs a 8 bit per far funzionare la cosa. Non ho scoperto perché i moduli di anteprima (openLayer, GeoExt, anteprima JPEG, ...) non funzionino con profondità di colore a 16 bit. Per il momento concordo sul commento che "PostGIS raster non ha ancora quel livello di utilizzo della produzione" [2].


[1] immagine di anteprima vuota per il livello ImageMosaicJDBC (postgis raster) .

[2] Dati raster su PostGIS

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.