gdal应用-gdalbuildvrt
2015年1月16日
gdalbuildvrt [-tileindex field_name]
[-resolution {highest|lowest|average|user}]
[-te xmin ymin xmax ymax] [-tr xres yres] [-tap]
[-separate] [-b band] [-sd subdataset]
[-allow_projection_difference] [-q]
[-addalpha] [-hidenodata]
[-srcnodata "value [value...]"] [-vrtnodata "value [value...]"]
[-a_srs srs_def]
[-input_file_list my_liste.txt] [-overwrite] output.vrt [gdalfile]*
注意:本方法自动进行overwrite
参考:http://www.gdal.org/gdalbuildvrt.html
目的:将多种类型的文件,合成一个文件使用。
原理:VRT使用一个XML文件,gdal读取并将多个文件动态合成。
方法:VRT可以读取所有GDAL支持的文件类型,也可以读取RAW文件。
VRT可以变换原始文件的几何和投影等所有信息。
注意:在分辨率不同的输出或都输入时,可能会出现少量无值黑线,此时只能使用warp。
示例:
<VRTDataset rasterXSize="512" rasterYSize="512">
<GeoTransform>440720.0, 60.0, 0.0, 3751320.0, 0.0, -60.0</GeoTransform>
<VRTRasterBand dataType="Byte" band="1">
<ColorInterp>Gray</ColorInterp>
<SimpleSource>
<SourceFilename relativeToVRT="1">utm.tif</SourceFilename>
<SourceBand>1</SourceBand>
<SrcRect xOff="0" yOff="0" xSize="512" ySize="512"/>
<DstRect xOff="0" yOff="0" xSize="512" ySize="512"/>
</SimpleSource>
</VRTRasterBand>
</VRTDataset>
参考:http://www.gdal.org/gdal_vrttut.html
目的:将大量文件以文件名目录的方式生成一个vrt文件,用于其它操作时输入。
原理:将大量文件名生成一个vrt文件,gdal可以直接读取。
方法:gdalbuildvrt
-inputf_file_list 读入一个文件名,文件中每行代表一个栅格文件。
最后是输入的文件名。
输出文件是以.vrt结尾的文件。
示例:
D:\output\out>gdalbuildvrt j50c.vrt *.tif
gdalbuildvrt -input_file_list j50c4.txt j50c4.vrt
附 j50c4.txt:
NJ50C004003_lonlat-L14.tif
NJ50C004004_lonlat-L14.tif
目的:将多个图像合并为一幅图像。
原理:将多个源图像处理为一个VRT文件,将VRT文件转换为目标格式文件。
方法:gdalbuildvrt+gdal_translate
gdalbuildvrt
-resolution :设置输出文件分辨率的取值方法。
使用VRT能明显提高处理效率。
此方法需要分两步,首先将多个源文件合成为一个VRT文件。参见:大量文件生成单一vrt文件。
然后将VRT文件转换为目标格式的图像。参见:格式转换。
示例:
D:\output\out>gdalbuildvrt j50c.vrt *.tif
D:\output\out>gdal_translate -of GTiff j50c.vrttranslate.tif
也可以被gdalwarp使用
gdalwarp -of GTiff D:/output/getile/t.vrtD:/output/getile/t.tif
注意:如果输入文件分辨率不同,则进行重采样,生成统一分辨率的输出图像。默认使用平均分辨率。可以设定为最高、最低或用户定义分辨率。
注意:不同的分辨率的输入图像会产生半个像素左右的位移,对于高精度作业不适用。因此,本方法最适用于仅仅合成的情况。
注意:后加入的图像会覆盖先前的图像范围。(官方文档强调不能依赖于此)
示例:
gdalbuildvrt –resolution lowest l57.vrt 5-19-26.jpg 7-77-105.jpg
gdalbuildvrt -resolution highest 57.vrt 5-19-26.jpg7-77-105.jpg
目的:更改原始图像的分辨率。
原理:gdalbuildvrt 生成目标分辨率的vrt文件,使用gdal_translate生成tif文件。只能使用nearest方法。
方法:gdalbuildvrt
-trxres yres。设置目标图像的分辨率(地理坐标单位)。不可与-resolution共存。
注意:对于不同分辨率的输入图像,只能输出平均分辨率后的指定分辨率图像。无法与-resolution共存。
注意:对于相同分辨率的多个图像,无论缩小还是放大,都可能输出各种黑线。不推荐使用。
示例:
gdalbuildvrt -tr 0.005 0.005 output/7d.vrtdata/7/*.jpg
gdal_translate output/7d.vrt output/7d.tif
目的:根据指定地理范围,获取源图像相应图像。
原理:gdalbuildvrt裁剪范围,gdal_translate转换为目标图像。
注意:此方法可以得到完美的输出范围,但是会将图像进行整体移动(一个像素以内),不推荐使用。
方法:gdalbuildvrt
-te xmin ymin xmax ymax:输出范围,输出图像将使用此范围,但是如果因为像素不能取整,则移动图像强行指定此范围。所以图像会变得不准确。
示例:
gdalbuildvrt -input_file_list Jlist.txt jlist.vrt
gdal_translate jlist.vrt jlist.tif