Chuyển đổi dữ liệu raster thành dữ liệu đa giác


12

Tôi đang cố gắng chuyển đổi dữ liệu raster thành dữ liệu đa giác. Trước đây tôi đã sử dụng shapefile.py để tạo dữ liệu điểm trên lat / lon riêng lẻ trên raster. Nhưng điều đó sẽ tạo ra một dữ liệu khổng lồ và truy vấn nó sẽ là một vấn đề lớn.

Vì vậy, sẽ tốt hơn nếu tôi có thể chuyển đổi dữ liệu raster thành dữ liệu đa giác. Tôi đã có thể tìm thấy SAGA , nhưng dường như nó chỉ có thể chuyển đổi các tệp .grd . Có cách nào để chuyển đổi định dạng GeoTIFF hoặc bộ dữ liệu raster nói chung sang Đa giác không?

CẬP NHẬT: Sử dụng gdal_polygonize.py

Tôi đang thực thi dòng mã sau đây,

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

Nhưng tôi nhận được lỗi sau. Phiên bản gdal của tôi là 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
Nếu bạn đang thực hiện phân loại đất bằng tiff, hãy kiểm tra liên kết ( gis.stackexchange.com/q/29570/8104 ) trong đó có một phương pháp để chuyển đổi tiff thành đa giác bằng cách sử dụng phân loại khả năng tối đa không được giám sát.
Aaron

cảm ơn @Aaron nhưng tôi cần làm việc với nguồn mở trong dự án này
Sam007

Có cách nào để chuyển đổi 200 tifs cùng một lúc không?
Benjo

Câu trả lời:


21

Hãy thử gdal_polygonize.py . Ví dụ: để tạo Shapefile mylayer.shptừ đầu vào myraster.tif:

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

hoặc để xuất trực tiếp vào cơ sở dữ liệu PostGIS (xem chi tiết trình điều khiển PostgreSQL / PostGIS cho GDAL ):

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

(bỏ qua thông báo "LRI 1: Không tìm thấy định nghĩa trường nào cho thông báo 'mylayer', đây có phải là bảng không?"

Có các ràng buộc Python bên dưới GDALPolygonize , nếu bạn cần công cụ này tùy chỉnh.


Cảm ơn Mike. Hãy để tôi thử. Ngoài ra, thay vì xuất nó dưới dạng shapefile, tôi có thể gán trực tiếp phần này vào PostGIS và truy cập nó từ Geoserver.
Sam007

@ Sam007 yup, đầu ra PostGIS cũng hoạt động, xem cập nhật
Mike T

Có lỗi này tại sao tạo shapefile. Không thêm vào cơ sở dữ liệu postgis. dpaste.de/L8tSK Có vấn đề gì không nếu GeoTIFF nằm trong một thư mục khác?
Sam007

Trông giống như một lỗi gây mất tập trung, liên quan đến các ràng buộc SWIG được sử dụng bởi Python. Bạn có phiên bản GDAL nào và bạn đã cài đặt nó như thế nào?
Mike T

1
@ Sam007 Hãy thử sudo apt-get install python-gdal, nhưng nếu nó không hoạt động, thì có, gửi một câu hỏi mới. Tôi vẫn chưa có ý định kiểm tra xem nó hoạt động như thế nào hay không với OpenGeo.
Mike T
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.