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

FreeBSD Manual Pages

  
 
  

home | help
GDAL_CALC(1)			     GDAL			  GDAL_CALC(1)

NAME
       gdal_calc - Command line	raster calculator with numpy syntax.

SYNOPSIS
	  gdal_calc [--help] [--help-general]
		       --calc=expression --outfile=<out_filename> [-A <filename>]
		       [--A_band=<n>] [-B...-Z <filename>] [<other_options>]

       DESCRIPTION

       Command	line raster calculator with numpy syntax. Use any basic	arith-
       metic supported by numpy	arrays such as +, -, *,	and / along with logi-
       cal operators such as >.	 Note that all files must have the same	dimen-
       sions (unless extent option is used), but  no  projection  checking  is
       performed (unless projectionCheck option	is used).

       NOTE:
	  gdal_calc  is	a Python utility, and is only available	if GDAL	Python
	  bindings are available.

       --help Show this	help message and exit

       --help-general
	      Gives a brief usage message for the generic GDAL commandline op-
	      tions and	exit.

       --calc=<expression>
	      Calculation in numpy syntax using	+, -, /, *, or any numpy array
	      functions	(i.e. log10()).	 Multiple --calc options can be	listed
	      to produce a multiband file (GDAL	>= 3.2).

       -A <filename>
	      Input gdal raster	file, you  can	use  any  letter  (a-z,	 A-Z).
	      (lower case supported since GDAL 3.3)

	      A	letter may be repeated,	or several values (separated by	space)
	      can  be provided (GDAL >=	3.3).  Since GDAL 3.5, wildcard	excep-
	      tions (using ?, *) are supported for all shells/platforms.   The
	      effect  will  be to create a 3-dim numpy array.  In such a case,
	      the calculation formula must use this input as a 3-dim array and
	      must return a 2D array (see examples below).  In case the	calcu-
	      lation does not return a 2D array	an error would be generated.

       --A_band=<n>
	      Number of	raster band for	file A (default	1).

       --outfile=<filename>
	      Output file to generate or fill.

       --NoDataValue=<value>
	      Output NoDataValue (default datatype specific value).  To	 indi-
	      cate  not	 setting a NoDataValue use --NoDataValue=none (GDAL >=
	      3.3)

	      NOTE:
		 Using the  Python  API:  None	value  will  indicate  default
		 datatype specific value.  'none' value	will indicate not set-
		 ting a	NoDataValue.

       --hideNoData
	      New in version 3.3.

	      Ignores  the  input  bands  NoDataValue.	 By default, the input
	      bands NoDataValue	are not	participating in the calculation.   By
	      setting this setting - no	special	treatment will be performed on
	      the  input  NoDataValue.	and  they will be participating	in the
	      calculation as any other value.  The output will not have	a  set
	      NoDataValue, unless you explicitly specified a specific value by
	      setting --NoDataValue=<value>.

       --type=<datatype>
	      Output  datatype,	 must  be  one	of [Byte, Int8,	UInt16,	Int16,
	      UInt32, Int32, UInt64, Int64, Float64, Float32, CInt16,  CInt32,
	      CFloat64,	CFloat32].

	      NOTE:
		 Despite  the datatype set using --type, when doing intermedi-
		 ate arithmetic	operations using operands of  the  same	 type,
		 the  operation	 result	will honor the original	datatype. This
		 may lead into unexpected results in the final result.

	      NOTE:
		 UInt64, Int64,	CInt16,	CInt32,	CFloat32, CFloat64  have  been
		 added in GDAL 3.5.3 Int8 has been added in GDAL 3.7

       --format=<gdal_format>
	      GDAL format for output file.

       --color-table=<filename>
	      Allows  specifying  a filename of	a color	table (or a ColorTable
	      object) (with Palette Index interpretation) to be	used  for  the
	      output  raster.	Supported formats: txt (i.e. like gdaldem, but
	      color names are not supported), qlr,  qml	 (i.e.	exported  from
	      QGIS)

       --extent=<option>
	      New in version 3.3.

	      This  option determines how to handle rasters with different ex-
	      tents.  This option is mutually exclusive	with the  projwin  op-
	      tion, which is used for providing	a custom extent.

	      For  all	the  options below the pixel size (resolution) and SRS
	      (Spatial Reference System) of all	the input rasters must be  the
	      same.

	      ignore  (default)	 - only	the dimensions of the rasters are com-
	      pared. if	the dimensions do not agree the	operation will fail.

	      fail - the dimensions and	the extent  (bounds)  of  the  rasters
	      must agree, otherwise the	operation will fail.

	      union  -	the  extent (bounds) of	the output will	be the minimal
	      rectangle	that contains all the input extents.

	      intersect	- the extent (bounds) of the output will be the	 maxi-
	      mal rectangle that is contained in all the input extents.

       --projwin <ulx> <uly> <lrx> <lry>
	      New in version 3.3.

	      This option provides a custom extent for the output, it is mutu-
	      ally exclusive with the extent option.

       --projectionCheck
	      New in version 3.3.

	      By  default,  no projection checking will	be performed.  By set-
	      ting this	option,	if the projection is  not  the	same  for  all
	      bands then the operation will fail.

       --creation-option=<option>
	      Passes  a	creation option	to the output format driver.  Multiple
	      options may be listed. See format	specific documentation for le-
	      gal creation options for each format.

       --co=<option>
	      The same as creation-option.

       --allBands=[a-z,	A-Z]
	      Process all bands	of given raster	(a-z, A-Z). Requires a	single
	      calc for all bands.

       --overwrite
	      Overwrite	 output	file if	it already exists. Overwriting must be
	      understood  here	as  deleting  and  recreating  the  file  from
	      scratch.	Note that if this option is not	specified and the out-
	      put file already exists, it will be updated in place.

       --debug
	      Print debugging information.

       --quiet
	      Suppress progress	messages.

PYTHON OPTIONS
       New in version 3.3.

       The following options are available by using function the python	inter-
       face of gdal_calc.  They	are not	available using	the command prompt.

       user_namespace
	      A	dictionary of custom functions or other	names to be  available
	      for use in the Calc expression.

       return_ds
	      If  enabled, the output dataset would be returned	from the func-
	      tion and not closed.

       color_table
	      Allows specifying	a ColorTable object (with Palette Index	inter-
	      pretation) to be used for	the output raster.

EXAMPLES
       Add two files together:

	  gdal_calc -A input1.tif -B input2.tif	--outfile=result.tif --calc="A+B"

       Average of two layers:

	  gdal_calc -A input1.tif -B input2.tif	--outfile=result.tif --calc="(A+B)/2"

       NOTE:
	  In the previous example, beware that if A and	B inputs  are  of  the
	  same	datatype, for example integers,	you may	need to	force the con-
	  version of one of the	operands before	the division operation.

	      gdal_calc	-A input.tif -B	input2.tif --outfile=result.tif	--calc="(A.astype(numpy.float64) + B) /	2"

       Add three files together	(two options with the same result):

	  gdal_calc -A input1.tif -B input2.tif	-C input3.tif --outfile=result.tif --calc="A+B+C"

	  gdal_calc -A input1.tif -A input2.tif	-A input3.tif --outfile=result.tif --calc="numpy.sum(A,axis=0)".

       Average of three	layers (two options with the same result):

	  gdal_calc -A input1.tif -B input2.tif	-C input3.tif --outfile=result.tif --calc="(A+B+C)/3"

	  gdal_calc -A input1.tif input2.tif input3.tif	--outfile=result.tif --calc="numpy.average(a,axis=0)".

       Maximum of three	layers	(two options with the same result):

	  gdal_calc -A input1.tif -B input2.tif	-C input3.tif --outfile=result.tif --calc="numpy.max((A,B,C),axis=0)"

	  gdal_calc -A input1.tif input2.tif input3.tif	--outfile=result.tif --calc="numpy.max(A,axis=0)"

       Set values of zero and below to null:

	  gdal_calc -A input.tif --outfile=result.tif --calc="A*(A>0)" --NoDataValue=0

       Using logical operator to keep a	range of values	from input:

	  gdal_calc -A input.tif --outfile=result.tif --calc="A*logical_and(A>100,A<150)"

       Work with multiple bands:

	  gdal_calc -A input.tif --A_band=1 -B input.tif --B_band=2 \
	    --outfile=result.tif --calc="(A+B)/2" --calc="B*logical_and(A>100,A<150)"

AUTHOR
       Chris Yesson <chris dot yesson at ioz dot ac dot	uk>, Etienne  Tourigny
       <etourigny dot dev at gmail dot com>

COPYRIGHT
       1998-2025

				 Feb 11, 2025			  GDAL_CALC(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gdal_calc&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help