gdalmerge生成的文件太大


12

我正在尝试将60个geotiff文件合并为一个大文件,以便能够使用gdal2tiles从产生的巨大geotiff文件中生成切片。

合并过程可以正常工作,但是由于某种原因,它会生成一个大小为78GB的文件,而不是预期的19GB。不太确定那里出了什么问题。

尝试这样做的原因是因为将60个Geotiff一张一张地叠起来,在地图边框上给了我空白。

Answers:


16

通常,对GeoTIFF进行压缩以进行存储。以默认设置运行gdal_merge不会压缩文件。添加选项

-co COMPRESS=DEFLATE

(或文档中列出其他任何选项)到您的命令以获取较小的输出文件。


1
供以后参考-我的,如果没有其他人的话-gdal.org/frmt_gtiff.html具有应针对任何gdal命令使用的一组GeoTiff特定选项。根据图像类型的不同,可能需要COMPRESS = LZQ甚至是JPEG。值得花时间来验证源图像上使用的压缩类型。
赫伯

感谢Herb,我已经更新了答案,包含您的链接。
昏暗

5

如underdark所指出的,最好的解决方案是压缩图像以防止直接存储大量空白空间(本机TIFF图像就像一个位图:每个值占用相同的空间量)。另一个方便的压缩选项是:

-co COMPRESS=LZW

它很少具有与相同的压缩率DEFLATE,但是具有可与大多数软件一起使用的优点,而DEFLATE在许多环境(例如ArcGIS 9.x)中均不支持。

您可以使用一种小波变换(例如ECWMrSID或各种JPEG2000实现之一)尝试更加积极的无损压缩。请记住,您将需要使用GDAL的工具,或者以其他方式实现库以访问这些格式的数据。


3

您可以通过编写vrt文件来避免合并geotiff文件,该文件可以“虚拟”合并。

这是一个XML文件,描述了应如何组装文件。所有gdal实用程序均接受此vrt文件作为输入映射。gdal2tiles或MapTiler都基于gdal,因此它们应该能够使用vrt文件(我尚未尝试使用vrt文件,但我已经尝试使用gdal_wms文件,并且效果很好)。

从头开始编写vrt文件并不容易。只需将您的一个geotiff转换为vrt即可得到一个示例:

gdal_tranlate -of vrt one_of_your_geotiff.tif one_of_your_geotiff.vrt

还有一个名为gdalbuildvrt的工具,但我没有尝试过。


1
马特·佩里有一些使用VRTS这里的优势一篇精辟论述:perrygeo.net/wordpress/?p=141
SCW
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.