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

FreeBSD Manual Pages

  
 
  

home | help
GDAL_TRANSLATE(1)		     GDAL		     GDAL_TRANSLATE(1)

NAME
       gdal_translate -	Converts raster	data between different formats.

SYNOPSIS
	  Usage: gdal_translate	[--help] [--long-usage]	[--help-general]
				[-ot Byte|Int8|[U]Int{16|32|64}|CInt{16|32}|[C]Float{32|64}]
				[-if <format>]... [-of <output_format>]	[--quiet]
				[-b <band>]... [-mask <mask>] [-expand gray|rgb|rgba]
				[[-strict]|[-not_strict]]
				[-outsize <xsize[%]|0> <ysize[%]|0>] [-tr <xres> <yes>]
				[-ovr <level>|AUTO|AUTO-<n>|NONE] [-sds]
				[-r nearest,bilinear,cubic,cubicspline,lanczos,average,mode]
				[[-scale [<src_min> <src_max> [<dst_min> <dst_max>]]]...|
				[-scale_X [<src_min> <src_max> [<dst_min> <dst_max>]]]...|
				[-unscale]]
				[[-exponent <value>]|[-exponent_X <value>]...]
				[-srcwin <xoff>	<yoff> <xsize> <ysize>]
				[-projwin <ulx>	<uly> <lrx> <lry>]
				[-projwin_srs <srs_def>] [-epo]	[-eco] [-a_srs <srs_def>]
				[-a_coord_epoch	<epoch>] [-a_ullr <ulx>	<uly> <lrx> <lry>]
				[-a_nodata <value>|none]
				[-a_gt <gt(0)> <gt(1)> <gt(2)> <gt(3)> <gt(4)> <gt(5)>]
				[-a_scale <value>] [-a_offset <value>] [-nogcp]
				[-gcp <pixel> <line> <easting> <northing> [<elevation>]]...
				[-colorinterp {red|green|blue|alpha|gray|undefined|pan|coastal|rededge|nir|swir|mwir|lwir|...},...]
				[-colorinterp_X	{red|green|blue|alpha|gray|undefined|pan|coastal|rededge|nir|swir|mwir|lwir|...}]...
				[[-stats]|[-approx_stats]]
				[-norat] [-noxmp] [-co <NAME>=<VALUE>]...
				[-mo <NAME>=<VALUE>]...	[-dmo <DOMAIN>:<KEY>=<VALUE>]...
				[-oo <NAME>=<VALUE>]...
				<input_file> <output_file>

DESCRIPTION
       The  gdal_translate  utility can	be used	to convert raster data between
       different formats, potentially performing some operations like  subset-
       ting, 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 op-
	      tions and	exit.

       -ot <type>
	      Force  the  output image bands to	have a specific	data type sup-
	      ported 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 ap-
	      propriate	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.

	      Added in version 3.2.

       -of <format>
	      Select  the output format. Starting with GDAL 2.3, if not	speci-
	      fied, 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. Oth-
	      erwise 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 as-
	      pect ratio of the	source dataset.

       -tr <xres> <yres>
	      Set target resolution. The values	must be	expressed in georefer-
	      enced units.  Both must be positive values. This is mutually ex-
	      clusive with -outsize, -a_ullr, and -a_gt.

       -ovr {<level>|AUTO|AUTO-<n>|NONE}
	      Added 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 reso-
	      lution is	the closest to the target resolution. Specify an inte-
	      ger value	(0-based, i.e. 0=1st overview level) to	select a  par-
	      ticular  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  re-
	      sampling method, and a higher quality resampling method is spec-
	      ified with -r.)

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

	      When -ovr	is specified, values of	-srcwin	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 pix-
	      els. Starting with GDAL 3.1, this	is a weighted  average	taking
	      into account properly the	weight of source pixels	not contribut-
	      ing 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  sam-
	      pled 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 from the	minimum	value to the maximum value allowed for
	      integer  data  types (for	example	from 0 to 255 for Byte output)
	      or from 0	to 1 for floating-point	data types.   If  omitted  the
	      input  range  is automatically computed from the source dataset,
	      in its whole (not	just the window	of interest potentially	speci-
	      fied with	-srcwin	or -projwin). This may be a slow operation  on
	      a	 large source dataset, and if using it multiple	times for sev-
	      eral gdal_translate invocation, it might be beneficial  to  call
	      gdalinfo	-stats	{source_dataset} priorly to precompute statis-
	      tics, for	formats	that support serializing  statistics  computa-
	      tions  (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	speci-
	      fied.   Instead of being clipped,	source values that are outside
	      the range	of src_min and src_max will be scaled to  values  out-
	      side  the	range of dst_min and dst_max.  If clipping without ex-
	      ponential	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  sev-
	      eral 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  \opera-
	      torname{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 lin-
	      early-scaled values to unscaled values.  It is also often	neces-
	      sary to reset the	output datatype	with the -ot switch.  The  un-
	      scaled value is computed from the	scaled raw value with the fol-
	      lowing 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. Pixel/line offsets (xoff and	yoff) are mea-
	      sured from the left and top of the image.	 If the	subwindow  ex-
	      tends  beyond  the  bounds  of the source	dataset, output	pixels
	      will be written with a value of zero, unless a NoData  value  is
	      defined  either in the source dataset or by -a_nodata.  Alterna-
	      tively, gdal_translate can issue an error	in this	case if	so di-
	      rected by	options	-epo or	-eco.

       -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). If the subwindow extends beyond  the	bounds
	      of  the  source  dataset,	 output	 pixels	will be	written	with a
	      value of zero, unless a NoData value is defined  either  in  the
	      source  dataset  or  by -a_nodata. Alternatively,	gdal_translate
	      can issue	an error in this case if so directed by	 options  -epo
	      or -eco.

	      NOTE:
		 Beginning  with  GDAL	3.11, the extent described by -projwin
		 will be transformed into the dataset SRS and used to select a
		 subwindow.  Before GDAL 3.11, only the	two corner points were
		 transformed into the dataset SRS, and these  two  transformed
		 points	 were used to define an	extent in the dataset SRS. De-
		 pending on the	SRS involved, the subwindow selected  in  GDAL
		 3.11 may be substantially larger than in previous versions.

	      NOTE:
		 When  using nearest-neighbor resampling, the window specified
		 by -projwin is	expanded (rounded, for GDAL < 3.11) if	neces-
		 sary  to  match  input	pixel boundaries. For other resampling
		 algorithms, the window	is not modified.

       -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	speci-
		 fied 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.

       -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  dec-
	      larations, or the	name of	a .prj file containing a WKT CRS defi-
	      nition.

	      NOTE:
		 No reprojection is done.

       -a_coord_epoch <epoch>
	      Added 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

	      Added 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

	      Added 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  as-
	      signs  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

	      Added 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|red-
       edge|nir|swir|mwir|lwir|...>
	      Override	the color interpretation of band X (where X is a valid
	      band number, starting at 1)

	      Added in version 2.3.

       -colorinterp {red|green|blue|alpha|gray|undefined|pan|coastal|red-
       edge|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.

	      Added 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.

	      Added 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  in-
	      stance,  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 op-
	      tions supported for a format can be  listed  with	 the  --format
	      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 cre-
	      ation options for	each format.

	      In addition to the driver-specific creation options, gdal_trans-
	      late (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 DE-
		RIVED_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  do-
		mains.	The  default  metadata	domain	is the empty string ""
		("_DEFAULT_") may also be used when empty string is not	 prac-
		tical).	 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.

	      Added 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 re-
       sampling	(when using -outsize or	-tr).

       orphan

       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	resam-
	 pling 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().

       Added in	version	2.1.

EXAMPLES
   Example 1: Creating a tiled GeoTIFF
	  gdal_translate -of GTiff -co "TILED=YES" utm.tif utm_tiled.tif

   Example  2:	Creating 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

   Example 3: Creating a RGBA dataset from a RGB dataset with a	mask
	  gdal_translate withmask.tif rgba.tif -b 1 -b 2 -b 3 -b mask

   Example 4: 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@inteva-
       tion.de>

COPYRIGHT
       1998-2025

				 Jul 12, 2025		     GDAL_TRANSLATE(1)

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

home | help