Comment importer GeoTIFF via postGIS dans GeoServer?

10

En tant que cas de test simple, j'essaie de configurer la pile logicielle d'OpenGeo de manière à pouvoir afficher un GeoTIFF en superposition sur une carte normale comme OSM. J'effectue donc les étapes suivantes:

  1. Créer une base de données spatiales avec postGIS
  2. Charger le GeoTIFF dans la base de données
  3. Importez la base de données dans GeoServer
  4. Prévisualisez-le sous forme de superposition de carte dans GeoServer (par exemple avec GeoExplorer ou OpenLayers)

Contrairement à une importation directe de GeoTIFF vers Geoserver (qui fonctionne formidablement), la table importée de la base de données est marquée comme "données vectorielles" et non "données raster" dans l'application Web GeoServer. Dans l'aperçu des couches, GeoExplorer n'affiche rien de GeoTIFF et OpenLayers renvoie un fichier WMS indiquant ServiceExeption:

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

Je pense que la solution est assez simple, mais il semble que je ne comprends pas comment GeoServer interprète les données raster stockées dans postGIS.

Quelqu'un peut-il me dire à quel point je manque?


Mes étapes en détail:

  1. Créez une base de données spatiales avec postGIS comme documenté, en prenant template_postgiscomme modèle et port 5432 pendant que j'opère sur Ubuntu 12.04.
  2. Chargez GeoTIFF dans la base de données à partir de la ligne de commande en utilisant raster2pgsqlcomme dans ( 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
    

    • -I: indicateur pour créer l'index GiST spatial pour les performances
    • -C: indicateur pour appliquer les contraintes raster
    • -s 32632: SRID de test.tifsignalé par l'outilgdalinfo
    • test.tif: bon test GeoTIFF
    • public.testTable: nouvelle table dans le schéma cible
    • -d test: base de données activée spatialement
    • -U opengeo: propriétaire de la base de données (nom d'utilisateur standard)
  3. Importez la base de données dans GeoServer comme décrit dans l' atelier officiel
xandriksson
la source

Réponses:

7

Installer le plugin Image Mosaic JDBC

Une page Web GeoServer fait allusion à l'origine du problème:

GeoServer n'est pas intégré avec la prise en charge des colonnes raster Postgis, il doit être installé via une extension. Passez à Image Mosaic JDBC pour les détails d'installation. Cette extension inclut la prise en charge du raster Postgis.

J'ai suivi les instructions de configuration complexes là-bas et j'ai réussi à ajouter une source de données raster ImageMosaicJDBC à mon GeoServer.

Convertir le GeoTIFF en 8 bits

Lorsqu'il s'agit de diffuser / prévisualiser la couche, les données ne s'affichent pas correctement, comme le fait également un autre utilisateur [1]. Comme décrit ici, une conversion préalable du fichier GeoTIFF du type de données INT16 en BYTE a résolu le problème (au prix d'une profondeur de couleur inférieure). La conversion peut être effectuée à l'aide de l'outil de ligne de commande gdal_translate :

$ gdal_translate -ot BYTE input.tif output.tif

Conclusion

Vous avez besoin d'utiliser le plugin ImageMosaicJDBC encombrant et GeoTiffs 8 bits pour faire fonctionner la chose. Je n'ai pas découvert pourquoi les modules de prévisualisation (openLayer, GeoExt, prévisualisation JPEG, ...) ne fonctionnent pas avec une profondeur de couleur de 16 bits. Pour l'instant, je suis d'accord sur le commentaire selon lequel "le raster PostGIS n'a pas encore ce niveau d'utilisation en production" [2].


[1] image d'aperçu vierge pour le calque ImageMosaicJDBC (postgis raster) .

[2] Données raster sur PostGIS

xandriksson
la source