Quelle est la différence entre gdalwarp et gdal_merge pour le mosaïquage

14

Je voulais fusionner environ 20 fichiers de démonstration chacun autour de 100 Mo, et j'ai utilisé gdalwarp (je connais l'option de fichier virtuel):

gdalwarp $(list_of_tiffs) merged.tiff

Cependant, cette commande a pris très longtemps, et après environ 15 minutes, elle traitait la 5ème image de l'ensemble. Je le résilie.

J'ai ensuite trouvé que le script gdal_merge.py peut également être utilisé pour le mosaïquage, et je l'ai essayé:

gdal_merge.py $(list_of_tiffs)

qui s'est terminée en moins de 3 minutes.

Comme je m'attendais à ce que les deux commandes produisent le même résultat, je me demande quelle est la différence entre les deux, pourquoi gdalwarp prend autant de temps si le résultat est le même?

zetah
la source

Réponses:

21

Bien que je ne sache pas pourquoi GDAL fournit ce chevauchement de fonctionnalités, assurez-vous de définir le cache pour gdalwarp pour le rendre très rapide:

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

Assurez-vous de ne pas définir plus de cache que d'avoir de RAM sur la machine.

markusN
la source
Je n'avais aucune idée de ce commutateur de réglage, ce qui accélère en effet le processus. Pour la référence 3000 est 3 Go (plus d'informations trac.osgeo.org/gdal/wiki/UserDocs/GdalWarp ) J'ai construit NumPy avec MKL dans mon système Python, mais je dois encore gdalwarpfaire quelque chose de plus, car NumPy ne peut pas être plus rapide que C mise en œuvre, mais peut y parvenir.
zetah
est 3000 vraiment 3 Go ou devrait-il être 3072?
miln40
13

Je suis tombé sur cette question et une réponse potentielle lorsque je cherchais autre chose.

gdal_merge.py utilise le rééchantillonnage du plus proche voisin. Si vous souhaitez contrôler le rééchantillonnage utilisé, vous devez utiliser gdalwarp à la place.

source: trac.osgeo.org

dhewlett
la source
5

gdal_merge.py charge tous les fichiers en mémoire avant de les traiter. il n'est donc pas en mesure de traiter des fichiers volumineux si votre mémoire est petite. voir ici

joaoal
la source