GDAL-VECTOR-CONCAT(1) GDAL GDAL-VECTOR-CONCAT(1) (NAME) gdal-vector-concat - 3.11 . (SYNOPSIS) Usage: gdal vector concat [OPTIONS] ... . : -i, --input [ ] [] [ ] -o, --output [] [ ] : -h, --help --json-usage JSON --config = [ ] -q, --quiet ( ) [ ] : -l, --layer, --input-layer () [ ] [ ] -f, --of, --format, --output-format ( "GDALG" ) [ ] --co, --creation-option = [ ] [ ] --lco, --layer-creation-option = [ ] [ ] --overwrite [ ] --update [ ] --overwrite-layer [ ] --append [ ] --upsert --skip-errors [ ] --mode . MODE=merge-per-layer-name|stack|single (: merge-per-layer-name) --output-layer ( single) ( stack) --source-layer-field-name 'source-layer-field-content' --source-layer-field-content {AUTO_NAME} {DS_NAME} {DS_BASENAME} {DS_INDEX} {LAYER_NAME} {LAYER_INDEX} --field-strategy . FIELD-STRATEGY=union|intersection (: union) -s, --input-crs (CRS) -d, --output-crs (CRS) : --if, --input-format [ ] [ ] --oo, --open-option = [ ] [ ] --output-oo, --output-open-option = [ ] [ ] --upsert (upsert) ( 'append') [ ] --append (DESCRIPTION) gdal vector concat . : o --mode = merge-per-layer-name (). . a b b c : a b ( ) c. o --mode = stack. . ds1 ( a b) ds2 ( b c) : ds1_a ds1_b ds2_b ds2_c. o --mode = single. . (schema) (union) . --field-strategy intersection . CRS CRS CRS CRS (reproject) . --output-crs CRS . gdal vector pipeline . GDALG ( / ) (GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET)) JSON GDALG . GDALG: GDAL Streamed Algorithm / (on-the-fly / streamed) . (PROGRAM-SPECIFIC OPTIONS) --field-strategy union|intersection (schema) : o union () (super-set) . o intersection (sub-set) . --input-crs, -s () . SRS . OGRSpatialReference.SetFromUserInput() CRS EPSG ( EPSG:4296) CRS WKT PROJ.4 .prj WKT CRS. SRS (vertical datum) (geoid grid) . --mode merge-per-layer-name|stack|single . . --output-crs, -d . CRS . OGRSpatialReference.SetFromUserInput() CRS EPSG ( EPSG:4296) CRS WKT PROJ.4 .prj WKT CRS. SRS . --output-layer ( single "merged" ) stack ( {AUTO_NAME} ). merge-per-layer-name . stack : o {AUTO_NAME}: {DS_BASENAME}_{LAYER_NAME} {LAYER_NAME} ( shapefile). o {DS_NAME}: o {DS_BASENAME}: (base name) o {DS_INDEX}: (index) o {LAYER_NAME}: o {LAYER_INDEX}: --source-layer-field-content ( --source-layer-field-name source_ds_lyr ) ( --output-layer ). --source-layer-field-name --source-layer-field-content . (STANDARD OPTIONS) --append () . . --co, --creation-option = . GeoPackage . . . --formats . Vector drivers . . --if, --input-format / () . . . . . --input-layer . . --lco, --layer-creation-option = . GeoPackage (feature identifier) . . . --formats . Vector drivers . . --oo, --open-option = ( ). . -f, --of, --format, --output-format . : gdal --formats | grep vector | grep rw | sort --output-open-option, --output-oo = 3.12 . ( ). . --overwrite . gdal . --overwrite-layer . --skip-errors 3.12 . () . . --update . --upsert 3.12 . --append OGRLayer::CreateFeature() OGRLayer::UpsertFeature() . : GPKG -- GeoPackage vector Elasticsearch: Geographically Encoded Objects for Elasticsearch MongoDBv3 ( upsert GDAL_DCAP_UPSERT ). upsert FID ( FID ) . FID . GPKG upsert FID ( --unset-fid gdal vector edit FID ) UNIQUE . (RETURN STATUS CODE) 0 ( ). (EXAMPLES) : GeoPackage Shapefile ( stack) gdal vector concat --mode=stack *.shp out.gpkg : CRS france.shp germany.shp merged.shp ETRS89 'country' 'france' 'germany' : gdal vector concat --mode=single --source-layer-field-name=country --output-crs=EPSG:4258 france.shp germany.shp merged.shp (AUTHOR) Even Rouault (COPYRIGHT) 1998-2026 August 18, 2026 GDAL-VECTOR-CONCAT(1)