QGISはどのようにして非常に大きなラスターデータセット(約40GB)を開くのですか?


8

サイズが約32000x32000の大きなGeoTiffファイルを開くと、GDALライブラリに問題があります。ReadAsArrayPythonのnumpy配列の最大サイズのため、関数を使用できません。しかし、なぜQGISがそのファイルを簡単に開けるのか疑問に思っています。背後にあるテクニックは何ですか?

回答:


16

QGISが画面上の1000x1000ピクセルサイズのウィンドウで実行されている場合、マップを表示するために32000x32000ピクセルをすべて読み取る必要はありません。GDALはソース画像からデータを読み取ろうとするため、境界ボックスのサイズを超えてデータが読み取られることはありません。また、画像に概要がある場合、データはマップの解像度に最適な解像度レベルから取得されます。オーバーヘッドは常に存在しますが、GDALが2000x2000ピクセルを読み取る必要がある場合、32000x32000ピクセル相当のデータと比較しても、それは何も起こりません。

これは、イメージの形式と対応するドライバーに応じて、「必要な読み取り専用」の原理がどの程度機能するかによって異なります。256x256タイルに内部的にタイル化され、概要(またはピラミッドレイヤーまたは他の名前の解像度の低下)を含むジオティフがある場合、GDALはそれを非常にうまく実行できます。一方、大きなPNGおよびJPEG画像は、関心のある小さな領域からデータを取得する前に画像全体を解凍する必要があるため、効果がありません。

注:JPEG方式で圧縮された巨大なGeoTIFFファイルでさえ、まったく非効率的ではないことを知っているかもしれません。この場合、TIFFファイルはタイリングされ、タイルはJPEGで個別に圧縮されるため、それは事実です。GDALは各タイルを完全に解凍する必要がありますが、タイルは小さく、256x256ピクセルしかないため、操作は小さく、メモリ使用量は少なくなります。

http://www.gdal.org/gdal_tutorial.htmlからブロック、ウィンドウ処理、概要について読む

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.