Bagaimana QGIS membuka dataset raster yang sangat besar (sekitar 40GB)?


8

Saya memiliki masalah dengan pustaka GDAL saat membuka file GeoTiff besar, dengan ukuran sekitar 32000x32000. Saya tidak dapat menggunakan ReadAsArrayfungsi karena ukuran maksimum array numpy di python. Tapi saya bertanya-tanya mengapa QGIS dapat membuka file itu dengan mudah. Apa teknik di baliknya?

Jawaban:


16

Jika QGIS dijalankan di jendela berukuran 1000x1000 piksel pada layar Anda, tidak perlu membaca semua 32000x32000 piksel untuk menampilkan peta. GDAL mencoba membaca data dari gambar sumber sehingga tidak ada data sama sekali yang dibaca melebihi kotak pembatas, dan jika gambar memiliki ikhtisar data berasal dari tingkat resolusi yang paling cocok untuk resolusi peta. Selalu ada beberapa overhead tetapi jika GDAL perlu membaca 2000x2000 piksel itu masih tidak seberapa dibandingkan dengan data 32000x32000 piksel.

Itu tergantung pada format gambar dan driver yang sesuai seberapa baik prinsip "read-only-what-you-need" bekerja. Jika Anda memiliki geotiff yang secara internal ubin ke 256x256 ubin dan yang berisi ikhtisar (atau lapisan piramida atau mengurangi resolusi dalam nama lain) GDAL dapat melakukannya dengan cukup baik. Di sisi lain, gambar PNG dan JPEG besar tidak efektif karena seluruh gambar harus didekompresi sebelum dimungkinkan untuk mengambil data dari beberapa wilayah kecil yang menarik.

Catatan: Orang mungkin tahu bahwa bahkan file GeoTIFF besar yang dikompres dengan metode JPEG tidak efektif sama sekali. Itu benar karena dalam kasus ini file TIFF adalah ubin dan ubin dikompresi dengan JPEG secara terpisah. GDAL memang perlu mendekompres setiap ubin sepenuhnya, tetapi karena ubin kecil dengan hanya 256x256 piksel operasinya kecil dan penggunaan memori rendah.

Baca tentang blok, windowing, dan ikhtisar dari http://www.gdal.org/gdal_tutorial.html

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.