Làm thế nào để QGIS mở bộ dữ liệu raster lớn như vậy (khoảng 40 GB)?


8

Tôi gặp vấn đề với thư viện GDAL khi mở tệp GeoTiff lớn, với kích thước khoảng 32000x32000. Tôi không thể sử dụng ReadAsArrayhàm vì kích thước tối đa của mảng numpy trong python. Nhưng tôi đang tự hỏi tại sao QGIS có thể mở tệp đó một cách dễ dàng. Kỹ thuật đằng sau là gì?

Câu trả lời:


16

Nếu QGIS chạy trong cửa sổ có kích thước 1000x1000 pixel trên màn hình của bạn thì không cần phải đọc tất cả 32000x32000 pixel để hiển thị bản đồ. GDAL cố gắng đọc dữ liệu từ hình ảnh nguồn để không có dữ liệu nào được đọc ngoài khung giới hạn và nếu hình ảnh có tổng quan thì dữ liệu đến từ mức độ phân giải phù hợp nhất với độ phân giải bản đồ. Luôn có một số chi phí nhưng nếu GDAL cần đọc 2000x2000 pixel thì nó vẫn không là gì so với giá trị dữ liệu 32000x32000 pixel.

Nó phụ thuộc vào định dạng hình ảnh và trình điều khiển tương ứng, nguyên tắc "chỉ đọc-những gì bạn cần" hoạt động tốt như thế nào. Nếu bạn có một vị trí địa lý được lát bên trong thành các ô 256x256 và có chứa các tổng quan (hoặc các lớp kim tự tháp hoặc giảm độ phân giải trong các tên khác), GDAL có thể làm điều đó khá tốt. Mặt khác, hình ảnh PNG và JPEG lớn không hiệu quả vì toàn bộ hình ảnh phải được giải nén trước khi có thể lấy dữ liệu từ một số khu vực nhỏ quan tâm.

Lưu ý: Người ta có thể biết rằng ngay cả các tệp GeoTIFF khổng lồ được nén bằng phương pháp JPEG cũng không hiệu quả. Điều đó đúng bởi vì trong trường hợp này, tệp TIFF được lát gạch và các ô được nén bằng JPEG riêng lẻ. GDAL không cần giải nén hoàn toàn từng ô, nhưng vì các ô nhỏ chỉ có 256x256 pixel nên thao tác nhỏ và sử dụng bộ nhớ thấp.

Đọc về các khối, cửa sổ và tổng quan từ http://www.gdal.org/gdal_tutorial.html

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.