Provided by: gdal-bin_3.10.3+dfsg-1build1_amd64 bug

NAME

       gdal_translate - Converts raster data between different formats.

SYNOPSIS

          gdal_translate [--help] [--help-general] [--long-usage]
             [-ot {Byte/Int8/Int16/UInt16/UInt32/Int32/UInt64/Int64/Float32/Float64/
                   CInt16/CInt32/CFloat32/CFloat64}] [-strict]
             [-if <format>]... [-of <format>]
             [-b <band>] [-mask <band>] [-expand {gray|rgb|rgba}]
             [-outsize <xsize>[%]|0 <ysize>[%]|0] [-tr <xres> <yres>]
             [-ovr <level>|AUTO|AUTO-<n>|NONE]
             [-r {nearest,bilinear,cubic,cubicspline,lanczos,average,mode}]
             [-unscale] [-scale[_bn] [<src_min> <src_max> [<dst_min> <dst_max>]]]... [-exponent[_bn] <exp_val>]...
             [-srcwin <xoff> <yoff> <xsize> <ysize>] [-epo] [-eco]
             [-projwin <ulx> <uly> <lrx> <lry>] [-projwin_srs <srs_def>]
             [-a_srs <srs_def>] [-a_coord_epoch <epoch>]
             [-a_ullr <ulx> <uly> <lrx> <lry>] [-a_nodata <value>]
             [-a_gt <gt0> <gt1> <gt2> <gt3> <gt4> <gt5>]
             [-a_scale <value>] [-a_offset <value>]
             [-nogcp] [-gcp <pixel> <line> <easting> <northing> [<elevation>]]...
             |-colorinterp{_bn} {red|green|blue|alpha|gray|undefined|pan|coastal|rededge|nir|swir|mwir|lwir|...}]
             |-colorinterp {red|green|blue|alpha|gray|undefined|pan|coastal|rededge|nir|swir|mwir|lwir|...},...]
             [-mo <META-TAG>=<VALUE>]... [-dmo "DOMAIN:META-TAG=VALUE"]... [-q] [-sds]
             [-co <NAME>=<VALUE>]... [-stats] [-norat] [-noxmp]
             [-oo <NAME>=<VALUE>]...
             <src_dataset> <dst_dataset>

DESCRIPTION

       The  gdal_translate  utility  can  be  used to convert raster data between different formats, potentially
       performing some operations like subsettings, resampling, and rescaling pixels in the process.

       --help Show this help message and exit

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

       -ot <type>
              Force the output image bands to have a specific data type supported by the driver,  which  may  be
              one  of  the following: Byte, Int8, UInt16, Int16, UInt32, Int32, UInt64, Int64, Float32, Float64,
              CInt16, CInt32, CFloat32 or CFloat64.

       -strict
              Don't be forgiving of mismatches and lost data when translating to the output format.

       -if <format>
              Format/driver name to be attempted to open the input file(s). It is  generally  not  necessary  to
              specify  it,  but  it  can be used to skip automatic driver detection, when it fails to select the
              appropriate driver.  This option can be  repeated  several  times  to  specify  several  candidate
              drivers.   Note  that  it  does  not  force those drivers to open the dataset. In particular, some
              drivers have requirements on file extensions.

              New in version 3.2.

       -of <format>
              Select the output format. Starting with GDAL 2.3, if not specified, the format is guessed from the
              extension (previously was GTiff). Use the short format name.

       -b <band>
              Select an input band band for output. Bands are numbered from 1.  Multiple -b switches may be used
              to select a set of input bands to write to the output file, or to reorder bands. band can also  be
              set to "mask,1" (or just "mask") to mean the mask band of the first band of the input dataset.

       -mask <band>
              Select  an input band band to create output dataset mask band. Bands are numbered from 1. band can
              be set to "none" to avoid copying the global mask of the input dataset if it exists. Otherwise  it
              is copied by default ("auto"), unless the mask is an alpha channel, or if it is explicitly used to
              be  a  regular  band  of the output dataset ("-b mask"). band can also be set to "mask,1" (or just
              "mask") to mean the mask band of the 1st band of the input dataset.

       -expand gray|rgb|rgba
              To expose a dataset with 1 band with a color table as a dataset with 3 (RGB) or  4  (RGBA)  bands.
              Useful  for  output  drivers  such  as JPEG, JPEG2000, MrSID, ECW that don't support color indexed
              datasets. The 'gray' value enables to expand a dataset with a color table that only contains  gray
              levels to a gray indexed dataset.

       -outsize <xsize>[%]|0 <ysize>[%]|0
              Set  the  size of the output file.  Outsize is in pixels and lines unless '%' is attached in which
              case it is as a fraction of the input image size.  If one of the 2 values is set to 0,  its  value
              will be determined from the other one, while maintaining the aspect ratio of the source dataset.

       -tr <xres> <yres>
              set target resolution. The values must be expressed in georeferenced units.  Both must be positive
              values. This is mutually exclusive with -outsize, -a_ullr, and -a_gt.

       -ovr {<level>|AUTO|AUTO-<n>|NONE}
              New in version 3.6.

              To specify which overview level of source file must be used. The default choice, AUTO, will select
              the  overview  level  whose resolution is the closest to the target resolution. Specify an integer
              value (0-based, i.e. 0=1st overview level) to select a particular level. Specify AUTO-n where n is
              an integer greater or equal to 1, to select an overview level below the AUTO one. Or specify  NONE
              to force the base resolution to be used (can be useful if overviews have been generated with a low
              quality resampling method, and a higher quality resampling method is specified with -r.

              When -ovr is specified to an integer value, and none of -outsize and -tr is specified, the size of
              the overview will be used as the output size.

              When -ovr is specified, values of -srcwin, when specified, should be expressed as pixel offset and
              size of the full resolution source dataset.  Similarly when using -outsize with percentage values,
              they refer to the size of the full resolution source dataset.

       -r {nearest|bilinear|cubic|cubicspline|lanczos|average|rms|mode}
              Select a resampling algorithm.

              nearest (default) applies a nearest neighbour (simple sampling) resampler

              average  computes  the average of all non-NODATA contributing pixels. Starting with GDAL 3.1, this
              is a weighted average taking into account properly the weight of source  pixels  not  contributing
              fully to the target pixel.

              rms computes the root mean squared / quadratic mean of all non-NODATA contributing pixels (GDAL >=
              3.3)

              bilinear applies a bilinear convolution kernel.

              cubic applies a cubic convolution kernel.

              cubicspline applies a B-Spline convolution kernel.

              lanczos applies a Lanczos windowed sinc convolution kernel.

              mode selects the value which appears most often of all the sampled points.

       -scale [<src_min> <src_max> [<dst_min> <dst_max>]]
              Rescale the input pixels values from the range src_min to src_max to the range dst_min to dst_max.
              If  omitted  the  output  range is 0 to 255.  If omitted the input range is automatically computed
              from the source dataset, in its whole (not just the window of interest potentially specified  with
              -srcwin  or  -projwin).  This  may  be a slow operation on a large source dataset, and if using it
              multiple times for several gdal_translate invocation, it might  be  beneficial  to  call  gdalinfo
              -stats  {source_dataset}  priorly  to  precompute statistics, for formats that support serializing
              statistics computations (GeoTIFF, VRT...)  Note that the values specified after  -scale  are  only
              used to compute a scale and offset to apply to the input raster values. In particular, src_min and
              src_max  are  not  used to clip input values unless -exponent is also specified.  Instead of being
              clipped, source values that are outside the range of src_min and src_max will be scaled to  values
              outside  the  range  of  dst_min and dst_max.  If clipping without exponential scaling is desired,
              -exponent 1 can be used.  -scale can be repeated several times (if specified only  once,  it  also
              applies  to  all  bands  of  the output dataset), so as to specify per band parameters. It is also
              possible to use the -scale_bn syntax where bn is a band number (e.g. -scale_2 for the 2nd band  of
              the output dataset) to specify the parameters of one or several specific bands.

       -exponent <exp_val>
              Apply  non-linear  scaling  with  a  power function. exp_val is the exponent of the power function
              (must be positive). This option must be used with the  -scale  option.  If  specified  only  once,
              -exponent  applies  to  all  bands  of the output image. It can be repeated several times so as to
              specify per band parameters. It is also possible to use the -exponent_bn syntax where bn is a band
              number (e.g. -exponent_2 for the 2nd band of the output dataset) to specify the parameters of  one
              or several specific bands.

              The scaled value Dst is calculated from the source value Src with the following formula:

              {Dst}   =   \left(   {Dst}_{max}   -  {Dst}_{min}  \right)  \times  \operatorname{max}  \left(  0,
              \operatorname{min}  \left(   1,   \left(   \frac{{Src}   -   {Src}_{min}}{{Src}_{max}-{Src}_{min}}
                                       \right)^{exp\_val} \right) \right) + {Dst}_{min}

       -unscale
              Apply  the scale/offset metadata for the bands to convert scaled values to unscaled values.  It is
              also often necessary to reset the output datatype with the -ot  switch.   The  unscaled  value  is
              computed from the scaled raw value with the following formula:

                                   {unscaled\_value} = {scaled\_value} * {scale} + {offset}

       -srcwin <xoff> <yoff> <xsize> <ysize>
              Selects a subwindow from the source image for copying based on pixel/line location.

       -projwin <ulx> <uly> <lrx> <lry>
              Selects a subwindow from the source image for copying (like -srcwin) but with the corners given in
              georeferenced  coordinates  (by  default  expressed in the SRS of the dataset. Can be changed with
              -projwin_srs).

              NOTE:
                 In GDAL 2.1.0 and 2.1.1, using -projwin with coordinates not aligned with pixels will result in
                 a sub-pixel shift. This has been  corrected  in  later  versions.  When  selecting  non-nearest
                 neighbour  resampling,  starting  with  GDAL  2.1.0,  sub-pixel accuracy is however used to get
                 better results.

       -projwin_srs <srs_def>
              Specifies the SRS in which to interpret the coordinates given with -projwin. The <srs_def> may  be
              any of the usual GDAL/OGR forms, complete WKT, PROJ.4, EPSG:n or a file containing the WKT.

              WARNING:
                 This does not cause reprojection of the dataset to the specified SRS.

       -epo   (Error  when  Partially  Outside)  If  this  option  is set, -srcwin or -projwin values that falls
              partially outside the source raster extent will be considered as an error. The default behavior is
              to accept such requests, when they were considered as an error before.

       -eco   (Error when Completely Outside) Same as -epo, except that the criterion for erroring out  is  when
              the request falls completely outside the source raster extent.

       -a_srs <srs_def>
              Override  the  projection  for  the  output file. Can be used with -a_ullr or -a_gt to specify the
              extent in this projection.

              The  coordinate  reference  systems  that  can  be  passed   are   anything   supported   by   the
              OGRSpatialReference::SetFromUserInput()   call,  which  includes  EPSG  Projected,  Geographic  or
              Compound CRS (i.e. EPSG:4296), a well known text (WKT) CRS definition, PROJ.4 declarations, or the
              name of a .prj file containing a WKT CRS definition.

              NOTE:
                 No reprojection is done.

       -a_coord_epoch <epoch>
              New in version 3.4.

              Assign a coordinate epoch, linked with the output SRS. Useful when the output  SRS  is  a  dynamic
              CRS.

       -a_scale <value>
              Set  band scaling value. No modification of pixel values is done.  Note that the -unscale does not
              take into account -a_scale.  You may for example specify -scale 0  1  <offset>  <offset+scale>  to
              apply a (offset, scale) tuple, for the equivalent of the 2 steps: gdal_translate input.tif tmp.vrt
              -a_scale scale -a_offset offset followed by gdal_translate tmp.vrt output.tif -unscale

              New in version 2.3.

       -a_offset <value>
              Set  band  offset value. No modification of pixel values is done.  Note that the -unscale does not
              take into account -a_offset.  You may for example specify -scale 0 1  <offset>  <offset+scale>  to
              apply a (offset, scale) tuple, for the equivalent of the 2 steps: gdal_translate input.tif tmp.vrt
              -a_scale scale -a_offset offset followed by gdal_translate tmp.vrt output.tif -unscale

              New in version 2.3.

       -a_ullr <ulx> <uly> <lrx> <lry>
              Assign/override the georeferenced bounds of the output file.  This assigns georeferenced bounds to
              the  output  file,  ignoring  what  would have been derived from the source file. So this does not
              cause reprojection to the specified SRS.  This is mutually exclusive with -a_gt

       -a_gt <gt(0)> <gt(1)> <gt(2)> <gt(3)> <gt(4)> <gt(5)>
              Assign/override the geotransform of the output file.  This assigns the geotransform to the  output
              file,  ignoring  what  would  have  been  derived  from  the  source  file. So this does not cause
              reprojection to the specified SRS. See Geotransform Tutorial.  This  is  mutually  exclusive  with
              -a_ullr

              New in version 3.8.

       -a_nodata <value>
              Assign  a  specified nodata value to output bands. It can be set to none to avoid setting a nodata
              value to the output file if one exists for the source file. Note that, if the input dataset has  a
              nodata  value,  this does not cause pixel values that are equal to that nodata value to be changed
              to the value specified with this option.

       -colorinterp_X <red|green|blue|alpha|gray|undefined|pan|coastal|rededge|nir|swir|mwir|lwir|...>
              Override the color interpretation of band X (where X is a valid band number, starting at 1)

              New in version 2.3.

       -colorinterp {red|green|blue|alpha|gray|undefined|pan|coastal|rededge|nir|swir|mwir|lwir|...},...
              Override  the  color  interpretation  of   all   specified   bands.   For   example   -colorinterp
              red,green,blue,alpha for a 4 band output dataset.

              New in version 2.3.

       -mo <META-TAG>=<VALUE>
              Passes a metadata key and value to set on the output dataset if possible.

       -dmo DOMAIN:META-TAG=VALUE
              Passes a metadata key and value in specified domain to set on the output dataset if possible.

              New in version 3.9.

       -co <NAME>=<VALUE>
              Many  formats  have  one or more optional creation options that can be used to control particulars
              about the file created. For instance, the GeoTIFF driver  supports  creation  options  to  control
              compression, and whether the file should be tiled.

              The  creation  options  available  vary by format driver, and some simple formats have no creation
              options at all. A list of options supported for a format can be listed with the --formats  command
              line option but the documentation for the format is the definitive source of information on driver
              creation options.  See Raster drivers format specific documentation for legal creation options for
              each format.

              In  addition  to  the  driver-specific  creation  options, gdal_translate (and GDALTranslate() and
              GDALCreateCopy()) recognize the following options:

              • APPEND_SUBDATASET=[YES​/​NO]:  Defaults to NO.

                Can be specified to YES to avoid prior destruction of existing dataset, for drivers that support
                adding several subdatasets (e.g. GTIFF, NITF)

              • COPY_SRC_MDD=[AUTO​/​YES​/​NO]:  (GDAL >= 3.8)  Defaults to AUTO.

                Defines if metadata domains of the source dataset should be copied to the  destination  dataset.
                In the default AUTO mode, only "safe" domains will be copied, which include the default metadata
                domain  (some  drivers  may  include other domains such as IMD, RPC, GEOLOCATION).  When setting
                YES,  all  domains  will  be  copied  (but  a  few  reserved  ones   like   IMAGE_STRUCTURE   or
                DERIVED_SUBDATASETS).  Currently only recognized by the GTiff, COG, VRT, PNG and JPEG drivers.

                When setting NO, no source metadata will be copied.

              • SRC_MDD=<domain_name>:  (GDAL >= 3.8)

                Defines which source metadata domain should be copied.  This option restricts the list of source
                metadata domains to be copied (it implies COPY_SRC_MDD=YES if it is not set). This option may be
                specified  as  many  times  as they are source domains. The default metadata domain is the empty
                string "" ("_DEFAULT_") may also be used when empty string is not  practical).   Currently  only
                recognized by the GTiff, COG, VRT, PNG and JPEG drivers.

       -nogcp Do not copy the GCPs in the source dataset to the output dataset.

       -gcp <pixel> <line> <easting> <northing> [<elevation>]
              Add  the  indicated  ground  control  point  to  the  output dataset.  This option may be provided
              multiple times to provide a set of GCPs.

       -q     Suppress progress monitor and other non-error output.

       -sds   Copy all subdatasets of this file to individual output files.  Use with formats like HDF that have
              subdatasets.

       -stats Force (re)computation of statistics.

       -norat Do not copy source RAT into destination dataset.

       -noxmp Do not copy the XMP metadata in the source dataset to the output dataset when driver  is  able  to
              copy it.

              New in version 3.2.

       -oo <NAME>=<VALUE>
              Dataset open option (format specific)

       <src_dataset>
              The  source  dataset  name.  It can be either file name, URL of data source or subdataset name for
              multi-dataset files.

       <dst_dataset>
              The destination file name.

NODATA / SOURCE VALIDITY MASK HANDLING DURING RESAMPLING

       Masked values, either identified through a nodata value metadata set on the source band, a mask band,  an
       alpha band will not be used during resampling (when using -outsize or -tr).

       The details of how it is taken into account depends on the resampling kernel:

       • for  nearest  resampling,  for  each  target  pixel, one of the potential contributing source pixels is
         selected (in an implementation specific way). Its value is used as it, be it valid or invalid.

       • for bilinear, cubic, cubicspline and lanczos, for each target pixel, the weights of contributing source
         pixels is set to zero to ignore them when they are masked.  There is an extra  specificity  for  cubic:
         given  that  some  of  the  weights  in  the  kernel  are  negative, such strategy could lead to strong
         overshoot/undershoot when there is an alternance of valid and invalid pixels. Consequently, if  any  of
         the horizontal or vertical direction, if the maximum number of valid source pixels in each dimension is
         less than the radius of the resampling kernel, the target pixel is considered as nodata.

       • for the other resampling methods, source pixels contributing to the target pixel are ignored if masked.
         Only  the  valid  ones  are  taken  into  account. If there are none, the target pixel is considered as
         nodata.

C API

       This utility is also callable from C with GDALTranslate().

       New in version 2.1.

EXAMPLES

          gdal_translate -of GTiff -co "TILED=YES" utm.tif utm_tiled.tif

       To create a JPEG-compressed TIFF with internal mask from a RGBA dataset

          gdal_translate rgba.tif withmask.tif -b 1 -b 2 -b 3 -mask 4 -co COMPRESS=JPEG \
            -co PHOTOMETRIC=YCBCR --config GDAL_TIFF_INTERNAL_MASK YES

       To create a RGBA dataset from a RGB dataset with a mask

          gdal_translate withmask.tif rgba.tif -b 1 -b 2 -b 3 -b mask

       Subsetting using -projwin and -outsize:

          gdal_translate -projwin -20037500 10037500 0 0 -outsize 100 100 frmt_wms_googlemaps_tms.xml junk.png

AUTHOR

       Frank Warmerdam <warmerdam@pobox.com>, Silke Reimer <silke@intevation.de>

COPYRIGHT

       1998-2025

                                                  Apr 01, 2025                                 GDAL_TRANSLATE(1)