gdalbuildvrt

从数据集列表生成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]
            [-addalpha] [-hidenodata]
            [-srcnodata "value [value...]"] [-vrtnodata "value [value...]"]
            [-ignore_srcmaskband]
            [-a_srs srs_def]
            [-r {nearest,bilinear,cubic,cubicspline,lanczos,average,mode}]
            [-oo NAME=VALUE]*
            [-input_file_list my_list.txt] [-overwrite]
            [-strict | -non_strict]
            output.vrt [gdalfile]*

描述

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

使用-separate,每个文件都进入VRT数据集中的一个单独的区域。否则,文件被视为较大马赛克的平铺,VRT文件与输入文件中的一个具有相同的频带。

如果一个GDAL数据集由多个子数据集组成,并且有0个栅格带,则所有子数据集都将添加到VRT,而不是数据集本身。

gdalbuildvrt会做一些检查,以确保将放入结果VRT中的所有文件都具有类似的特性:带数、投影、颜色解释。。。如果不匹配,将跳过与公共特征不匹配的文件。(这仅在默认模式下适用,而在使用-separate选项时不适用)

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

-tileindex

使用指定的值作为平铺索引字段,而不是默认值“location”。

-resolution {highest|lowest|average|user}

如果所有输入文件的分辨率不相同,-resolution标志允许用户控制计算输出分辨率的方式。

highest 将选取源栅格集中像素维度的最小值。

lowest 将选取源栅格集中像素维度的最大值。

average 是默认值,将计算源栅格集中像素尺寸的平均值。

user 必须与 -tr 选项指定目标分辨率。

-tr <xres> <yres>

设定目标分辨率。这些值必须用地理参考单位表示。两者都必须是正值。指定这些值当然与最高值不兼容 |lowest| 的平均值 -resolution 选择权。

-tap

(target aligned pixels) align the coordinates of the extent of the output file to the values of the -tr, such that the aligned extent includes the minimum extent. Alignment means that xmin / resx, ymin / resy, xmax / resx and ymax / resy are integer values.

-te xmin ymin xmax ymax

设置VRT文件的地理参考范围。这些值必须用地理参考单位表示。如果未指定,VRT的范围是源栅格集的最小边界框。

-addalpha

当源栅格没有时,向VRT添加alpha遮罩带。主要用于RGB源(或灰度源)。在没有任何源栅格的区域中,alpha带动态填充值为0;在有源栅格的区域中,alpha带动态填充值为255。其效果是,RGBA查看器将没有源栅格的区域渲染为透明,而具有源栅格的区域渲染为不透明。此选项与 -separate .

-hidenodata

即使任何波段包含nodata值,如果提供此选项,VRT波段也不会报告nodata。当您想要控制数据集的背景色时非常有用。通过与-addalpha选项一起使用,您可以准备一个不报告no data值但在没有数据的区域是透明的数据集。

-srcnodata <value> [<value>...]

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

-ignore_srcmaskband

3.3 新版功能.

从GDAL 3.3开始,如果一个源有一个掩码带(内部/外部掩码带,或alpha带),则默认情况下会创建一个<ComplexSource>元素,其中包含<UseMaskBand>true</UseMaskBand>子元素,以指示VRT驱动程序使用源的掩码带来屏蔽正在合成的像素。这是NODATA元素的推广。当指定-ignoreu srcmaskband选项时,将不考虑源的掩码带,并且在源之间重叠的情况下,最后一个将覆盖重叠区域中的前一个。

-b <band>

选择要处理的输入<band>。乐队从1开始编号。如果未设置输入频带,则所有频带都将添加到vrt中。多重 -b 开关可用于选择一组输入频带。

-sd< <subdataset>

如果输入数据集包含多个子数据集,则使用具有指定数字(从1开始)的子数据集。这是将完整的子数据集名称作为输入的另一种选择。

-vrtnodata <value> [<value>...]

在VRT波段级别设置nodata值(每个波段可以提供不同的值)。如果提供了多个值,则应引用所有值,以便将它们作为单个操作系统参数放在一起。如果未指定该选项,则将使用第一个数据集上的内部nodata设置(如果存在)。此选项设置的值写入每个VRTRasterBand元素的NoDataValue元素中。使用值 None 忽略源数据集上的内部nodata设置。

-separate

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

-allow_projection_difference

当指定此选项时,即使输入数据集的投影不相同,实用程序也将接受生成VRT。注:这并不意味着他们会受到责备。他们的预测将被忽略。

-a_srs <srs_def>

重写输出文件的投影。<srs_def>可以是任何常见的GDAL/OGR形式、完整的WKT、PROJ.4、EPSG:n或包含WKT的文件。不做任何谴责。

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

选择重采样算法。

-oo NAME=VALUE

数据集打开选项(特定于格式)

2.2 新版功能.

-input_file_list <mylist.txt>

指定每行都有输入文件名的文本文件的步骤

-q

禁用控制台上的进度条

-overwrite

如果VRT已经存在,则覆盖它。

-strict

Turn warnings as failures. This is mutually exclusive with -non_strict, the latter which is the default.

3.4.2 新版功能.

-non_strict

Skip source datasets that have issues with warnings, and continue processing. This is the default.

3.4.2 新版功能.

实例

  • 从目录中包含的所有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