Як імпортувати 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, як описано в офіційному семінарі

Відповіді:


7

Встановіть плагін JDBC Image Mosaic

Веб- сторінка GeoServer натякає на корінь проблеми:

GeoServer не вбудований з підтримкою растрових стовпців Postgis, його потрібно встановити через розширення. Перейдіть до зображення JDBC Image Mosaic, щоб отримати детальну інформацію про встановлення. Це розширення включає підтримку растру 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 попередній перегляд, ...) не працюють з 16-бітовою глибиною кольору. На даний момент я погоджуюся з коментарем, що "растр PostGIS ще не має такого рівня виробництва" [2].


[1] пусте попереднє зображення для шару ImageMosaicJDBC (растровий постгістр) .

[2] Растрові дані щодо PostGIS

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.