Apa perbedaan antara gdalwarp dan gdal_merge untuk mosaicing


14

Saya ingin menggabungkan sekitar 20 dem tiff masing-masing sekitar 100MB, dan saya menggunakan gdalwarp (saya tahu tentang opsi file virtual):

gdalwarp $(list_of_tiffs) merged.tiff

Namun perintah ini memakan waktu sangat lama, dan setelah beberapa 15 menit itu memproses gambar ke-5 dari set. Saya menghentikannya.

Saya kemudian menemukan bahwa skrip gdal_merge.py dapat digunakan juga untuk mosaicing, dan mencobanya:

gdal_merge.py $(list_of_tiffs)

yang selesai dalam waktu kurang dari 3 menit.

Seperti yang saya harapkan bahwa kedua perintah akan menghasilkan hasil yang sama, saya bertanya-tanya apa perbedaan antara keduanya, mengapa gdalwarp membutuhkan banyak waktu jika hasilnya sama?

Jawaban:


21

Meskipun saya tidak tahu mengapa GDAL menyediakan fungsi yang tumpang tindih ini, pastikan untuk mengatur cache untuk gdalwarp agar sangat cepat:

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

Pastikan untuk tidak mendefinisikan lebih banyak cache daripada memiliki RAM pada mesin.


Tidak tahu tentang tombol tuning ini, yang memang mempercepat proses. Untuk referensi 3000 adalah 3GB (info lebih lanjut trac.osgeo.org/gdal/wiki/UserDocs/GdalWarp ) Saya memiliki NumPy build dengan MKL di sistem saya Python, tetapi masih gdalwarpharus melakukan sesuatu yang lebih, karena NumPy tidak dapat lebih cepat daripada C implementasi, walaupun bisa mencapainya.
zetah

adalah 3000 benar-benar 3GB atau haruskah 3072?
miln40

13

Saya kebetulan menemukan pertanyaan ini dan jawaban potensial ketika mencari sesuatu yang lain.

gdal_merge.py menggunakan resampling tetangga terdekat. Jika Anda ingin kontrol atas resampling yang digunakan, Anda harus menggunakan gdalwarp sebagai gantinya.

sumber: trac.osgeo.org


5

gdal_merge.py memuat semua file ke dalam memori sebelum memprosesnya. karena itu tidak dapat memproses file besar jika memori Anda kecil. lihat di sini

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.