モザイクのgdalwarpとgdal_mergeの違いは何ですか


14

それぞれ約100 MBの約20個のdem tiffをマージしたかったので、gdalwarpを使用しました(仮想ファイルオプションについて知っています)。

gdalwarp $(list_of_tiffs) merged.tiff

ただし、このコマンドには非常に長い時間がかかり、約15分後にセットから5番目の画像を処理していました。終了します。

次に、gdal_merge.pyスクリプトがモザイクにも使用できることを発見し、試してみました。

gdal_merge.py $(list_of_tiffs)

3分以内に完了しました。

両方のコマンドで同じ結果が得られると思っていたので、結果が同じであるとgdalwarpに時間がかかるのはなぜですか?

回答:


21

GDALがこの機能のオーバーラップを提供する理由はわかりませんが、gdalwarpのキャッシュを設定して、本当に高速にするようにしてください。

# assuming 3G of cache here:
gdalwarp --config GDAL_CACHEMAX 3000 -wm 3000 $(list_of_tiffs) merged.tiff

マシンにRAMを搭載するよりも多くのキャッシュを定義しないでください。


実際にプロセスを高速化するこのチューニングスイッチについては考えもしませんでした。参考として3000は3GBです(詳細はtrac.osgeo.org/gdal/wiki/UserDocs/GdalWarp)。システムPythonでMKLを使用してNumPyをビルドしましたが、gdalwarpNumPyはCよりも高速ではないため、さらに何かをしなければなりません。実装、ただし到達することができます。
ゼータ

3000は本当に3GBですか、それとも3072ですか?
miln40

13

私はたまたま他の何かを探しているときにこの質問と潜在的な答えに出くわしました。

gdal_merge.pyは最近傍リサンプリングを使用します。使用するリサンプリングを制御する場合は、代わりにgdalwarpを使用する必要があります。

ソース:trac.osgeo.org


5

gdal_merge.pyは、すべてのファイルを処理する前にメモリにロードします。したがって、メモリが小さい場合、大きなファイルを処理できません。こちらをご覧ください

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