Bagaimana cara mengimpor GeoTIFF via postGIS ke GeoServer?

10

Sebagai kasus uji sederhana, saya mencoba mengkonfigurasi tumpukan perangkat lunak OpenGeo sehingga saya dapat menampilkan GeoTIFF sebagai overlay ke peta normal seperti OSM. Jadi saya melakukan langkah-langkah berikut:

  1. Buat basis data spasial dengan postGIS
  2. Muat GeoTIFF ke dalam basis data
  3. Impor basis data ke GeoServer
  4. Pratinjau itu sebagai hamparan peta di GeoServer (mis. Dengan GeoExplorer atau OpenLayers)

Berlawanan dengan impor langsung GeoTIFF ke Geoserver (yang bekerja dengan sangat baik), tabel yang diimpor dari basis data ditandai sebagai "data vektor" dan bukan "data raster" di aplikasi web GeoServer. Dalam Pratinjau Lapisan, GeoExplorer tidak menampilkan apa pun dari GeoTIFF dan OpenLayers mengembalikan file WMS yang melaporkan ServiceExeption:

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

Saya percaya solusinya cukup sederhana tetapi sepertinya saya tidak mengerti bagaimana GeoServer menginterpretasikan data raster yang disimpan dalam postGIS.

Adakah yang bisa memberi tahu saya poin apa yang saya lewatkan?


Langkah-langkah saya secara rinci:

  1. Buat basis data spasial dengan postGIS seperti yang didokumentasikan, ambil template_postgissebagai templat dan port 5432 saat saya beroperasi di Ubuntu 12.04.
  2. Memuat GeoTIFF ke dalam basis data dari baris perintah menggunakan raster2pgsqlseperti dalam ( 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

    dimana

    • -I: tandai untuk membuat indeks GiST spasial untuk kinerja
    • -C: flag untuk menerapkan batasan raster
    • -s 32632: SRID test.tifdilaporkan oleh alatgdalinfo
    • test.tif: tes GeoTIFF yang tepat
    • public.testTable: tabel baru dalam skema target
    • -d test: basis data yang diaktifkan secara spasial
    • -U opengeo: pemilik basis data (nama pengguna standar)
  3. Impor basis data ke GeoServer seperti yang dijelaskan dalam lokakarya resmi
xandriksson
sumber

Jawaban:

7

Instal plugin Image Mosaic JDBC

Sebuah GeoServer laman web petunjuk pada akar masalahnya:

GeoServer tidak disertakan dengan dukungan untuk kolom raster Postgis, GeoServer harus diinstal melalui ekstensi. Lanjutkan ke Image Mosaic JDBC untuk detail pemasangan. Ekstensi ini termasuk dukungan untuk raster Postgis.

Saya mengikuti instruksi pengaturan yang rumit di sana dan berhasil menambahkan Sumber Data Raster ImageMosaicJDBC ke GeoServer saya.

Ubah GeoTIFF menjadi 8bit

Ketika datang untuk menyajikan / mempratinjau lapisan, data tidak ditampilkan dengan benar seperti yang dialami oleh pengguna lain [1]. Seperti dijelaskan di sana, konversi file GeoTIFF sebelumnya dari tipe data INT16 ke BYTE menyelesaikan masalah (dengan harga kedalaman warna yang lebih rendah). Konversi dapat dilakukan dengan menggunakan alat baris perintah gdal_translate :

$ gdal_translate -ot BYTE input.tif output.tif

Kesimpulan

Anda perlu menggunakan plugin ImageMosaicJDBC yang rumit dan GeoTiff 8bit untuk membuatnya berfungsi. Saya tidak mengetahui mengapa modul pratinjau (openLayer, GeoExt, pratinjau JPEG, ...) tidak berfungsi dengan kedalaman warna 16bit. Untuk saat ini saya setuju pada komentar bahwa "PostGIS raster belum memiliki tingkat penggunaan produksi" [2].


[1] gambar pratinjau kosong untuk lapisan ImageMosaicJDBC (postgis raster) .

[2] Data raster di PostGIS

xandriksson
sumber