What's the difference between gdalwarp and gdal_merge for mosaicing

While I don't know why GDAL provides this overlap in functionality, be sure to set the cache for gdalwarp to make it really fast:

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

Be sure to not define more cache than having RAM on the machine.


I just happened to come across this question and a potential answer when looking for something else.

gdal_merge.py uses nearest neighbor resampling. If you want control over the resampling used, you should use gdalwarp instead.

source: trac.osgeo.org


gdal_merge.py loads all files into memory before processing them. therefore it is not able to process large files if your memory is small. see here