如何通过postGIS将GeoTIFF导入GeoServer?


10

作为一个简单的测试用例,我试图配置OpenGeo的软件堆栈,以便可以将GeoTIFF显示为OSM等法线贴图的覆盖图。因此,我执行以下步骤:

  1. 使用postGIS创建空间数据库
  2. 将GeoTIFF加载到数据库中
  3. 将数据库导入到GeoServer
  4. 在GeoServer中将其预览为地图叠加层(例如,使用GeoExplorer或OpenLayers)

与将GeoTIFF直接导入到Geoserver(这很困难)相反,从数据库导入的表在GeoServer Web应用程序中被标记为“矢量数据”,而不是“栅格数据”。在图层预览中,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. template_postgis按照我在Ubuntu 12.04上进行操作时所记录的postGIS,以模板和端口5432为基础,创建空间数据库。
  2. 使用raster2pgsqlhttp://suite.opengeo.org/docs/dataadmin/pgGettingStarted/raster2pgsql.html)中的命令行从命令行将GeoTIFF加载到数据库中。

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

    哪里

    • -I:标记以创建用于性能的空间GiST索引
    • -C:标志以应用栅格约束
    • -s 32632test.tif工具报告的SRIDgdalinfo
    • test.tif:正确测试GeoTIFF
    • public.testTable:目标架构中的新表
    • -d test:启用空间的数据库
    • -U opengeo:数据库所有者(标准用户名)
  3. 官方研讨会所述,将数据库导入GeoServer

Answers:


7

安装Image Mosaic JDBC插件

一个GeoServer的网页在问题的根提示:

GeoServer不内置支持Postgis栅格列,必须通过扩展安装。继续进行Image Mosaic JDBC以获得安装详细信息。此扩展包括对Postgis栅格的支持。

我按照那里的复杂设置说明进行操作,并设法将ImageMosaicJDBC Raster数据源添加到我的GeoServer。

将GeoTIFF转换为8bit

当涉及到服务/预览图层时,数据无法正确显示,其他用户也无法体验[1]。如此处所述,将GeoTIFF文件从数据类型INT16预先转换为BYTE可以解决此问题(以降低色深为代价)。可以使用命令行工具gdal_translate进行转换

$ gdal_translate -ot BYTE input.tif output.tif

结论

您需要使用笨拙的ImageMosaicJDBC插件和8bit GeoTiffs才能使此功能正常运行。我不知道为什么预览模块(openLayer,GeoExt,JPEG预览...)不能使用16位色深。目前,我同意“ PostGIS栅格尚不具有这种生产使用水平”的评论[2]。


[1] 用于ImageMosaicJDBC(postgis栅格)层的空白预览图像

[2] PostGIS上的栅格数据

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.