GDAL_CALC(1) GDAL GDAL_CALC(1)
NAME
gdal_calc - Command line raster calculator with numpy syntax.
SYNOPSIS
gdal_calc.py --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).
--help Show this help message and exit
-h The same as --help.
--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 (GDAL >= 3.3). 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 calculation 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 [Int32, Int16, Float64, UInt16,
Byte, UInt32, Float32].
NOTE:
Despite the datatype set using --type, when doing intermedi-
ate aritmethic 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.
--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 Ref-
erence System) of all the input rasters must be the same. ig-
nore (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 ex-
tent (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 maximal 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.
--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.
EXAMPLE
Add two files together:
gdal_calc.py -A input1.tif -B input2.tif --outfile=result.tif --calc="A+B"
Average of two layers:
gdal_calc.py -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.py -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.py -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="A+B+C"
New in version 3.3.
gdal_calc.py -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.py -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="(A+B+C)/3"
New in version 3.3.
gdal_calc.py -A input1.tif -A input2.tif -A input3.tif --outfile=result.tif --calc="numpy.average(a,axis=0)".
Maximum of three layers (two options with the same result):
gdal_calc.py -A input1.tif -B input2.tif -C input3.tif --outfile=result.tif --calc="numpy.max((A,B,C),axis=0)"
New in version 3.3.
gdal_calc.py -A input1.tif -A input2.tif -A input3.tif --outfile=result.tif --calc="numpy.max(A,axis=0)"
Set values of zero and below to null:
gdal_calc.py -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.py -A input.tif --outfile=result.tif --calc="A*logical_and(A>100,A<150)"
Work with multiple bands:
gdal_calc.py -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-2021
Dec 27, 2021 GDAL_CALC(1)
Generated by dwww version 1.14 on Sat Jun 13 11:24:44 CEST 2026.