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 arithmetic
     supported by numpy arrays such as +, -, *, and / along with logical  opera-
     tors  such as >.  Note that all files must have the same dimensions (unless
     the --extent option is used), but no projection checking is performed  (un-
     less the --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 options
	    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).  See Example 10.

     -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).  The effect will be to create a 3D numpy
	    array.  Since GDAL 3.5, wildcard exceptions (using ?,  *)  are  sup-
	    ported  for  all  shells/platforms.  In such a case, the calculation
	    formula must use this input as a 3D array and must return a 2D array
	    (see Example 3).  If the calculation does not return a 2D  array  an
	    error will 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 indicate
	    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 setting a No-
	       DataValue.

     --hideNoData
	    Added 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   --No-
	    DataValue=<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 intermediate
	       arithmetic operations using operands of the same type, the opera-
	       tion 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 ob-
	    ject) (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>
	    Added in version 3.3.

	    This option determines how to handle rasters with different extents.
	    This option is mutually exclusive with the projwin option, which  is
	    used for providing a custom extent.

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

	    ignore (default) - only the dimensions of the rasters are  compared.
	    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  rec-
	    tangle that contains all the input extents.

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

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

	    This option provides a custom extent for the output, it is	mutually
	    exclusive with the extent option.

     --projectionCheck
	    Added in version 3.3.

	    By	default,  no  projection checking will be performed.  By setting
	    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 op-
	    tions may be listed. See format  specific  documentation  for  legal
	    creation options for each format.

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

     --allBands=[a-z, A-Z]
	    Apply the expression to all bands of a given raster. When --allBands
	    is	used,  --calc  may  be	specified only once.  See Example 11 and
	    Example 12.

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

     --debug
	    Print debugging information.

     --quiet
	    Suppress progress messages.

PYTHON OPTIONS
     Added in version 3.3.

     The  following  options  are  available  by  using  the Python interface 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 will be returned from the function
	    and not closed.

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

EXAMPLES
   Example 1: Average of two files
	gdal_calc -A input1.tif -B input2.tif --outfile=result.tif --calc="(A+B)/2"

     CAUTION:
	If A and B inputs both have integer data types, integer division will be
	performed.   To  avoid this, you can convert of one of the operands to a
	floating point type before the division operation.

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

   Example 2: Summing three files
	gdal_calc -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="A+B+C"

   Example 3: Combining three files into a 3D array and summing
	gdal_calc -A input1.tif -A input2.tif -A input3.tif --outfile=result.tif --calc="numpy.sum(A,axis=0)".

   Example 4: Average of three files
	gdal_calc -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="(A+B+C)/3"

   Example 5: Average of three files, using 3D array
	gdal_calc -A input1.tif input2.tif input3.tif --outfile=result.tif --calc="numpy.average(a,axis=0)".

   Example 6: Maximum of three files
	gdal_calc -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="numpy.max((A,B,C),axis=0)"

   Example 7: Maximum of three files, using a 3D array
	gdal_calc -A input1.tif input2.tif input3.tif --outfile=result.tif --calc="numpy.max(A,axis=0)"

   Example 8: Setting values of zero and below to NODATA
	gdal_calc -A input.tif --outfile=result.tif --calc="A*(A>0)" --NoDataValue=0

   Example 9: 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)"

   Example 10: Performing two calculations and storing results in separate 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)"

   Example 11: Add a raster to each band in a 3-band raster
	gdal_calc -A 3band.tif -B 1band.tif --outfile result.tif --calc "A+B" --allBands A

     The result will have three bands, where each band contains  the  values  of
     1band.tif added to the corresponding band in 3band.tif.

   Example 12: Add two three-band rasters
	gdal_calc -A 3band_a.tif -B 3band_b.tif --outfile result.tif --calc "A+B" --allBands A --allBands B

     The  result  will	have three bands, where each band contains the values of
     the corresponding band of 3band_a.tif added to the  corresponding	band  of
     3band_b.tif.

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

COPYRIGHT
     1998-2025

				  Oct 29, 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+15.1.quarterly>

home | help