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

FreeBSD Manual Pages

  
 
  

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

NAME
       gdal-raster-pipeline - Process a	raster dataset

       Added in	version	3.11.

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

	  Process a raster 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 [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, and the last one	write.
       Each  step  has	its  own positional or non-positional arguments. Apart
       from read and write, all	other steps can	potentially  be	 used  several
       times in	a pipeline.

       Potential steps are:

        read

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

	  Read a raster	dataset.

	  Positional arguments:
	    -i,	--input	<INPUT>			 Input raster dataset [required]

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

        aspect

	  * aspect [OPTIONS]
	  ------------------

	  Generate an aspect map

	  Options:
	    -b,	--band <BAND>		   Input band (1-based index) (default:	1)
	    --convention <CONVENTION>	   Convention for output angles. CONVENTION=azimuth|trigonometric-angle	(default: azimuth)
	    --gradient-alg <GRADIENT-ALG>  Algorithm used to compute terrain gradient. GRADIENT-ALG=Horn|ZevenbergenThorne (default: Horn)
	    --zero-for-flat		   Whether to output zero for flat areas
	    --no-edges			   Do not try to interpolate values at dataset edges or	close to nodata	values

       Details for options can be found	in gdal	raster aspect.

        clip

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

	  Clip a raster	dataset.

	  Options:
	    --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
	    --only-bbox			     For 'geometry' and	'like',	only consider their bounding box
	    --allow-bbox-outside-source	     Allow clipping box	to include pixels outside input	dataset
	    --add-alpha			     Adds an alpha mask	band to	the destination	when the source	raster have none.

       Details for options can be found	in gdal	raster clip.

        color-map

	  * color-map [OPTIONS]
	  ---------------------

	  Generate a RGB or RGBA dataset from a	single band, using a color map

	  Options:
	    -b,	--band <BAND>			 Input band (1-based index) (default: 1)
	    --color-map	<COLOR-MAP>		 Color map filename
	    --add-alpha				 Adds an alpha mask band to the	destination.
	    --color-selection <COLOR-SELECTION>	 How to	compute	output colors from input values. COLOR-SELECTION=interpolate|exact|nearest (default: interpolate)

       Details for options can be found	in gdal	raster color-map.

        edit

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

	  Edit a raster	dataset.

	  Options:
	    --crs <CRS>		      Override CRS (without reprojection)
	    --bbox <BBOX>	      Bounding box as xmin,ymin,xmax,ymax
	    --nodata <NODATA>	      Assign a specified nodata	value to output	bands ('none', numeric value, 'nan', 'inf', '-inf')
	    --metadata <KEY>=<VALUE>  Add/update dataset metadata item [may be repeated]
	    --unset-metadata <KEY>    Remove dataset metadata item [may	be repeated]

       Details for options can be found	in gdal	raster edit.

        hillshade

	  * hillshade [OPTIONS]
	  ---------------------

	  Generate a shaded relief map

	  Options:
	    -b,	--band <BAND>		   Input band (1-based index) (default:	1)
	    -z,	--zfactor <ZFACTOR>	   Vertical exaggeration used to pre-multiply the elevations
	    --xscale <XSCALE>		   Ratio of vertical units to horizontal X axis	units
	    --yscale <YSCALE>		   Ratio of vertical units to horizontal Y axis	units
	    --azimuth <AZIMUTH>		   Azimuth of the light, in degrees (default: 315)
	    --altitude <ALTITUDE>	   Altitude of the light, in degrees (default: 45)
	    --gradient-alg <GRADIENT-ALG>  Algorithm used to compute terrain gradient. GRADIENT-ALG=Horn|ZevenbergenThorne (default: Horn)
	    --variant <VARIANT>		   Variant of the hillshading algorithm. VARIANT=regular|combined|multidirectional|Igor	(default: regular)
	    --no-edges			   Do not try to interpolate values at dataset edges or	close to nodata	values

       Details for options can be found	in gdal	raster hillshade.

        reproject

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

	  Reproject a raster dataset.

	  Options:
	    -s,	--src-crs <SRC-CRS>		       Source CRS
	    -d,	--dst-crs <DST-CRS>		       Destination CRS
	    -r,	--resampling <RESAMPLING>	       Resampling method. RESAMPLING=nearest|bilinear|cubic|cubicspline|lanczos|average|rms|mode|min|max|med|q1|q3|sum (default: nearest)
	    --resolution <xres>,<yres>		       Target resolution (in destination CRS units)
						       Mutually	exclusive with --size
	    --size <width>,<height>		       Target size in pixels
						       Mutually	exclusive with --resolution
	    --bbox <BBOX>			       Target bounding box (in destination CRS units)
	    --bbox-crs <BBOX-CRS>		       CRS of target bounding box

	  Advanced Options:
	    --target-aligned-pixels		       Round target extent to target resolution
	    --src-nodata <SRC-NODATA>		       Set nodata values for input bands ('None' to unset). [1.. values]
	    --dst-nodata <DST-NODATA>		       Set nodata values for output bands ('None' to unset). [1.. values]
	    --add-alpha				       Adds an alpha mask band to the destination when the source raster have none.
	    --wo, --warp-option	<NAME>=<VALUE>	       Warping option(s) [may be repeated]
	    --to, --transform-option <NAME>=<VALUE>    Transform option(s) [may	be repeated]
	    --et, --error-threshold <ERROR-THRESHOLD>  Error threshold

       Details for options can be found	in gdal	raster reproject.

        resize

	  * resize [OPTIONS]
	  ------------------

	  Resize a raster dataset without changing the georeferenced extents.

	  Options:
	    --size <width[%]>,<height[%]>  Target size in pixels (or percentage	if using '%' suffix) [required]
	    -r,	--resampling <RESAMPLING>  Resampling method. RESAMPLING=nearest|bilinear|cubic|cubicspline|lanczos|average|mode (default: nearest)

       Details for options can be found	in gdal	raster resize.

        roughness

	  * roughness [OPTIONS]
	  ---------------------

	  Generate a roughness map

	  Options:
	    -b,	--band <BAND>	    Input band (1-based	index) (default: 1)
	    --no-edges		    Do not try to interpolate values at	dataset	edges or close to nodata values

       Details for options can be found	in gdal	raster roughness.

        scale

	  * scale [OPTIONS]
	  -----------------

	  Scale	the values of the bands	of a raster dataset.

	  Options:
	    --ot, --datatype, --output-data-type <OUTPUT-DATA-TYPE>  Output data type. OUTPUT-DATA-TYPE=Byte|Int8|UInt16|Int16|UInt32|Int32|UInt64|Int64|CInt16|CInt32|Float16|Float32|Float64|CFloat32|CFloat64
	    -b,	--band <BAND>					     Select band to restrict the scaling (1-based index)
	    --src-min <SRC-MIN>					     Minimum value of the source range
	    --src-max <SRC-MAX>					     Maximum value of the source range
	    --dst-min <DST-MIN>					     Minimum value of the destination range
	    --dst-max <DST-MAX>					     Maximum value of the destination range
	    --exponent <EXPONENT>				     Exponent to apply non-linear scaling with a power function
	    --no-clip						     Do	not clip input values to [srcmin, srcmax]

       Details for options can be found	in gdal	raster scale.

        select

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

	  Select a subset of bands from	a raster dataset.

	  Positional arguments:
	    -b,	--band <BAND>	    Band(s) (1-based index, 'mask' or 'mask:<band>') [1.. values] [required]

	  Options:
	    --mask <MASK>	    Mask band (1-based index, 'mask', 'mask:<band>' or 'none')

       Details for options can be found	in gdal	raster select.

        set-type

	  * set-type [OPTIONS]
	  --------------------

	  Modify the data type of bands	of a raster dataset.

	  Options:
	    --ot, --datatype, --output-data-type <OUTPUT-DATA-TYPE>  Output data type. OUTPUT-DATA-TYPE=Byte|Int8|UInt16|Int16|UInt32|Int32|UInt64|Int64|CInt16|CInt32|Float16|Float32|Float64|CFloat32|CFloat64 [required]

       Details for options can be found	in gdal	raster set-type.

        slope

	  * slope [OPTIONS]
	  -----------------

	  Generate a slope map

	  Options:
	    -b,	--band <BAND>		   Input band (1-based index) (default:	1)
	    --unit <UNIT>		   Unit	in which to express slopes. UNIT=degree|percent	(default: degree)
	    --xscale <XSCALE>		   Ratio of vertical units to horizontal X axis	units
	    --yscale <YSCALE>		   Ratio of vertical units to horizontal Y axis	units
	    --gradient-alg <GRADIENT-ALG>  Algorithm used to compute terrain gradient. GRADIENT-ALG=Horn|ZevenbergenThorne (default: Horn)
	    --no-edges			   Do not try to interpolate values at dataset edges or	close to nodata	values

       Details for options can be found	in gdal	raster slope.

        tpi

	  * tpi	[OPTIONS]
	  ---------------

	  Generate a Topographic Position Index	(TPI) map

	  Options:
	    -b,	--band <BAND>	    Input band (1-based	index) (default: 1)
	    --no-edges		    Do not try to interpolate values at	dataset	edges or close to nodata values

       Details for options can be found	in gdal	raster tpi.

        tri

	  * tri	[OPTIONS]
	  ---------------

	  Generate a Terrain Ruggedness	Index (TRI) map

	  Options:
	    -b,	--band <BAND>	     Input band	(1-based index)	(default: 1)
	    --algorithm	<ALGORITHM>  Algorithm to compute TRI. ALGORITHM=Riley|Wilson (default:	Riley)
	    --no-edges		     Do	not try	to interpolate values at dataset edges or close	to nodata values

       Details for options can be found	in gdal	raster tri.

        unscale

	  * unscale [OPTIONS]
	  -------------------

	  Convert scaled values	of a raster dataset into unscaled values.

	  Options:
	    --ot, --datatype, --output-data-type <OUTPUT-DATA-TYPE>  Output data type. OUTPUT-DATA-TYPE=Byte|Int8|UInt16|Int16|UInt32|Int32|UInt64|Int64|CInt16|CInt32|Float16|Float32|Float64|CFloat32|CFloat64

       Details for options can be found	in gdal	raster unscale.

        write

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

	  Write	a raster dataset.

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

	  Options:
	    -f,	--of, --format,	--output-format	<OUTPUT-FORMAT>	 Output	format ("GDALG"	allowed)
	    --co, --creation-option <KEY>=<VALUE>		 Creation option [may be repeated]
	    --overwrite						 Whether overwriting existing output is	allowed

DESCRIPTION
       gdal  raster  pipeline can be used to process a raster 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	raster	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 raster pipeline ! .... ! write out.gdalg.json.

	  {
	      "type": "gdal_streamed_alg",
	      "command_line": "gdal raster pipeline ! read in.tif ! 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 raster pipeline ! read in.tif ! reproject --dst-crs=EPSG:32632 ! write --output-format=streamed streamed_dataset"
	  }

EXAMPLES
   Example  1:	Reproject a GeoTIFF file to CRS	EPSG:32632 ("WGS 84 / UTM zone
       32N") and adding	a metadata item
	  $ gdal raster	pipeline --progress ! read in.tif ! reproject --dst-crs=EPSG:32632 ! edit --metadata AUTHOR=EvenR ! write out.tif --overwrite

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

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

COPYRIGHT
       1998-2025

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

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

home | help