ogrmerge.py

将多个矢量数据集合并为一个矢量数据集。

简介

ogrmerge.py -o out_dsname src_dsname [src_dsname]*
            [-f format] [-single] [-nln layer_name_template]
            [-update | -overwrite_ds] [-append | -overwrite_layer]
            [-src_geom_type geom_type_name[,geom_type_name]*]
            [-dsco NAME=VALUE]* [-lco NAME=VALUE]*
            [-s_srs srs_def] [-t_srs srs_def | -a_srs srs_def]
            [-progress] [-skipfailures] [--help-general]

特定于 -single 选项:

[-field_strategy FirstLayer|Union|Intersection]
[-src_layer_field_name name]
[-src_layer_field_content layer_name_template]

描述

2.2 新版功能.

ogrmerge.py 脚本将几个向量数据集作为输入,每个向量数据集都有一个或多个向量层,并将它们复制到目标数据集中。

有两种基本模式:

  • 默认情况下,每个输入向量层作为单独的层复制到目标数据集中

  • 另一个,使用-single开关激活,其中所有输入向量层的内容都附加到单个目标层中。这假设这些向量层的模式或多或少是相同的。

这会在内部生成 VRT—虚拟格式 文件,如果输出格式不是VRT,则使用 ogr2ogrgdal.VectorTranslate() . 因此,对于高级用途,输出到VRT,对其进行潜在的手动编辑 ogr2ogr 可以做到。

-o <out_dsname>

输出数据集名称。必修的。

<src_dsname>

一个或多个输入向量数据集。要求的

-f <format>

选择输出格式。从GDAL 2.3开始,如果未指定,则从扩展名猜测格式(以前是ESRI Shapefile)。使用短格式名称

-single

如果指定,所有输入向量层将合并为一个单独的层。

-nln <layer_name_template>

输出向量层的名称(在单一模式下,默认值为“合并”),或模板以默认模式命名输出向量层(默认值为 {{AUTO_NAME}} ). 模板可以是包含以下变量的字符串,这些变量将使用从正在处理的输入层计算的值进行替换:

  • {{AUTO_NAME}} 相当于 {{DS_BASENAME}}_{{LAYER_NAME}} 如果两个值不同,或 {{LAYER_NAME}} 当它们相同时(shapefile的情况)不同的

  • {{DS_NAME}} :源数据集的名称

  • {{DS_BASENAME}} :源数据集的基名称

  • {{DS_INDEX}} :源数据集的索引

  • {{LAYER_NAME}} :源层的名称

  • {{LAYER_INDEX}} :源层索引

-update

以更新模式打开现有数据集。

-overwrite_ds

如果现有数据集已存在,则覆盖它(对于基于文件的数据集)

-append

以更新模式打开现有数据集,如果输出层已经存在,则将输入层的内容附加到它们。

-overwrite_layer

以更新模式打开现有的数据集,如果输出层已经存在,则用其中一个输入层替换它们的内容。

-src_geom_type <geom_type_name[,geom_type_name]\*]>

Only take into account input layers whose geometry type match the type(s) specified. Valid values for geom_type_name are GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION, CIRCULARSTRING, CURVEPOLYGON, MULTICURVE, MULTISURFACE, CURVE, SURFACE, TRIANGLE, POLYHEDRALSURFACE and TIN.

-dsco <NAME=VALUE>

数据集创建选项(特定于格式)

-lco <NAME=VALUE>

图层创建选项(特定于格式)

-a_srs <srs_def>

分配输出SRS

-t_srs <srs_def>

输出时重新投影/转换到此SRS

-s_srs <srs_def>

覆盖源SRS

-progress

在终端上显示进度。仅当输入层具有“快速特征计数”功能时才有效。

-skipfailures

失败后继续,跳过失败的功能。

-field_strategy FirstLayer|Union|Intersection

仅用于 -single . 确定如何根据输入层的架构构建目标层的架构。可以是first layer以使用找到的第一层中的字段,Union以使用来自所有源层的所有字段的超级集,或者Intersection以使用来自所有源层的所有公共字段的子集。默认为联合。

-src_layer_field_name <name>

仅用于 -single . 如果指定,目标层的架构将使用新字段“name”进行扩展,其内容由-src_layer_field_content确定。

-src_layer_field_content <layer_name_template>

仅用于 -single . 如果指定,目标层的架构将扩展为一个新字段(其名称由 -src_layer_field_name ,否则为“source_ds_lyr”,其内容由 layer_name_template . 的语法 layer_name_template 与…相同 -nln .

实例

为每个输入形状文件创建一个带图层的VRT

ogrmerge.py -f VRT -o merged.vrt *.shp

相同,但创建一个GeoPackage文件

ogrmerge.py -f GPKG -o merged.gpkg *.shp

在merged.shp中连接france.shp和germany.shp的内容,并根据其来源向值为“france”或“germany”的每个要素添加“country”字段。

ogrmerge.py -single -o merged.shp france.shp germany.shp -src_layer_field_name country