การแปลงข้อมูล Raster เป็นข้อมูลรูปหลายเหลี่ยม


12

ฉันพยายามแปลงข้อมูลแรสเตอร์เป็นข้อมูลรูปหลายเหลี่ยม ก่อนหน้านี้ฉันใช้ shapefile.py เพื่อสร้างข้อมูลจุดบน lat / lon เดี่ยว ๆ บน raster แต่นั่นจะสร้างข้อมูลขนาดใหญ่และการสืบค้นมันจะเป็นปัญหาใหญ่

ดังนั้นจะดีกว่าถ้าฉันสามารถแปลงข้อมูลแรสเตอร์เป็นข้อมูลรูปหลายเหลี่ยม ฉันสามารถค้นหาSAGAได้ แต่ดูเหมือนว่าจะสามารถแปลงไฟล์ . grdได้เท่านั้น มีวิธีแปลงรูปแบบ GeoTIFF หรือชุดข้อมูลแรสเตอร์โดยทั่วไปเป็นรูปหลายเหลี่ยมหรือไม่?

อัปเดต: การใช้ gdal_polygonize.py

ฉันกำลังเรียกใช้โค้ดต่อไปนี้

gdal_polygonize.py ~/development/Biodiversity/biodiversity/GeoTIFF/bio11.tif -f "ESRI Shapefile" bio11.shp

แต่ฉันได้รับข้อผิดพลาดดังต่อไปนี้ รุ่น gdal ของฉันคือ 1.9.0

Traceback (most recent call last):
  File "/usr/bin/gdal_polygonize.py", line 34, in <module>
    import gdal, ogr, osr
  File "/usr/lib/python2.7/dist-packages/gdal.py", line 2, in <module>
    from osgeo.gdal import deprecation_warn
  File "/usr/lib/python2.7/dist-packages/osgeo/__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "/usr/lib/python2.7/dist-packages/osgeo/__init__.py", line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: libjvm.so: cannot open shared object file: No such file or directory

1
หากคุณทำการจำแนกที่ดินด้วย tiffs ให้ตรวจสอบลิงก์ ( gis.stackexchange.com/q/29570/8104 ) ซึ่งมีวิธีการแปลง tiffs เป็นรูปหลายเหลี่ยมโดยใช้การจำแนกประเภทโอกาสสูงสุดที่ไม่ได้รับอนุญาต
แอรอน

ขอบคุณ @Aaron แต่ฉันต้องทำงานกับโอเพ่นซอร์สในโครงการนี้
Sam007

มีวิธีแปลง 200 tifs ในครั้งเดียวหรือไม่?
Benjo

คำตอบ:


21

ลองgdal_polygonize.py เช่นการสร้าง Shapefile mylayer.shpจากอินพุตmyraster.tif:

gdal_polygonize.py myraster.tif -f "ESRI Shapefile" mylayer.shp

หรือส่งออกไปยังฐานข้อมูล PostGIS โดยตรง (ดูรายละเอียดไดรเวอร์ PostgreSQL / PostGIS สำหรับ GDAL ):

gdal_polygonize.py myraster.tif -f PostgreSQL PG:"dbname='postgis' user='postgres'" mylayer

(ไม่สนใจข้อความ "ข้อผิดพลาด 1: ไม่พบคำจำกัดความของฟิลด์สำหรับ 'mylayer' เป็นตารางหรือไม่")

มีการผูก Python ไว้ใต้GDALPolygonizeหากคุณต้องการเครื่องมือนี้เอง


ขอบคุณไมค์ ให้ฉันลองดู นอกจากนี้แทนที่จะส่งออกเป็น shapefile ฉันสามารถกำหนดสิ่งนี้กับ PostGIS โดยตรงและเข้าถึงจาก Geoserver
Sam007

@ Sam007 yup ผลลัพธ์ของ PostGIS ก็ทำงานเช่นกันดูที่การอัปเดต
Mike T

มีข้อผิดพลาดนี้เพราะเหตุใดการสร้าง shapefile ไม่ได้เพิ่มลงในฐานข้อมูล postgis dpaste.de/L8tSKมันเป็นปัญหาไหมถ้า GeoTIFF อยู่ใน dir อื่น?
Sam007

ดูเหมือนว่ามีข้อผิดพลาดที่น่ารำคาญซึ่งเกี่ยวข้องกับการผูกมัด SWIG ที่ใช้โดย Python คุณมี GDAL รุ่นใดและคุณติดตั้งอย่างไร
Mike T

1
@ Sam007 ลองใช้sudo apt-get install python-gdalแต่ถ้าใช้ไม่ได้ให้ตอบคำถามใหม่ ฉันยังไม่ได้ลองทดสอบว่ามันใช้ได้กับ OpenGeo หรือไม่
Mike T
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.