Tôi có một tệp raster lớn (129600 x 64800 pixel) với các vùng nước toàn cầu (1 bit giá trị 0 và 1) và cố gắng trích xuất các bờ biển đại dương và nội địa.
Tôi đã thử với ArcGIS và QGIS để chuyển đổi từ raster sang polyline, nhưng phải mất nhiều thời gian.
Có ai biết một cách tốt hơn / nhanh hơn (Python hoặc R) hoặc một công cụ tốt hơn cho nhiệm vụ này không?
Cập nhật
- R: rasterToContour có thể nhanh và chính xác nhưng nếu bạn có bộ dữ liệu rất lớn như của tôi (8.398.080.000 pixel), bạn cần một lượng RAM rất lớn (hơn 16 GB) hoặc bạn buộc R phải xử lý nhiều hơn trên ổ cứng và nó cũng sẽ mất nhiều thời gian.
- Python / GDAL: gdal_poligonize tạo đa giác thay vì polylines
Cập nhật 2
- R rasterToContour: rasterToContour không cung cấp kết quả mong muốn. So với ArcGIS (raster to polygon theo sau là tính năng cho dòng), nó không trích xuất phác thảo pixel chính xác, như trong các ví dụ dưới đây.
CẬP NHẬT 3
Python / GDAL: Tôi đã chạy gdal_polygonize từ dòng lệnh với ArcGIS trên một tập dữ liệu thử nghiệm và kết quả rất rõ ràng:
- gdal: 49 giây
- ArcGIS: 1,84 giây