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

FreeBSD Manual Pages

  
 
  

home | help
GDAL-RASTER-HILLSHADE(1)	      GDAL		GDAL-RASTER-HILLSHADE(1)

NAME
     gdal-raster-hillshade - Generate a shaded relief map

     Added in version 3.11.

SYNOPSIS
	Usage: gdal raster hillshade [OPTIONS] <INPUT> <OUTPUT>

	Generate a shaded relief map

	Positional arguments:
	  -i, --input <INPUT>				       Input raster datasets [required] [not available in pipelines]
	  -o, --output <OUTPUT> 			       Output raster dataset [required] [not available in pipelines]

	Common Options:
	  -h, --help					       Display help message and exit
	  --json-usage					       Display usage as JSON document and exit
	  --config <KEY>=<VALUE>			       Configuration option [may be repeated]
	  -q, --quiet					       Quiet mode (no progress bar or warning message) [not available in pipelines]

	Options:
	  -f, --of, --format, --output-format <OUTPUT-FORMAT>  Output format ("GDALG" allowed) [not available in pipelines]
	  --co, --creation-option <KEY>=<VALUE> 	       Creation option [may be repeated] [not available in pipelines]
	  --overwrite					       Whether overwriting existing output dataset is allowed [not available in pipelines]
							       Mutually exclusive with --append
	  --append					       Append as a subdataset to existing output [not available in pipelines]
							       Mutually exclusive with --overwrite
	  -b, --band <BAND>				       Input band (1-based index) (default: 1)
	  -z, --zfactor <ZFACTOR>			       Vertical exaggeration used to pre-multiply the elevations
	  --xscale <XSCALE>				       Ratio of vertical units to horizontal X axis units
	  --yscale <YSCALE>				       Ratio of vertical units to horizontal Y axis units
	  --azimuth <AZIMUTH>				       Azimuth of the light, in degrees (default: 315)
	  --altitude <ALTITUDE> 			       Altitude of the light, in degrees (default: 45)
	  --gradient-alg <GRADIENT-ALG> 		       Algorithm used to compute terrain gradient. GRADIENT-ALG=Horn|ZevenbergenThorne (default: Horn)
	  --variant <VARIANT>				       Variant of the hillshading algorithm. VARIANT=regular|combined|multidirectional|Igor (default: regular)
	  --no-edges					       Do not try to interpolate values at dataset edges or close to nodata values

	Advanced Options:
	  --if, --input-format <INPUT-FORMAT>		       Input formats [may be repeated] [not available in pipelines]
	  --oo, --open-option <KEY>=<VALUE>		       Open options [may be repeated] [not available in pipelines]

DESCRIPTION
     gdal  raster  hillshade  generates  a shaded relief map, from any GDAL-sup-
     ported elevation raster.

     This subcommand is also available	as  a  potential  step	of  gdal  raster
     pipeline

     It  generates  an 8-bit raster with a nice shaded relief effect. It is very
     useful for visualizing the terrain. You can optionally specify the  azimuth
     and  altitude of the light source, a vertical exaggeration factor and scal-
     ing factors to account for  differences  between  vertical  and  horizontal
     units.

     The  value 0 is used as the output nodata value. A nodata value in the tar-
     get dataset will be emitted if at least one pixel set to the  nodata  value
     is  found	in the 3x3 window centered around each source pixel. By default,
     the algorithm will compute values at image edges or if a  nodata  value  is
     found in the 3x3 window, by interpolating missing values, unless --no-edges
     is  specified,  in which case a 1-pixel border around the image will be set
     with the nodata value.

     In general, it assumes that x, y and z units  are	identical.  However,  if
     none of --xscale and --yscale are specified, and the CRS is a geographic or
     projected	CRS,  it will automatically determine the appropriate ratio from
     the units of the CRS, as well as the potential value of the  units  of  the
     raster  band (as returned by GDALRasterBand::GetUnitType(), if it is metre,
     foot international or US survey foot). Note that for  geographic  CRS,  the
     result  for  source  datasets at high latitudes may be incorrect, and prior
     reprojection to a polar projection might be needed using gdal raster repro-
     ject.

     If x (east-west) and y (north-south) units are identical, but z (elevation)
     units are different, the --xscale and --yscale can be used to set the ratio
     of vertical units to horizontal.  For  geographic	CRS  near  the	equator,
     where  units  of latitude and units of longitude are similar, elevation (z)
     units can be converted to be compatible by using scale=370400 (if elevation
     is in feet) or scale=111120 (if elevation is in meters).  For locations not
     near the equator, the --xscale value can be taken	as  the  --yscale  value
     multiplied by the cosine of the mean latitude of the raster.

GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET)
     This program supports serializing the command line as a JSON file using the
     GDALG  output  format.   The  resulting file can then be opened as a raster
     dataset using the GDALG: GDAL Streamed  Algorithm	driver,  and  apply  the
     specified pipeline in a on-the-fly / streamed way.

PROGRAM-SPECIFIC OPTIONS
     --altitude <ALTITUDE>
	    Altitude  of the light, in degrees. 90 if the light comes from above
	    the DEM, 0 if it is raking light. The default value is 45 degree.

	    This option is mutually exclusive with --variant=Igor.

     --azimuth <AZIMUTH>
	    Azimuth of the light, in degrees. 0 if it comes from the top of  the
	    raster,  90 from the east, ... The default value, 315, should rarely
	    be changed as it is the value  generally  used  to	generate  shaded
	    maps.

	    This option is mutually exclusive with --variant=multidirectional.

     -b, --band <BAND>
	    Index  (starting  at  1)  of the band to which the hillshade must be
	    computed.

     --gradient-alg Horn|ZevenbergenThorne
	    Algorithm used to compute terrain gradient.  The  default  is  Horn.
	    The  literature  suggests  Zevenbergen & Thorne to be more suited to
	    smooth landscapes, whereas	Horn's	formula  to  perform  better  on
	    rougher terrain.

     --no-edges
	    Do not try to interpolate values at dataset edges or close to nodata
	    values

     --variant regular|combined|multidirectional|Igor
	    Variant of the hillshading algorithm:

	    * regular: the hillshade values combines the computed slope with the
	      azimuth and altitude of the illumination according to:

		 {Hillshade}  =  1  +  254.0  * ((\sin(altitude) * cos(slope)) +
		 (cos(altitude) * sin(slope) * cos(azimuth - \frac{\pi}{2} - aspect)))

	    * combined: combined shading, a combination  of  slope  and  oblique
	      shading.

	    * multidirectional: multidirectional shading, a combination of hill-
	      shading  illuminated  from  225 deg, 270 deg, 315 deg, and 360 deg
	      azimuth.	      Applies	    the       formula	     of        -
	      http://pubs.usgs.gov/of/1992/of92-422/of92-422.pdf

	    * Igor:  shading  which  tries to minimize effects on other map fea-
	      tures beneath. Igor's hillshading uses formula from Maperitive:  -
	      http://maperitive.net/docs/Commands/GenerateReliefImageIgor.html

     --xscale <scale>
	    Added in version 3.11.

	    Ratio  of vertical units to horizontal X axis units. If the horizon-
	    tal unit of the source DEM is degrees (e.g	Lat/Long  WGS84  projec-
	    tion), you can use scale=111120 if the vertical units are meters (or
	    scale=370400 if they are in feet).

	    If none of --xscale and --yscale are specified, and the CRS is a ge-
	    ographic  or projected CRS, gdal raster hillshade will automatically
	    determine the appropriate ratio from the units of the CRS,	as  well
	    as	the potential value of the units of the raster band (as returned
	    by GDALRasterBand::GetUnitType(), if it is metre, foot international
	    or US survey foot). Note that for geographic  CRS,	the  result  for
	    source datasets at high latitudes may be incorrect, and prior repro-
	    jection to a polar projection might be needed.

	    If --xscale is specified, --yscale must also be specified.

     --yscale <scale>
	    Added in version 3.11.

	    Ratio  of vertical units to horizontal Y axis units. If the horizon-
	    tal unit of the source DEM is degrees (e.g	Lat/Long  WGS84  projec-
	    tion), you can use scale=111120 if the vertical units are meters (or
	    scale=370400 if they are in feet)

	    If none of --xscale and --yscale are specified, and the CRS is a ge-
	    ographic  or projected CRS, gdal raster hillshade will automatically
	    determine the appropriate ratio from the units of the CRS,	as  well
	    as	the potential value of the units of the raster band (as returned
	    by GDALRasterBand::GetUnitType(), if it is metre, foot international
	    or US survey foot). Note that for geographic  CRS,	the  result  for
	    source datasets at high latitudes may be incorrect, and prior repro-
	    jection to a polar projection might be needed.

	    If --yscale is specified, --xscale must also be specified.

     -z, --zfactor <ZFACTOR>
	    Vertical exaggeration used to pre-multiply the elevations

STANDARD OPTIONS
     --append
	    Append  input raster as a new subdataset to an existing output file.
	    Only works with drivers that  support  adding  subdatasets	such  as
	    GTiff -- GeoTIFF File Format and GPKG -- GeoPackage raster This also
	    creates the output dataset if it does not exist yet.

     --co, --creation-option <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.

	    May be repeated.

	    The  creation options available vary by format driver, and some sim-
	    ple formats have no creation options at all. A list of options  sup-
	    ported  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  for-
	    mat  specific documentation for legal creation options for each for-
	    mat.

     --if, --input-format <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 sev-
	    eral candidate drivers.  Note that it does not force  those  drivers
	    to	open  the dataset. In particular, some drivers have requirements
	    on file extensions.

	    May be repeated.

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

	    May be repeated.

     -f, --of, --format, --output-format <OUTPUT-FORMAT>
	    Which output raster format to use. Allowed values may  be  given  by
	    gdal --formats | grep raster | grep rw | sort

     --overwrite
	    Allow  program to overwrite existing target file or dataset.  Other-
	    wise, by default, gdal errors out if the target file or dataset  al-
	    ready exists.

RETURN STATUS CODE
     The  program returns status code 0 in case of success, and non-zero in case
     of error (non-blocking errors emitted as warnings are considered as a  suc-
     cessful execution).

EXAMPLES
   Example  1: Generates a shaded relief map from a DTED0 file, using a vertical
     exaggeration factor of 30.
	$ gdal raster hillshade --zfactor=30 n43.dt0 out.tif --overwrite

   Example 2: Combine the output of shaded relief map and hypsometric  rendering
     on a DEM to create a colorized shaded relief map.
	$ gdal pipeline read n43.tif ! \
			color-map --color-map color_file.txt ! \
			blend --operator=hsv-value --overlay \
			    [ read n43.tif ! hillshade -z 30 ] ! \
			write out.tif --overwrite

AUTHOR
     Even Rouault <even.rouault@spatialys.com>

COPYRIGHT
     1998-2026

				  Jun 05, 2026		GDAL-RASTER-HILLSHADE(1)

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

home | help