Como importar o GeoTIFF via postGIS para o GeoServer?

10

Como um caso de teste simples, estou tentando configurar a pilha de software do OpenGeo para exibir um GeoTIFF como uma sobreposição a um mapa normal como o OSM. Então, eu executo as seguintes etapas:

  1. Crie uma base de dados espaciais com o postGIS
  2. Carregue o GeoTIFF na base de dados
  3. Importar a base de dados para o GeoServer
  4. Visualize-o como uma sobreposição de mapa no GeoServer (por exemplo, com GeoExplorer ou OpenLayers)

Ao contrário de uma importação direta do GeoTIFF para o Geoserver (que funciona formidável), a tabela importada da base de dados é marcada como "dados vetoriais" e não "dados rasterizados" no aplicativo Web GeoServer. Na visualização de camada, o GeoExplorer não exibe nada do GeoTIFF e o OpenLayers retorna um arquivo WMS relatando ServiceExeption:

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

Acredito que a solução seja bastante simples, mas parece que não entendo como o GeoServer interpreta os dados raster armazenados no postGIS.

Alguém pode me dizer em que ponto estou perdendo?


Meus passos em detalhes:

  1. Crie uma base de dados espaciais com o postGIS conforme documentado, tomando template_postgiscomo modelo e porta 5432 como eu opero no Ubuntu 12.04.
  2. Carregue o GeoTIFF na base de dados na linha de comando usando raster2pgsqlcomo em ( 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

    Onde

    • -I: flag para criar o índice espacial GiST para desempenho
    • -C: sinalizador para aplicar as restrições de varredura
    • -s 32632: SRID test.tifrelatado pela ferramentagdalinfo
    • test.tif: teste adequado GeoTIFF
    • public.testTable: nova tabela no esquema de destino
    • -d test: banco de dados ativado espacialmente
    • -U opengeo: proprietário do banco de dados (nome de usuário padrão)
  3. Importe a base de dados para o GeoServer, conforme descrito no workshop oficial
xandriksson
fonte

Respostas:

7

Instale o plugin JDBC do Image Mosaic

Uma página da Web GeoServer indica a raiz do problema:

O GeoServer não é incorporado com suporte para colunas raster do Postgis, ele deve ser instalado através de uma extensão. Prossiga para o Image Mosaic JDBC para obter detalhes da instalação. Esta extensão inclui o suporte para o Postgis raster.

Segui as instruções de configuração complexas e consegui adicionar uma fonte de dados de varredura ImageMosaicJDBC ao meu GeoServer.

Converta o GeoTIFF em 8 bits

Quando se trata de servir / visualizar a camada, os dados não são exibidos corretamente, como também é experimentado por outro usuário [1]. Conforme descrito lá, uma conversão anterior do arquivo GeoTIFF do tipo de dados INT16 para BYTE resolveu o problema (ao preço de menor profundidade de cor). A conversão pode ser feita usando a ferramenta de linha de comando gdal_translate :

$ gdal_translate -ot BYTE input.tif output.tif

Conclusão

Você precisa usar o pesado plugin ImageMosaicJDBC e o GeoTiffs de 8 bits para fazer a coisa funcionar. Não descobri por que os módulos de visualização (openLayer, GeoExt, visualização em JPEG, ...) não funcionam com profundidade de cor de 16 bits. Por enquanto, concordo com o comentário de que "o PostGIS raster ainda não possui esse nível de uso de produção" [2].


[1] imagem de visualização em branco da camada ImageMosaicJDBC (postgis raster) .

[2] Dados rasterizados no PostGIS

xandriksson
fonte