Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GDAL-VECTOR-PIPELINE(1)		     GDAL	       GDAL-VECTOR-PIPELINE(1)

NAME
       gdal-vector-pipeline - Process a	vector dataset

       Added in	version	3.11.

SYNOPSIS
	  Usage: gdal vector pipeline [OPTIONS]	<PIPELINE>

	  Process a vector dataset.

	  Positional arguments:

	  Common Options:
	    -h,	--help		    Display help message and exit
	    --json-usage	    Display usage as JSON document and exit
	    --config <KEY>=<VALUE>  Configuration option [may be repeated]
	    --progress		    Display progress bar

	  <PIPELINE> is	of the form: read|concat [READ-OPTIONS]	( ! <STEP-NAME>	[STEP-OPTIONS] )* ! write [WRITE-OPTIONS]

       A  pipeline  chains  several  steps,  separated with the	! (exclamation
       mark) character.	 The first step	must be	read or	concat,	and  the  last
       one  write.  Each  step	has its	own positional or non-positional argu-
       ments. Apart from read, concat and write, all other  steps  can	poten-
       tially be used several times in a pipeline.

       Potential steps are:

        read

	  * read [OPTIONS] <INPUT>
	  ------------------------

	  Read a vector	dataset.

	  Positional arguments:
	    -i,	--input	<INPUT>			      Input vector datasets [required]

	  Options:
	    -l,	--layer, --input-layer <INPUT-LAYER>  Input layer name(s) [may be repeated]

	  Advanced Options:
	    --if, --input-format <INPUT-FORMAT>	      Input formats [may be repeated]
	    --oo, --open-option	<KEY>=<VALUE>	      Open options [may	be repeated]

        concat

	  * concat [OPTIONS] <INPUT>...
	  -----------------------------

	  Concatenate vector datasets.

	  Positional arguments:
	    -i,	--input	<INPUT>					       Input vector datasets [1.. values] [required]

	  Options:
	    -l,	--layer, --input-layer <INPUT-LAYER>		       Input layer name(s) [may	be repeated]
	    --mode <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 <OUTPUT-LAYER>			       Name of the output vector layer (single mode), or template to name the output vector layers (stack mode)
	    --source-layer-field-name <SOURCE-LAYER-FIELD-NAME>	       Name of the new field to	add to contain identificoncation of the	source layer, with value determined from 'source-layer-field-content'
	    --source-layer-field-content <SOURCE-LAYER-FIELD-CONTENT>  A string, possibly using	{AUTO_NAME}, {DS_NAME},	{DS_BASENAME}, {DS_INDEX}, {LAYER_NAME}, {LAYER_INDEX}
	    --field-strategy <FIELD-STRATEGY>			       How to determine	target fields from source fields. FIELD-STRATEGY=union|intersection (default: union)
	    -s,	--src-crs <SRC-CRS>				       Source CRS
	    -d,	--dst-crs <DST-CRS>				       Destination CRS

	  Advanced Options:
	    --if, --input-format <INPUT-FORMAT>			       Input formats [may be repeated]
	    --oo, --open-option	<KEY>=<VALUE>			       Open options [may be repeated]

       Details for options can be found	in gdal	vector concat.

        clip

	  * clip [OPTIONS]
	  ----------------

	  Clip a vector	dataset.

	  Options:
	    --active-layer <ACTIVE-LAYER>    Set active	layer (if not specified, all)
	    --bbox <BBOX>		     Clipping bounding box as xmin,ymin,xmax,ymax
					     Mutually exclusive	with --geometry, --like
	    --bbox-crs <BBOX-CRS>	     CRS of clipping bounding box
	    --geometry <GEOMETRY>	     Clipping geometry (WKT or GeoJSON)
					     Mutually exclusive	with --bbox, --like
	    --geometry-crs <GEOMETRY-CRS>    CRS of clipping geometry
	    --like <DATASET>		     Dataset to	use as a template for bounds
					     Mutually exclusive	with --bbox, --geometry
	    --like-sql <SELECT-STATEMENT>    SELECT statement to run on	the 'like' dataset
					     Mutually exclusive	with --like-where
	    --like-layer <LAYER-NAME>	     Name of the layer of the 'like' dataset
	    --like-where <WHERE-EXPRESSION>  WHERE SQL clause to run on	the 'like' dataset
					     Mutually exclusive	with --like-sql

       Details for options can be found	in gdal	vector clip.

        edit

	  * edit [OPTIONS]
	  ----------------

	  Edit metadata	of a vector dataset.

	  Options:
	    --active-layer <ACTIVE-LAYER>    Set active	layer (if not specified, all)
	    --geometry-type <GEOMETRY-TYPE>  Layer geometry type
	    --crs <CRS>			     Override CRS (without reprojection)
	    --metadata <KEY>=<VALUE>	     Add/update	dataset	metadata item [may be repeated]
	    --unset-metadata <KEY>	     Remove dataset metadata item [may be repeated]
	    --layer-metadata <KEY>=<VALUE>   Add/update	layer metadata item [may be repeated]
	    --unset-layer-metadata <KEY>     Remove layer metadata item	[may be	repeated]

       Details for options can be found	in gdal	vector edit.

        filter

	  * filter [OPTIONS]
	  ------------------

	  Filter a vector dataset.

	  Options:
	    --active-layer <ACTIVE-LAYER>  Set active layer (if	not specified, all)
	    --bbox <BBOX>		   Bounding box	as xmin,ymin,xmax,ymax
	    --where <WHERE>|@<filename>	   Attribute query in a	restricted form	of the queries used in the SQL WHERE statement

       Details for options can be found	in gdal	vector filter.

        geom

	  * geom <COMMAND> [OPTIONS]
	  where	<COMMAND> is one of:
	    - buffer:		   Compute a buffer around geometries of a vector dataset.
	    - explode-collections: Explode geometries of type collection of a vector dataset.
	    - make-valid:	   Fix validity	of geometries of a vector dataset.
	    - segmentize:	   Segmentize geometries of a vector dataset.
	    - set-type:		   Modify the geometry type of a vector	dataset.
	    - simplify:		   Simplify geometries of a vector dataset.
	    - swap-xy:		   Swap	X and Y	coordinates of geometries of a vector dataset.

       Details for options can be found	in gdal	vector geom.

        reproject

	  * reproject [OPTIONS]
	  ---------------------

	  Reproject a vector dataset.

	  Options:
	    --active-layer <ACTIVE-LAYER>  Set active layer (if	not specified, all)
	    -s,	--src-crs <SRC-CRS>	   Source CRS
	    -d,	--dst-crs <DST-CRS>	   Destination CRS [required]

       Details for options can be found	in gdal	vector reproject.

        select

	  * select [OPTIONS] <FIELDS>
	  ---------------------------

	  Select a subset of fields from a vector dataset.

	  Positional arguments:
	    --fields <FIELDS>		   Fields to select (or	exclude	if --exclude) [may be repeated]	[required]

	  Options:
	    --active-layer <ACTIVE-LAYER>  Set active layer (if	not specified, all)
	    --exclude			   Exclude specified fields
					   Mutually exclusive with --ignore-missing-fields
	    --ignore-missing-fields	   Ignore missing fields
					   Mutually exclusive with --exclude

       Details for options can be found	in gdal	vector select.

        sql

	  * sql	[OPTIONS] <statement>|@<filename>
	  ---------------------------------------

	  Apply	SQL statement(s) to a dataset.

	  Positional arguments:
	    --sql <statement>|@<filename>      SQL statement(s)	[may be	repeated] [required]

	  Options:
	    -l,	--output-layer <OUTPUT-LAYER>  Output layer name(s) [may be repeated]
	    --dialect <DIALECT>		       SQL dialect (e.g. OGRSQL, SQLITE)

       Details for options can be found	in gdal	vector sql.

        write

	  * write [OPTIONS] <OUTPUT>
	  --------------------------

	  Write	a vector dataset.

	  Positional arguments:
	    -o,	--output <OUTPUT>				 Output	vector dataset [required]

	  Options:
	    -f,	--of, --format,	--output-format	<OUTPUT-FORMAT>	 Output	format ("GDALG"	allowed)
	    --co, --creation-option <KEY>=<VALUE>		 Creation option [may be repeated]
	    --lco, --layer-creation-option <KEY>=<VALUE>	 Layer creation	option [may be repeated]
	    --overwrite						 Whether overwriting existing output is	allowed
	    --update						 Whether to open existing dataset in update mode
	    --overwrite-layer					 Whether overwriting existing layer is allowed
	    --append						 Whether appending to existing layer is	allowed
	    -l,	--output-layer <OUTPUT-LAYER>			 Output	layer name

DESCRIPTION
       gdal  vector  pipeline can be used to process a vector dataset and per-
       form various processing steps.

GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET)
       A pipeline can be serialized as a JSON file using the GDALG output for-
       mat.  The resulting file	can then be opened as a	vector	dataset	 using
       the  GDALG:  GDAL  Streamed  Algorithm  driver, and apply the specified
       pipeline	in a on-the-fly	/ streamed way.

       The command_line	member of the JSON file	should nominally be the	 whole
       command	line without the final write step, and is what is generated by
       gdal vector pipeline ! .... ! write out.gdalg.json.

	  {
	      "type": "gdal_streamed_alg",
	      "command_line": "gdal vector pipeline ! read in.gpkg ! reproject --dst-crs=EPSG:32632"
	  }

       The final write step can	be added but if	so it must explicitly  specify
       the stream output format	and a non-significant output dataset name.

	  {
	      "type": "gdal_streamed_alg",
	      "command_line": "gdal vector pipeline ! read in.gpkg ! reproject --dst-crs=EPSG:32632 ! write --output-format=streamed streamed_dataset"
	  }

EXAMPLES
   Example  1:	Reproject  a  GeoPackage file to CRS EPSG:32632	("WGS 84 / UTM
       zone 32N")
	  $ gdal vector	pipeline --progress ! read in.gpkg ! reproject --dst-crs=EPSG:32632 ! write out.gpkg --overwrite

   Example 2: Serialize	the command of a reprojection of a GeoPackage file  in
       a GDALG file, and later read it
	  $ gdal vector	pipeline --progress ! read in.gpkg ! reproject --dst-crs=EPSG:32632 ! write in_epsg_32632.gdalg.json --overwrite
	  $ gdal vector	info in_epsg_32632.gdalg.json

   Example 3: None
       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

	  $ gdal vector	pipeline --progress ! concat --single --dst-crs=EPSG:32632 france.shp belgium.shp ! filter --where "pop	> 1e6" ! write out.gpkg	--overwrite

AUTHOR
       Even Rouault <even.rouault@spatialys.com>

COPYRIGHT
       1998-2025

				 Jul 12, 2025	       GDAL-VECTOR-PIPELINE(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gdal-vector-pipeline&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help