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,则使用 ogr2ogr 或 gdal.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