.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "GDAL-VECTOR-PIPELINE" "1" "Aug 18, 2026" "" "GDAL" .SH NAME gdal-vector-pipeline \- Process a vector dataset applying several steps .sp Added in version 3.11. .SH DESCRIPTION .sp \fBgdal vector pipeline\fP can be used to process a vector dataset and perform various processing steps that accept vector and generate vector. .sp For pipelines mixing raster and vector, consult \fI\%gdal pipeline\fP\&. .sp Most steps proceed in on\-demand evaluation of features, unless otherwise stated in their documentation, without \(dqmaterializing\(dq the resulting dataset of the operation of each step. It may be desirable sometimes for performance purposes to proceed to materializing an intermediate dataset to disk using \fI\%gdal vector materialize\fP\&. .SH SYNOPSIS .INDENT 0.0 .INDENT 3.5 .sp .EX Usage: gdal vector pipeline [OPTIONS] Process a vector dataset applying several steps. Positional arguments: Common Options: \-h, \-\-help Display help message and exit \-\-json\-usage Display usage as JSON document and exit \-\-config = Configuration option [may be repeated] \-q, \-\-quiet Quiet mode (no progress bar or warning message) [not available in pipelines] Options: \-\-skip\-errors Skip errors when writing features [not available in pipelines] is of the form: read|concat [READ\-OPTIONS] ( ! [STEP\-OPTIONS] )* ! write|info [WRITE\-OPTIONS] .EE .UNINDENT .UNINDENT .sp A pipeline chains several steps, separated with the \fI!\fP (exclamation mark) character. The first step must be \fBread\fP or \fBconcat\fP, and the last one \fBinfo\fP, \fBpartition\fP or \fBwrite\fP\&. Each step has its own positional or non\-positional arguments. Apart from \fBread\fP, \fBconcat\fP, \fBinfo\fP, \fBpartition\fP and \fBwrite\fP, all other steps can potentially be used several times in a pipeline. .SH STEPS .INDENT 0.0 .IP \(bu 2 \fI\%buffer\fP .IP \(bu 2 \fI\%check\-coverage\fP .IP \(bu 2 \fI\%check\-geometry\fP .IP \(bu 2 \fI\%clean\-coverage\fP .IP \(bu 2 \fI\%clip\fP .IP \(bu 2 \fI\%combine\fP .IP \(bu 2 \fI\%concave\-hull\fP .IP \(bu 2 \fI\%concat\fP .IP \(bu 2 \fI\%convex\-hull\fP .IP \(bu 2 \fI\%create\fP .IP \(bu 2 \fI\%dissolve\fP .IP \(bu 2 \fI\%edit\fP .IP \(bu 2 \fI\%explode\-collections\fP .IP \(bu 2 \fI\%export\-schema\fP .IP \(bu 2 \fI\%external\fP .IP \(bu 2 \fI\%filter\fP .IP \(bu 2 \fI\%info\fP .IP \(bu 2 \fI\%limit\fP .IP \(bu 2 \fI\%make\-point\fP .IP \(bu 2 \fI\%make\-valid\fP .IP \(bu 2 \fI\%materialize\fP .IP \(bu 2 \fI\%partition\fP .IP \(bu 2 \fI\%read\fP .IP \(bu 2 \fI\%rename\-layer\fP .IP \(bu 2 \fI\%reproject\fP .IP \(bu 2 \fI\%segmentize\fP .IP \(bu 2 \fI\%select\fP .IP \(bu 2 \fI\%set\-field\-type\fP .IP \(bu 2 \fI\%set\-geom\-type\fP .IP \(bu 2 \fI\%simplify\fP .IP \(bu 2 \fI\%simplify\-coverage\fP .IP \(bu 2 \fI\%sort\fP .IP \(bu 2 \fI\%sql\fP .IP \(bu 2 \fI\%swap\-xy\fP .IP \(bu 2 \fI\%tee\fP .IP \(bu 2 \fI\%update\fP .IP \(bu 2 \fI\%write\fP .UNINDENT .SS buffer .INDENT 0.0 .INDENT 3.5 .sp .EX * buffer [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Compute a buffer around geometries of a vector dataset. Positional arguments: \-\-distance Distance to which to extend the geometry. [required] Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) \-\-endcap\-style Endcap style.. ENDCAP\-STYLE=round|flat|square (default: round) \-\-join\-style Join style.. JOIN\-STYLE=round|mitre|bevel (default: round) \-\-mitre\-limit Mitre ratio limit (only affects mitered join style). (default: 5) \-\-quadrant\-segments Number of line segments used to approximate a quarter circle. (default: 8) \-\-side Sets whether the computed buffer should be single\-sided or not.. SIDE=both|left|right (default: both) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector buffer\fP\&. .SS check\-coverage .INDENT 0.0 .INDENT 3.5 .sp .EX * check\-coverage [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Check a polygon coverage for validity Options: \-\-include\-valid Include valid inputs in output, with empty geometry \-\-geometry\-field Name of geometry field to check \-\-maximum\-gap\-width Maximum width of a gap to be flagged .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector check\-coverage\fP\&. .SS check\-geometry .INDENT 0.0 .INDENT 3.5 .sp .EX * check\-geometry [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Check a dataset for invalid geometries Options: \-\-include\-field Fields from input layer to include in output (special values: ALL and NONE) (default: NONE) [may be repeated] \-\-include\-valid Include valid inputs in output, with empty geometry \-\-geometry\-field Name of geometry field to check .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector check\-geometry\fP\&. .SS clean\-coverage .INDENT 0.0 .INDENT 3.5 .sp .EX * clean\-coverage [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Alter polygon boundaries to make shared edges identical, removing gaps and overlaps Options: \-\-active\-layer Set active layer (if not specified, all) \-\-snapping\-distance Distance tolerance for snapping nodes \-\-merge\-strategy Algorithm to assign overlaps to neighboring polygons. MERGE\-STRATEGY=longest\-border|max\-area|min\-area|min\-index \-\-maximum\-gap\-width Maximum width of a gap to be closed .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector clean\-coverage\fP\&. .SS clip .INDENT 0.0 .INDENT 3.5 .sp .EX * clip [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Clip a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-bbox Clipping bounding box as xmin,ymin,xmax,ymax Mutually exclusive with \-\-geometry, \-\-like \-\-bbox\-crs CRS of clipping bounding box \-\-geometry Clipping geometry (WKT or GeoJSON) Mutually exclusive with \-\-bbox, \-\-like \-\-geometry\-crs CRS of clipping geometry \-\-like Dataset to use as a template for bounds Mutually exclusive with \-\-bbox, \-\-geometry \-\-like\-sql SELECT statement to run on the \(aqlike\(aq dataset Mutually exclusive with \-\-like\-where \-\-like\-layer Name of the layer of the \(aqlike\(aq dataset \-\-like\-where WHERE SQL clause to run on the \(aqlike\(aq dataset Mutually exclusive with \-\-like\-sql .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector clip\fP\&. .SS combine .INDENT 0.0 .INDENT 3.5 .sp .EX * combine [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Combine features into collections Options: \-\-group\-by Names of field(s) by which inputs should be grouped [may be repeated] \-\-keep\-nested Avoid combining the components of multipart geometries \-\-add\-extra\-fields Whether to add extra fields, depending on if they have identical values within each group. ADD\-EXTRA\-FIELDS=no|sometimes\-identical|always\-identical (default: no) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector combine\fP\&. .SS concave\-hull .INDENT 0.0 .INDENT 3.5 .sp .EX * concave\-hull [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Compute the concave hull of geometries of a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) \-\-ratio Ratio controlling the concavity [required] \-\-allow\-holes Allow holes in the output polygon \-\-tight Whether the hull must follow the outer boundaries of the input polygons .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector concave\-hull\fP\&. .SS concat .INDENT 0.0 .INDENT 3.5 .sp .EX * concat [OPTIONS] ... \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Concatenate vector datasets. Positional arguments: \-i, \-\-input Input vector datasets [1.. values] [required] Options: \-l, \-\-layer, \-\-input\-layer Input layer name(s) [may be repeated] \-\-mode Determine the strategy to create output layers from source layers . MODE=merge\-per\-layer\-name|stack|single (default: merge\-per\-layer\-name) \-\-output\-layer Name of the output vector layer (single mode), or template to name the output vector layers (stack mode) \-\-source\-layer\-field\-name Name of the new field to add to contain identification of the source layer, with value determined from \(aqsource\-layer\-field\-content\(aq \-\-source\-layer\-field\-content A string, possibly using {AUTO_NAME}, {DS_NAME}, {DS_BASENAME}, {DS_INDEX}, {LAYER_NAME}, {LAYER_INDEX} \-\-field\-strategy How to determine target fields from source fields. FIELD\-STRATEGY=union|intersection (default: union) \-s, \-\-input\-crs Input CRS \-d, \-\-output\-crs Output CRS Advanced Options: \-\-if, \-\-input\-format Input formats [may be repeated] \-\-oo, \-\-open\-option = Open options [may be repeated] .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector concat\fP\&. .SS convex\-hull .INDENT 0.0 .INDENT 3.5 .sp .EX * convex\-hull [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Compute the convex hull of geometries of a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector convex\-hull\fP\&. .SS create .INDENT 0.0 .INDENT 3.5 .sp .EX * create [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Create a vector dataset. Positional arguments: \-o, \-\-output Output vector dataset [required] Options: \-i, \-\-like, \-\-input Input vector datasets Mutually exclusive with \-\-schema, \-\-field \-l, \-\-layer, \-\-input\-layer Input layer name(s) [may be repeated] \-f, \-\-of, \-\-format, \-\-output\-format Output format (\(dqGDALG\(dq allowed) \-\-co, \-\-creation\-option = Creation option [may be repeated] \-\-lco, \-\-layer\-creation\-option = Layer creation option [may be repeated] \-\-overwrite Whether overwriting existing output dataset is allowed \-\-update Whether to open existing dataset in update mode \-\-overwrite\-layer Whether overwriting existing output layer is allowed \-\-output\-layer Output layer name \-\-geometry\-type Layer geometry type \-\-geometry\-field Name of the geometry field to create (if supported by the output format) (default: geom) \-\-crs Set CRS \-\-fid FID column name \-\-schema Read OGR_SCHEMA and populate field definitions from it Mutually exclusive with \-\-input, \-\-field \-\-field :[(,[,])]> Add a field definition to the output layer [may be repeated] Mutually exclusive with \-\-input, \-\-schema Advanced Options: \-\-if, \-\-input\-format Input formats [may be repeated] \-\-oo, \-\-open\-option = Open options [may be repeated] \-\-output\-oo, \-\-output\-open\-option = Output open options [may be repeated] .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector create\fP\&. .SS dissolve .INDENT 0.0 .INDENT 3.5 .sp .EX * dissolve [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Dissolves multipart features Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector dissolve\fP\&. .SS edit .INDENT 0.0 .INDENT 3.5 .sp .EX * edit [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Edit metadata of a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-output\-layer Output layer name \-\-geometry\-type Layer geometry type \-\-crs Override CRS (without reprojection) \-\-metadata = Add/update dataset metadata item [may be repeated] \-\-unset\-metadata Remove dataset metadata item [may be repeated] \-\-layer\-metadata = Add/update layer metadata item [may be repeated] \-\-unset\-layer\-metadata Remove layer metadata item [may be repeated] \-\-unset\-fid Unset the identifier of each feature and the FID column name .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector edit\fP\&. .SS explode\-collections .INDENT 0.0 .INDENT 3.5 .sp .EX * explode\-collections [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Explode geometries of type collection of a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) \-\-geometry\-type Geometry type \-\-skip\-on\-type\-mismatch Skip feature when change of feature geometry type failed .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector explode\-collections\fP\&. .SS export\-schema .sp Added in version 3.12. .INDENT 0.0 .INDENT 3.5 .sp .EX * export\-schema [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Export the OGR_SCHEMA from a vector dataset. Positional arguments: Options: \-l, \-\-layer, \-\-input\-layer Input layer name [may be repeated] .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector export\-schema\fP\&. .SS external .INDENT 0.0 .INDENT 3.5 .sp .EX * external [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Execute an external program as a step of a pipeline Positional arguments: \-\-command External command, optionally with and/or or placeholders [required] Options: \-f, \-\-of, \-\-format, \-\-output\-format Output format Advanced Options: \-\-if, \-\-input\-format Input formats .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal external\fP\&. .SS filter .INDENT 0.0 .INDENT 3.5 .sp .EX * filter [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Filter a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-bbox Bounding box as xmin,ymin,xmax,ymax \-\-where |@ Attribute query in a restricted form of the queries used in the SQL WHERE statement \-\-update\-extent Update layer extent to take into account the filter .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector filter\fP\&. .SS info .sp Added in version 3.12. .INDENT 0.0 .INDENT 3.5 .sp .EX * info [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Return information on a vector dataset. Positional arguments: Options: \-f, \-\-of, \-\-format, \-\-output\-format Output format. OUTPUT\-FORMAT=json|text \-l, \-\-layer, \-\-input\-layer Input layer name [may be repeated] Mutually exclusive with \-\-sql, \-\-fid \-\-features List all features (beware of RAM consumption on large layers) Mutually exclusive with \-\-summary \-\-summary List the layer names and the geometry type Mutually exclusive with \-\-features \-\-limit Limit the number of features per layer (implies \-\-features) \-\-sql |@ Execute the indicated SQL statement and return the result Mutually exclusive with \-\-input\-layer, \-\-fid \-\-where |@ Attribute query in a restricted form of the queries used in the SQL WHERE statement \-\-fid Feature identifier Mutually exclusive with \-\-input\-layer, \-\-sql \-\-dialect SQL dialect Esoteric Options: \-\-crs\-format Which format to use to report CRS. CRS\-FORMAT=AUTO|WKT2|PROJJSON (default: AUTO) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector info\fP\&. .SS limit .INDENT 0.0 .INDENT 3.5 .sp .EX * limit [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Truncate a vector dataset to no more than a specified number of features. Positional arguments: \-\-limit Limit the number of features to read per layer [required] Options: \-\-active\-layer Set active layer (if not specified, all) .EE .UNINDENT .UNINDENT .SS make\-point .INDENT 0.0 .INDENT 3.5 .sp .EX * make\-point [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Create point geometries from attribute fields Options: \-\-x Field from which X coordinate should be read [required] \-\-y Field from which Y coordinate should be read [required] \-\-z Optional field from which Z coordinate should be read \-\-m Optional field from which M coordinate should be read \-\-output\-crs Output CRS .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector make\-point\fP\&. .SS make\-valid .INDENT 0.0 .INDENT 3.5 .sp .EX * make\-valid [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Fix validity of geometries of a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) \-\-method Algorithm to use when repairing invalid geometries.. METHOD=linework|structure (default: linework) \-\-keep\-lower\-dim Keep components of lower dimension after MakeValid() .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector make\-valid\fP\&. .SS materialize .INDENT 0.0 .INDENT 3.5 .sp .EX * materialize [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Materialize a piped dataset on disk to increase the efficiency of the following steps. Options: \-o, \-\-output Materialized dataset name (created by algorithm) \-f, \-\-of, \-\-format, \-\-output\-format Output format \-\-co, \-\-creation\-option = Creation option [may be repeated] \-\-lco, \-\-layer\-creation\-option = Layer creation option [may be repeated] \-\-overwrite Whether overwriting existing output dataset is allowed .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector materialize\fP\&. .SS partition .sp Added in version 3.12. .INDENT 0.0 .INDENT 3.5 .sp .EX * partition [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Partition a vector dataset into multiple files. Positional arguments: \-o, \-\-output Output directory [required] Options: \-\-overwrite Whether overwriting existing output dataset is allowed Mutually exclusive with \-\-append \-\-append Whether appending to existing layer is allowed Mutually exclusive with \-\-overwrite \-f, \-\-of, \-\-format, \-\-output\-format Output format \-\-co, \-\-creation\-option = Creation option [may be repeated] \-\-lco, \-\-layer\-creation\-option = Layer creation option [may be repeated] \-\-field Attribute or geometry field(s) on which to partition [may be repeated] \-\-scheme Partitioning scheme. SCHEME=hive|flat (default: hive) \-\-pattern Filename pattern (\(aqpart_%010d\(aq for scheme=hive, \(aq{LAYER_NAME}_{FIELD_VALUE}_%010d\(aq for scheme=flat) \-\-feature\-limit Maximum number of features per file \-\-max\-file\-size Maximum file size (MB or GB suffix can be used) \-\-omit\-partitioned\-field Whether to omit partitioned fields from target layer definition \-\-skip\-errors Skip errors when writing features .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector partition\fP\&. .SS read .INDENT 0.0 .INDENT 3.5 .sp .EX * read [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Read a vector dataset. Positional arguments: \-i, \-\-input Input vector datasets [required] Options: \-l, \-\-layer, \-\-input\-layer Input layer name(s) [may be repeated] Advanced Options: \-\-if, \-\-input\-format Input formats [may be repeated] \-\-oo, \-\-open\-option = Open options [may be repeated] .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector pipeline read\fP\&. .SS rename\-layer .INDENT 0.0 .INDENT 3.5 .sp .EX * rename\-layer [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Rename layer(s) of a vector dataset. Options: \-l, \-\-input\-layer Input layer name \-\-output\-layer Output layer name \-\-ascii Force names to ASCII character \-\-lower\-case Force names to lower case (only on ASCII characters) \-\-filename\-compatible Force names to be usable as filenames \-\-reserved\-characters Reserved character(s) to be removed \-\-replacement\-character Replacement character when ASCII conversion not possible \-\-max\-length Maximum length of layer names .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector rename\-layer\fP\&. .SS reproject .INDENT 0.0 .INDENT 3.5 .sp .EX * reproject [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Reproject a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-s, \-\-input\-crs Input CRS \-d, \-\-output\-crs Output CRS [required] .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector reproject\fP\&. .SS segmentize .INDENT 0.0 .INDENT 3.5 .sp .EX * segmentize [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Segmentize geometries of a vector dataset. Positional arguments: \-\-max\-length Maximum length of a segment [required] Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector segmentize\fP\&. .SS select .INDENT 0.0 .INDENT 3.5 .sp .EX * select [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Select a subset of fields from a vector dataset. Positional arguments: \-\-fields Fields to select (or exclude if \-\-exclude) [may be repeated] [required] Options: \-\-active\-layer Set active layer (if not specified, all) \-\-output\-layer Output layer name \-\-exclude Exclude specified fields Mutually exclusive with \-\-ignore\-missing\-fields \-\-ignore\-missing\-fields Ignore missing fields Mutually exclusive with \-\-exclude .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector select\fP\&. .SS set\-field\-type .INDENT 0.0 .INDENT 3.5 .sp .EX * set\-field\-type [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Modify the type of a field of a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-field\-name Field name [required] Mutually exclusive with \-\-input\-field\-type \-\-input\-field\-type Source field type or subtype [required] Mutually exclusive with \-\-field\-name \-\-output\-field\-type, \-\-field\-type Target field type or subtype [required] .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector set\-field\-type\fP\&. .SS set\-geom\-type .INDENT 0.0 .INDENT 3.5 .sp .EX * set\-geom\-type [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Modify the geometry type of a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) \-\-layer\-only Only modify the layer geometry type Mutually exclusive with \-\-feature\-only \-\-feature\-only Only modify the geometry type of features Mutually exclusive with \-\-layer\-only \-\-geometry\-type Geometry type \-\-multi Force geometries to MULTI geometry types Mutually exclusive with \-\-single \-\-single Force geometries to non\-MULTI geometry types Mutually exclusive with \-\-multi \-\-linear Convert curve geometries to linear types Mutually exclusive with \-\-curve \-\-curve Convert linear geometries to curve types Mutually exclusive with \-\-linear \-\-dim Force geometries to the specified dimension. DIM=XY|XYZ|XYM|XYZM \-\-skip Skip feature when change of feature geometry type failed .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector set\-geom\-type\fP\&. .SS simplify .INDENT 0.0 .INDENT 3.5 .sp .EX * simplify [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Simplify geometries of a vector dataset. Positional arguments: \-\-tolerance Distance tolerance for simplification. [required] Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector simplify\fP\&. .SS simplify\-coverage .INDENT 0.0 .INDENT 3.5 .sp .EX * simplify\-coverage [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Simplify shared boundaries of a polygonal vector dataset. Positional arguments: \-\-tolerance Distance tolerance for simplification. [required] Options: \-\-active\-layer Set active layer (if not specified, all) \-\-preserve\-boundary Whether the exterior boundary should be preserved. .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector simplify\-coverage\fP\&. .SS sort .INDENT 0.0 .INDENT 3.5 .sp .EX * sort [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Spatially order the features in a layer Options: \-\-geometry\-field Name of geometry field to use in sort \-\-method Geometry sorting algorithm. METHOD=hilbert|strtree (default: hilbert) \-\-use\-tempfile Write features to a temporary file to avoid reading the entire input dataset into memory .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector sort\fP\&. .SS sql .INDENT 0.0 .INDENT 3.5 .sp .EX * sql [OPTIONS] |@ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Apply SQL statement(s) to a dataset. Positional arguments: \-\-sql |@ SQL statement(s) [may be repeated] [required] Options: \-l, \-\-output\-layer Output layer name(s) [may be repeated] \-\-dialect SQL dialect (e.g. OGRSQL, SQLITE) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector sql\fP\&. .SS swap\-xy .INDENT 0.0 .INDENT 3.5 .sp .EX * swap\-xy [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Swap X and Y coordinates of geometries of a vector dataset. Options: \-\-active\-layer Set active layer (if not specified, all) \-\-active\-geometry Geometry field name to which to restrict the processing (if not specified, all) .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector swap\-xy\fP\&. .SS tee .INDENT 0.0 .INDENT 3.5 .sp .EX * tee [OPTIONS] [...] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Pipes the input into the output stream and side nested pipelines. Positional arguments: \-\-tee\-pipeline Nested pipeline [1.. values] .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%Output nested pipeline\fP\&. .SS update .INDENT 0.0 .INDENT 3.5 .sp .EX * update [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Update an existing vector dataset with an input vector dataset. Positional arguments: \-o, \-\-output Output vector dataset [required] Options: \-\-input\-layer Input layer name \-\-output\-layer Output layer name \-\-mode Set update mode. MODE=merge|update\-only|append\-only (default: merge) \-\-key Field(s) used as a key to identify features [may be repeated] Advanced Options: \-\-output\-oo, \-\-output\-open\-option = Output open options [may be repeated] .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector update\fP\&. .SS write .INDENT 0.0 .INDENT 3.5 .sp .EX * write [OPTIONS] \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Write a vector dataset. Positional arguments: \-o, \-\-output Output vector dataset [required] Options: \-f, \-\-of, \-\-format, \-\-output\-format Output format (\(dqGDALG\(dq allowed) \-\-co, \-\-creation\-option = Creation option [may be repeated] \-\-lco, \-\-layer\-creation\-option = Layer creation option [may be repeated] \-\-overwrite Whether overwriting existing output dataset is allowed \-\-update Whether to open existing dataset in update mode \-\-overwrite\-layer Whether overwriting existing output layer is allowed \-\-append Whether appending to existing layer is allowed Mutually exclusive with \-\-upsert \-l, \-\-output\-layer Output layer name \-\-skip\-errors Skip errors when writing features \-\-no\-create\-empty\-layers Avoid creating layers to which no features will be written Advanced Options: \-\-output\-oo, \-\-output\-open\-option = Output open options [may be repeated] \-\-upsert Upsert features (implies \(aqappend\(aq) Mutually exclusive with \-\-append .EE .UNINDENT .UNINDENT .sp Details for options can be found in \fI\%gdal vector pipeline write\fP\&. .SH GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET) .sp A pipeline can be serialized as a JSON file using the \fBGDALG\fP output format. The resulting file can then be opened as a vector dataset using the \fI\%GDALG: GDAL Streamed Algorithm\fP driver, and apply the specified pipeline in a on\-the\-fly / streamed way. .sp The \fBcommand_line\fP member of the JSON file should nominally be the whole command line without the final \fBwrite\fP step, and is what is generated by \fBgdal vector pipeline ! .... ! write out.gdalg.json\fP\&. .INDENT 0.0 .INDENT 3.5 .sp .EX { \(dqtype\(dq: \(dqgdal_streamed_alg\(dq, \(dqcommand_line\(dq: \(dqgdal vector pipeline ! read in.gpkg ! reproject \-\-output\-crs=EPSG:32632\(dq } .EE .UNINDENT .UNINDENT .sp The final \fBwrite\fP step can be added but if so it must explicitly specify the \fBstream\fP output format and a non\-significant output dataset name. .INDENT 0.0 .INDENT 3.5 .sp .EX { \(dqtype\(dq: \(dqgdal_streamed_alg\(dq, \(dqcommand_line\(dq: \(dqgdal vector pipeline ! read in.gpkg ! reproject \-\-output\-crs=EPSG:32632 ! write \-\-output\-format=streamed streamed_dataset\(dq } .EE .UNINDENT .UNINDENT .SH SUBSTITUTIONS .sp Added in version 3.12. .sp It is possible to use \fBgdal pipeline\fP to use a pipeline already serialized in a .gdal.json file, and customize its existing steps, typically changing an input filename, specifying an output filename, or adding/modifying arguments of steps. .sp See \fI\%Substitutions\fP\&. .SH NESTED PIPELINE .sp Added in version 3.12. .sp It is possible to create \(dqnested pipelines\(dq, i.e. pipelines inside pipelines. .sp A nested pipeline is delimited by square brackets (\fB[\fP and \fB]\fP) surrounded by a space character. .sp There are 2 kinds of nested pipelines: .INDENT 0.0 .IP \(bu 2 input nested pipelines: where the result dataset of the nested pipeline is used as the input dataset for an argument of the main pipeline. .IP \(bu 2 output nested pipelines: where the output of a step of the main pipeline is used as the input of the nested pipeline in a following step. Output nested pipelines can only be used with the \fBtee\fP step. .UNINDENT .sp See \fI\%Nested pipeline\fP\&. .SH RETURN STATUS CODE .sp The program returns status code 0 in case of success, and non\-zero in case of error (non\-blocking errors emitted as warnings are considered as a successful execution). .SH EXAMPLES .SS Example 1: Reproject a GeoPackage file to CRS EPSG:32632 (\(dqWGS 84 / UTM zone 32N\(dq) .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal vector pipeline ! read in.gpkg ! reproject \-\-output\-crs=EPSG:32632 ! write out.gpkg \-\-overwrite .EE .UNINDENT .UNINDENT .SS Example 2: Serialize the command of a reprojection of a GeoPackage file in a GDALG file, and later read it .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal vector pipeline ! read in.gpkg ! reproject \-\-output\-crs=EPSG:32632 ! write in_epsg_32632.gdalg.json \-\-overwrite $ gdal vector info in_epsg_32632.gdalg.json .EE .UNINDENT .UNINDENT .SS Example 3: Union 2 source shapefiles (with similar structure), reproject them to EPSG:32632, keep only cities larger than 1 million inhabitants and write to a GeoPackage .INDENT 0.0 .INDENT 3.5 .sp .EX $ gdal vector pipeline ! concat \-\-single \-\-output\-crs=EPSG:32632 france.shp belgium.shp ! filter \-\-where \(dqpop > 1e6\(dq ! write out.gpkg \-\-overwrite .EE .UNINDENT .UNINDENT .SS Example 4: Filter and reproject a GeoPackage layer to a GeoJSON file .sp When using \fI\%select\fP to restrict the output fields, ensure that it appears \fBafter\fP the \fI\%filter\fP step in the pipeline when the filter expression references fields. If a field required by the filter is removed by \fBselect\fP, it will not be available and the command will fail with: \fBERROR 1: \(dqworldcity\(dq not recognised as an available field.\fP .sp If you want the output to contain spatial data, you must also include the geometry field in the selected fields. In this example the source dataset has no named geometry column. In such cases the special field \fB_ogr_geometry_\fP can be used to reference the geometry. If no geometry field is included, reprojection will fail with: \fBERROR 1: reproject: Layer \(aqne_110m_populated_places_simple\(aq has no spatial reference system\fP\&. .sp Finally, ensure that there are \fBno spaces\fP between the field names in the list. For example: \fB\(dq_ogr_geometry_, name\(dq\fP will produce the error: \fBERROR 1: Field \(aq name\(aq does not exist in layer \(aqne_110m_populated_places_simple\(aq.\fP Bash .INDENT 0.0 .INDENT 3.5 .sp .EX gdal vector pipeline \e ! read natural_earth_vector.gpkg \-\-layer ne_110m_populated_places_simple \e ! filter \-\-where \(dqworldcity = 1\(dq \e ! select \-\-fields \(dq_ogr_geometry_,name\(dq \e ! reproject \-\-output\-crs=ESRI:53009 \e ! write worldcity_53009.geojson \-\-overwrite .EE .UNINDENT .UNINDENT PowerShell .INDENT 0.0 .INDENT 3.5 .sp .EX gdal vector pipeline \(ga ! read natural_earth_vector.gpkg \-\-layer ne_110m_populated_places_simple \(ga ! filter \-\-where \(dqworldcity = 1\(dq \(ga ! select \-\-fields \(dq_ogr_geometry_,name\(dq \(ga ! reproject \-\-output\-crs=ESRI:53009 \(ga ! write worldcity_53009.geojson \-\-overwrite .EE .UNINDENT .UNINDENT [image] .SH AUTHOR Even Rouault .SH COPYRIGHT 1998-2026 .\" Generated by docutils manpage writer. .