Làm cách nào để nhập GeoTIFF qua postGIS vào GeoServer?


10

Như một trường hợp thử nghiệm đơn giản, tôi đang cố gắng định cấu hình ngăn xếp phần mềm của OpenGeo để tôi có thể hiển thị GeoTIFF dưới dạng lớp phủ cho bản đồ bình thường như OSM. Vì vậy, tôi thực hiện các bước sau:

  1. Tạo cơ sở dữ liệu không gian với postGIS
  2. Tải GeoTIFF vào cơ sở dữ liệu
  3. Nhập cơ sở dữ liệu vào GeoServer
  4. Xem trước nó dưới dạng lớp phủ bản đồ trong GeoServer (ví dụ: với GeoExplorer hoặc OpenLayers)

Trái với việc nhập trực tiếp GeoTIFF vào Geoserver (hoạt động ghê gớm), bảng được nhập từ cơ sở dữ liệu được đánh dấu là "dữ liệu vectơ" chứ không phải "dữ liệu raster" trong ứng dụng web GeoServer. Trong Bản xem trước lớp, GeoExplorer không hiển thị bất cứ thứ gì từ GeoTIFF và OpenLayers trả về tệp WMS báo cáo ServiceExeption:

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

Tôi tin rằng giải pháp này khá đơn giản nhưng có vẻ như tôi không hiểu cách GeoServer diễn giải dữ liệu raster được lưu trữ trong postGIS.

Ai đó có thể cho tôi biết tôi đang thiếu điểm gì không?


Các bước của tôi chi tiết:

  1. Tạo một cơ sở dữ liệu không gian với postGIS như tài liệu, lấy template_postgislàm mẫu và cổng 5432 khi tôi hoạt động trên Ubuntu 12.04.
  2. Tải GeoTIFF vào cơ sở dữ liệu từ dòng lệnh bằng cách sử dụng raster2pgsqlnhư trong ( 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
    

    Ở đâu

    • -I: cờ để tạo chỉ mục GiST không gian cho hiệu suất
    • -C: cờ để áp dụng các ràng buộc raster
    • -s 32632: SRID của test.tifbáo cáo bằng công cụgdalinfo
    • test.tif: kiểm tra GeoTIFF thích hợp
    • public.testTable: bảng mới trong lược đồ đích
    • -d test: cơ sở dữ liệu kích hoạt không gian
    • -U opengeo: chủ sở hữu cơ sở dữ liệu (tên người dùng chuẩn)
  3. Nhập cơ sở dữ liệu vào GeoServer như được mô tả trong hội thảo chính thức

Câu trả lời:


7

Cài đặt plugin Image khảm JDBC

Một trang web GeoServer gợi ý về gốc rễ của vấn đề:

GeoServer không được tích hợp sẵn với sự hỗ trợ cho các cột raster Postgis, nó phải được cài đặt thông qua một phần mở rộng. Tiếp tục với Image khảm JDBC để biết chi tiết cài đặt. Phần mở rộng này bao gồm hỗ trợ cho raster Postgis.

Tôi đã làm theo các hướng dẫn thiết lập phức tạp ở đó và quản lý để thêm Nguồn dữ liệu raster ImageMosaicJDBC vào GeoServer của tôi.

Chuyển đổi GeoTIFF thành 8 bit

Khi nói đến việc phục vụ / xem trước lớp, dữ liệu không được hiển thị đúng như người dùng khác đã trải nghiệm [1]. Như được mô tả ở đó, việc chuyển đổi trước tệp GeoTIFF từ kiểu dữ liệu INT16 sang BYTE đã giải quyết vấn đề (với giá của độ sâu màu thấp hơn). Việc chuyển đổi có thể được thực hiện bằng cách sử dụng công cụ dòng lệnh gdal_translate :

$ gdal_translate -ot BYTE input.tif output.tif

Phần kết luận

Bạn cần sử dụng plugin ImageMosaicJDBC cồng kềnh và GeoTiff 8 bit để mọi thứ hoạt động. Tôi không tìm hiểu lý do tại sao các mô-đun xem trước (openLayer, GeoExt, JPEG preview, ...) không hoạt động với độ sâu màu 16 bit. Hiện tại tôi đồng ý với nhận xét rằng "Raster PostGIS chưa có mức độ sử dụng sản xuất đó" [2].


[1] hình ảnh xem trước trống cho lớp ImageMosaicJDBC (postgis raster) .

[2] Dữ liệu raster trên PostGIS

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.