gdalbuildvrt

创建日期:2024-06-21
更新日期:2025-01-19

从数据集列表构建VRT。

# 概要

```

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]

[-optim {[AUTO]/VECTOR/RASTER}]

[-addalpha] [-hidenodata]

[-srcnodata "value [value...]"] [-vrtnodata "value [value...]"]

[-a_srs srs_def]

[-r {nearest,bilinear,cubic,cubicspline,lanczos,average,mode}]

[-oo NAME=VALUE]*

[-input_file_list my_list.txt] [-overwrite] output.vrt [gdalfile]*

```

# 描述

该程序构建一个VRT(虚拟数据集),它是输入GDAL数据集列表的马赛克。 输入GDAL数据集的列表可以在命令行末尾指定,也可以在很长的列表中放入文本文件(每行一个文件名),也可以是MapServer tileindex(请参阅gdaltindex实用程序)。 在后一种情况下,tile索引中的所有条目都将添加到VRT。

使用-separate,每个文件进入VRT频段中的单独频带。 否则,这些文件被认为是较大马赛克的瓦片,并且VRT文件具有与输入文件之一一样多的波段。

如果一个GDAL数据集由几个子数据集组成,并具有0个光栅带,则所有子数据集将被添加到VRT而不是数据集本身。

gdalbuildvrt进行一些检查,以确保将放入到产生的VRT中的所有文件具有相似的特征:带的数量,投影,颜色解释...如果不是,将跳过与公共特征不匹配的文件。 (这在默认模式下是正确的,而不是在使用-separate选项时)

如果文件之间存在一定数量的空间重叠,则出现在源文件列表中的文件顺序:最后列出的文件是将从中获取内容的文件。 请注意,nodata将被考虑到可能从较少的数据集中获取数据,但是目前,alpha通道不会被考虑进行alpha合成(因此,alpha = 0的源代码会覆盖另一个源代码的内容)。 这可能会在以后的版本中更改。

该实用程序在某种程度上等同于gdal_vrtmerge.py实用程序,默认情况下在GDAL 1.6.1中构建。

~*~*-tileindex:~*~*

使用指定的值作为tile索引字段,而不是使用'location'的默认值。

~*~*-resolution {highest|lowest|average|user}:~*~*

在所有输入文件的分辨率不同的情况下,-resolution标志使用户能够控制计算输出分辨率的方式。 “average”是默认值。 “最高”将选择源光栅集中的像素尺寸的最小值。 “最低”将选择源光栅集中像素尺寸的最大值。 “平均值”将计算源栅格集中像素维数的平均值。 'user'是GDAL 1.7.0中的新增功能,必须与-tr选项结合使用以指定目标分辨率。

~*~*-tr xres yres :~*~*

(从GDAL 1.7.0开始)设置目标分辨率。 值必须以地理参考单位表示。 两者都必须是正值。 指定这些值当然与-resolution选项的最高|最低|平均值不兼容。

~*~*-tap:~*~*

(GDAL> = 1.8.0)(目标对齐像素)将输出文件的范围的坐标与-tr的值对齐,以使对齐的范围包含最小范围。

~*~*-te xmin ymin xmax ymax :~*~*

(从GDAL 1.7.0开始)设置VRT文件的地理参考范围。 值必须以地理参考单位表示。 如果没有指定,则VRT的范围是源光栅组的最小边界框。

~*~*-addalpha:~*~*

(从GDAL 1.7.0开始)当源栅格没有时,将一个Alpha掩码带添加到VRT。 主要用于RGB源(或灰度级源)。 在没有任何源光栅的区域中,alpha波段在值为0的情况下被填充,在源栅格区域中的值为255。 效果是,RGBA浏览器将渲染没有源光栅的区域是透明的,源栅格的区域是不透明的。 此选项与-separate不兼容。

~*~*-hidenodata:~*~*

(从GDAL 1.7.0开始)即使任何频带包含节点数值,给出此选项可使VRT频段不报告NoData。 当您想要控制数据集的背景色时很有用。 通过与-addalpha选项一起使用,您可以准备不报告节点数值但在没有数据的区域中是透明的数据集。

~*~*-srcnodata value [value...]:~*~*

(从GDAL 1.7.0开始)为输入频带设置nodata值(可以为每个频带提供不同的值)。 如果提供了多个值,则应引用所有值作为单个操作系统参数将它们保持在一起。 如果未指定该选项,则将使用源数据集上的内部nodata设置(如果存在)。 此选项设置的值将写入每个ComplexSource元素的NODATA元素中。 使用值None来忽略源数据集上的固有节点设置。

~*~*-b band:~*~*

(GDAL> = 1.10.0)选择要处理的输入频带。 乐队的编号从1.如果输入乐队未设置所有乐队将被添加到vrt。 多个-b开关可用于选择一组输入频带。

~*~*-sd subdataset~*~*

(GDAL> = 1.10.0)如果输入数据集包含多个子数据集,则使用指定数字的子数据集(从1开始)。 这是将完整的数据库名称作为输入的替代方法。

~*~*-vrtnodata value [value...]:~*~*

(从GDAL 1.7.0开始)在VRT频带级设置节点值(可以为每个频带提供不同的值)。 如果提供了多个值,则应引用所有值作为单个操作系统参数将它们保持在一起。 如果未指定该选项,将使用第一个数据集上的内部节点设置(如果存在)。 此选项设置的值将写入每个VRTRasterBand元素的NoDataValue元素中。 使用值None来忽略源数据集上的固有节点设置。

~*~*-separate:~*~*

(从GDAL 1.7.0开始)将每个输入文件放入单独的频段。 在这种情况下,只有每个数据集的第一个频带将被放入新的频带。 与默认模式相反,不要求所有频段具有相同的数据类型。

~*~*-allow_projection_difference:~*~*

(从GDAL 1.7.0开始)当指定此选项时,即使输入数据集具有不相同的投影,实用程序也将接受VRT。 注意:这并不意味着他们将被重新投放。 他们的投射将被忽略。

~*~*-optim {[AUTO]/VECTOR/RASTER}}:~*~*

(从GDAL 2.3开始)强制使用的算法(结果是相同的)。 大多数情况下使用光栅模式,并优化读/写操作。 矢量模式是有用的,具有相当的输入功能,并优化CPU使用。 该模式必须与平铺图像一起使用才能有效。 自动模式(默认)将基于输入和输出属性选择算法。

~*~*-a_srs srs_def:~*~*

(从GDAL 1.10开始)覆盖输出文件的投影。 srs_def可以是通常的GDAL / OGR格式,完整的WKT,PROJ.4,EPSG:n或包含WKT的文件。

~*~*-r {nearest (default),bilinear,cubic,cubicspline,lanczos,average,mode}:~*~*

(GDAL> = 2.0)选择重采样算法。

~*~*-oo NAME=VALUE:~*~*

(从GDAL 2.2开始)数据集打开选项(格式具体)

~*~*-input_file_list:~*~*

在每行上指定一个带有输入文件名的文本文件

~*~*-q:~*~*

(从GDAL 1.7.0开始)禁用控制台上的进度条

~*~*-overwrite:~*~*

覆盖VRT(如果已经存在)。

# 例子

从目录中包含的所有TIFF文件制作虚拟马赛克:

```

gdalbuildvrt doq_index.vrt doq/*.tif

```

从名称在文本文件中指定的文件制作虚拟马赛克:

```

gdalbuildvrt -input_file_list my_list.txt doq_index.vrt

```

从3个单频输入文件制作RGB虚拟马赛克:

```

gdalbuildvrt -separate rgb.vrt red.tif green.tif blue.tif

```

制作蓝色背景颜色的虚拟马赛克(RGB:0 0 255):

```

gdalbuildvrt -hidenodata -vrtnodata "0 0 255" doq_index.vrt doq/*.tif

```