จะนำเข้า GeoTIFF ผ่าน postGIS ไปยัง GeoServer อย่างไร


10

เป็นกรณีทดสอบอย่างง่ายฉันพยายามกำหนดค่าซอฟต์แวร์สแต็คของ OpenGeo เพื่อให้ฉันสามารถแสดง GeoTIFF เป็นภาพซ้อนทับไปยังแผนที่ปกติเช่น OSM ดังนั้นฉันทำตามขั้นตอนต่อไปนี้:

  1. สร้างฐานข้อมูลเชิงพื้นที่ด้วย postGIS
  2. โหลด GeoTIFF ลงในฐานข้อมูล
  3. นำเข้าฐานข้อมูลไปยัง GeoServer
  4. ดูตัวอย่างเป็นภาพซ้อนทับแผนที่ใน GeoServer (เช่นกับ GeoExplorer หรือ OpenLayers)

ตรงกันข้ามกับการนำเข้าโดยตรงของ GeoTIFF ไปยัง Geoserver (ซึ่งทำงานได้ดีมาก) ตารางที่นำเข้าจากฐานข้อมูลจะถูกทำเครื่องหมายเป็น "ข้อมูลเวกเตอร์" และไม่ใช่ "ข้อมูลแรสเตอร์" ในเว็บแอปพลิเคชัน GeoServer ใน Layer Preview GeoExplorer ไม่แสดงอะไรจาก GeoTIFF และ OpenLayers ส่งคืนไฟล์ WMS ที่รายงาน a 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

ติดตั้งปลั๊กอิน Image Mosaic JDBC

GeoServer หน้าเว็บคำแนะนำที่รากของปัญหา:

GeoServer ไม่ได้มาพร้อมกับการสนับสนุนสำหรับคอลัมน์แรสเตอร์ Postgis นั้นจะต้องติดตั้งผ่านทางส่วนขยาย ดำเนินการ Image Image JDBC สำหรับรายละเอียดการติดตั้ง ส่วนขยายนี้รวมถึงการสนับสนุน Postgis raster

ฉันทำตามคำแนะนำในการตั้งค่าที่ซับซ้อนและจัดการเพิ่มImageMosaicJDBC Raster Data Sourceให้กับ GeoServer ของฉัน

แปลง GeoTIFF เป็น 8 บิต

เมื่อพูดถึงการแสดง / เลเยอร์เลเยอร์ข้อมูลจะไม่แสดงผลอย่างถูกต้องตามที่ผู้ใช้รายอื่นได้รับการฝึกฝน [1] ดังที่อธิบายไว้ที่นั่นการแปลงไฟล์ GeoTIFF ก่อนหน้านี้จากชนิดข้อมูล INT16 เป็น BYTE สามารถแก้ไขปัญหาได้ การแปลงสามารถทำได้โดยใช้เครื่องมือบรรทัดคำสั่งgdal_translate :

$ gdal_translate -ot BYTE input.tif output.tif

ข้อสรุป

คุณต้องใช้ปลั๊กอิน ImageMosaicJDBC ที่ยุ่งยากและ GeoTiff 8 บิตเพื่อให้อุปกรณ์ทำงานได้ ฉันไม่พบว่าทำไมโมดูลดูตัวอย่าง (openLayer, GeoExt, JPEG preview, ... ) ไม่ทำงานกับความลึกของสี 16 บิต ในขณะที่ฉันเห็นด้วยกับความคิดเห็นที่ "PostGIS แรสเตอร์ยังไม่มีระดับการผลิตที่ใช้" [2]


[1] ภาพตัวอย่างที่ว่างเปล่าสำหรับ ImageMosaicJDBC (PostGIS แรสเตอร์) ชั้น

[2] ข้อมูลแรสเตอร์บน PostGIS

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.