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.