我有70多种TIFF格式的光栅图像,我正在尝试合并。
原作可以在这里找到: http://www.faa.gov/air_traffic/flight_info/aeronav/digital_products/vfr/
预处理后(pct2rgb,gdalwarp个别图表,gdal_translate剪切项圈)我尝试通过gdalwarp运行它们,使用如下命令拼接它们:
gdalwarp --config GDAL_CACHEMAX 3000 -overwrite -wm 3000 -r bilinear -srcnodata 0 -dstnodata 0 -wo "NUM_THREADS=3" /data/aeronav/sec/c/Albuquerque_c.tif .....70 other file names ...master.tif
处理12小时后:
创建321521P x 125647L的输出文件。 处理输入文件/data/aeronav/sec/c/Albuquerque_c.tif。 0 ... 10 ... 20 ... 30 ... 40 ...
这意味着gdalwarp永远不会完成。
相反。像这样的gdal_merge命令:
gdal_merge.py -n 0 -a_nodata 0 -o /data/aeronav/sec/master.tif /data/aeronav/sec/c/Albuquerque_c.tif ......70 plus files.....
几个小时后完成。
由于“平均”采样,gdal_merge的问题是质量较差的输出。如果可能的话,我想尽量使用“双线性”和“立方”采样,并且需要使用gdalwarp。
为什么这两者的表现有如此大的差异? gdalwarp为什么不想完成?是否有任何其他命令行选项可以加速gadalwarp或者是否有办法向gdal_merge添加采样选项?
答案 0 :(得分:10)
似乎gdalwarp
不是合并这些GeoTiff的理想命令(因为我对再次变形不感兴趣)。相反,我使用
gdalbuildvrt /data/aeronav/sec/master.virt .... 70+ files in order
构建虚拟马赛克。然后我使用gdal_translate
将virt文件转换为GeoTiff:
gdal_translate -of GTiff /data/aeronav/sec/master.virt /data/aeronav/sec/master.tif
这就是它 - 这花了不到一个小时(甚至比gdal_merge
更快,并保留了原始文件的质量)。