Как импортировать GeoTIFF через PostGIS в GeoServer?

10

В качестве простого тестового примера я пытаюсь настроить программный стек OpenGeo так, чтобы я мог отображать GeoTIFF в качестве наложения на карту нормалей, например OSM. Поэтому я выполняю следующие шаги:

  1. Создать базу пространственных данных с помощью postGIS
  2. Загрузите GeoTIFF в базу данных
  3. Импортировать базу данных в GeoServer
  4. Предварительный просмотр его как наложение карты в GeoServer (например, с GeoExplorer или OpenLayers)

В отличие от прямого импорта GeoTIFF в Geoserver (который работает потрясающе), таблица, импортированная из базы данных, помечается как «векторные данные», а не как «растровые данные» в веб-приложении GeoServer. В предварительном просмотре слоя GeoExplorer не отображает ничего из GeoTIFF, а OpenLayers возвращает файл WMS, сообщающий ServiceExeption:

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

Я считаю, что решение довольно простое, но, похоже, я не понимаю, как GeoServer интерпретирует растровые данные, хранящиеся в postGIS.

Кто-нибудь может сказать мне, в какой момент я скучаю?


Мои шаги в деталях:

  1. Создайте базу пространственных данных с помощью postGIS, как описано, используя template_postgisшаблон и порт 5432, как я работаю в Ubuntu 12.04.
  2. Загрузите GeoTIFF в базу данных из командной строки, используя raster2pgsqlкак в ( 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: флаг для создания пространственного индекса GiST для производительности
    • -C: флаг для применения растровых ограничений
    • -s 32632: SRID test.tifсообщается инструментомgdalinfo
    • test.tif: правильный тест GeoTIFF
    • public.testTable: новая таблица в целевой схеме
    • -d test: пространственно активированная база данных
    • -U opengeo: владелец базы данных (стандартное имя пользователя)
  3. Импортируйте базу данных в GeoServer, как описано на официальном семинаре
xandriksson
источник

Ответы:

7

Установите плагин Image Mosaic JDBC

GeoServer веб - страницу намеков на корень проблемы:

GeoServer не поставляется встроенным с поддержкой растровых столбцов Postgis, его нужно устанавливать через расширение. Перейдите к Image Mosaic JDBC для подробностей установки. Это расширение включает в себя поддержку растра Postgis.

Я выполнил сложные инструкции по установке и сумел добавить источник растровых данных ImageMosaicJDBC в мой GeoServer.

Конвертировать GeoTIFF в 8 бит

Когда дело доходит до обслуживания / предварительного просмотра слоя, данные не отображаются должным образом, как это делал другой пользователь [1]. Как описано здесь, предварительное преобразование файла GeoTIFF из типа данных INT16 в BYTE решило проблему (по цене с более низкой глубиной цвета). Преобразование можно выполнить с помощью инструмента командной строки gdal_translate :

$ gdal_translate -ot BYTE input.tif output.tif

Вывод

Вам нужно использовать громоздкий плагин ImageMosaicJDBC и 8-битные GeoTiffs, чтобы все заработало. Я не выяснил, почему модули предварительного просмотра (openLayer, GeoExt, JPEG preview, ...) не работают с 16-битной глубиной цвета. На данный момент я согласен с комментарием о том, что «растр PostGIS еще не имеет такого уровня производственного использования» [2].


[1] Пустое изображение предварительного просмотра для слоя ImageMosaicJDBC (постгисный растр) .

[2] Растровые данные на PostGIS

xandriksson
источник