Mozaik için gdalwarp ve gdal_merge arasındaki fark nedir


16

Her biri 100MB civarında 20 dem tiff'i birleştirmek istedim ve gdalwarp kullandım (sanal dosya seçeneğini biliyorum):

gdalwarp $(list_of_tiffs) merged.tiff

Ancak bu komut çok uzun zaman aldı ve 15 dakika sonra setten 5. görüntüyü işliyordu. Sonlandırıyorum.

Daha sonra gdal_merge.py betiğinin mozaikleme için de kullanılabileceğini buldum ve denedim:

gdal_merge.py $(list_of_tiffs)

hangi daha az 3 dakika içinde tamamlandı.

Her iki komutun da aynı sonucu vermesini beklediğim gibi, sonuç aynı ise gdalwarp neden bu kadar zaman alıyor?

Yanıtlar:


22

GDAL'ın neden bu çakışma işlevini sağladığını bilmesem de, gdalwarp için önbelleği gerçekten hızlı hale getirmek için ayarladığınızdan emin olun:

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

Makinede RAM'den daha fazla önbellek tanımlamadığınızdan emin olun.


Süreci hızlandıran bu ayar anahtarı hakkında hiçbir fikrim yoktu. Referans 3000 için 3GB (daha fazla bilgi trac.osgeo.org/gdal/wiki/UserDocs/GdalWarp ) Sistemim Python'da MKL ile NumPy derlemesine sahibim, ancak gdalwarpNumPy daha hızlı olamayacağı için yine de daha fazla bir şey yapıyor olmalı. uygulama, ancak ulaşabilirsiniz.
— zetah

gerçekten 3GB mı yoksa 3072 mi olmalı?
— miln40

15

Başka bir şey ararken bu soru ve potansiyel bir cevapla karşılaştım.

gdal_merge.py en yakın komşu yeniden örneklemesini kullanır. Kullanılan yeniden örnekleme üzerinde kontrol istiyorsanız, bunun yerine gdalwarp kullanmalısınız.

Kaynak: trac.osgeo.org


5

gdal_merge.py tüm dosyaları işlemeden önce belleğe yükler. bu nedenle hafızanız küçükse büyük dosyaları işleyemez. buraya bakın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.