gdalwarp和gdal_merge进行镶嵌有什么区别


14

我想合并约20个dem转换,每个约100MB,而我使用了gdalwarp(我知道虚拟文件选项):

gdalwarp $(list_of_tiffs) merged.tiff

但是,此命令花费的时间很长,大约15分钟后,它正在处理集合中的第5张图像。我终止它。

然后,我发现gdal_merge.py脚本也可以用于镶嵌,并尝试了它:

gdal_merge.py $(list_of_tiffs)

不到3分钟即可完成。

正如我期望的那样,两个命令将产生相同的结果,我想知道两者之间的区别是什么,如果结果相同,为什么gdalwarp需要这么多时间?

Answers:


21

虽然我不知道为什么GDAL会提供这种功能上的重叠,但是一定要为gdalwarp设置缓存以使其真正更快:

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

确保定义的高速缓存不要超过计算机上的RAM。


不知道此调音开关,确实可以加快此过程。对于参考3000是3GB(更多信息trac.osgeo.org/gdal/wiki/UserDocs/GdalWarp)我在系统Python中使用MKL构建了NumPy,但仍然gdalwarp必须做更多的事情,因为NumPy不能比C更快实施,尽管可以实现。
zetah

3000真的是3GB,还是应该是3072?
miln40

13

我在寻找其他东西时碰巧遇到了这个问题和可能的答案。

gdal_merge.py使用最近邻居重采样。如果要控制使用的重采样,则应改用gdalwarp。

资料来源:trac.osgeo.org


5

gdal_merge.py在处理它们之前将所有文件加载到内存中。因此,如果您的内存较小,则无法处理大文件。看这里

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.