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

FreeBSD Manual Pages

  
 
  

home | help
GDAL_GRID(1)			     GDAL			  GDAL_GRID(1)

NAME
       gdal_grid - Creates regular grid	from the scattered data.

SYNOPSIS
	  gdal_grid [--help] [--help-general]
		    [-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
		    CInt16/CInt32/CFloat32/CFloat64}]
		    [-oo <NAME>=<VALUE>]...
		    [-of <format>] [-co	<NAME>=<VALUE>]...
		    [-zfield <field_name>] [-z_increase	<increase_value>] [-z_multiply <multiply_value>]
		    [-a_srs <srs_def>] [-spat <xmin> <ymin> <xmax> <ymax>]
		    [-clipsrc <xmin> <ymin> <xmax> <ymax>|<WKT>|<datasource>|spat_extent]
		    [-clipsrcsql <sql_statement>] [-clipsrclayer <layer>]
		    [-clipsrcwhere <expression>]
		    [-l	<layername>]...	[-where	<expression>] [-sql <select_statement>]
		    [-txe <xmin> <xmax>] [-tye <ymin> <ymax>] [-tr <xres> <yres>] [-outsize <xsize> <ysize>]
		    [-a	{<algorithm>[[:<parameter1>=<value1>]...]}] [-q]
		    <src_datasource> <dst_filename>

DESCRIPTION
       This  program  creates  a regular grid (raster) from the	scattered data
       read from the OGR datasource. Input data	will be	interpolated  to  fill
       grid nodes with values, you can choose from various interpolation meth-
       ods.

       It is possible to set the GDAL_NUM_THREADS configuration	option to par-
       allelize	 the  processing. The value to specify is the number of	worker
       threads,	or ALL_CPUS to use all the cores/CPUs of the computer.

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

       If not set then a default type is used, which might not be supported by
       the relevant driver, causing a error.

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

       -txe <xmin> <xmax>
	      Set georeferenced	X extents of output file to be created.

       -tye <ymin> <ymax>
	      Set georeferenced	Y extents of output file to be created.

       -tr <xres> <yres>
	      Set  output  file	 resolution  (in  target georeferenced units).
	      Note that	-tr just works in combination with a valid input  from
	      -txe and -tye

	      New in version 3.2.

       -outsize	<xsize>	<ysize>
	      Set  the size of the output file in pixels and lines.  Note that
	      -outsize cannot be used with -tr

       -a_srs <srs_def>
	      Override the projection for the output file.  The	srs_def	may be
	      any of the usual GDAL/OGR	forms, complete	WKT, PROJ.4, EPSG:n or
	      a	file containing	the WKT.  No reprojection is done.

       -zfield <field_name>
	      Identifies an attribute field on the features to be used to  get
	      a	 Z  value from.	This value overrides the Z value read from the
	      feature geometry record (naturally, if you have a	Z value	in the
	      geometry,	otherwise you have no  choice  and  should  specify  a
	      field name containing a Z	value).

       -z_increase <increase_value>
	      Addition	to  the	 attribute field on the	features to be used to
	      get a Z value from. The addition should be the same unit as  the
	      Z	 value.	 The  result value will	be Z value + Z increase	value.
	      The default value	is 0.

       -z_multiply <multiply_value>
	      This is multiplication ratio for the Z field. This can  be  used
	      for a shift from e.g. feet to meters or from elevation to	depth.
	      The result value will be (Z value	+ Z increase value) * Z	multi-
	      ply value.  The default value is 1.

       -a {<algorithm>[[:<parameter1>=<value1>]...]}
	      Set the interpolation algorithm or data metric name and (option-
	      ally)  its parameters. See the Interpolation algorithms and Data
	      metrics sections for further discussion of available options.

       -spat <xmin> <ymin> <xmax> <ymax>
	      Adds a spatial filter to select only features  contained	within
	      the bounding box described by (xmin, ymin) - (xmax, ymax).

       -clipsrc	[<xmin>	<ymin> <xmax> <ymax>]|<WKT>|<datasource>|spat_extent
	      Adds  a  spatial filter to select	only features contained	within
	      the specified bounding box (expressed in source SRS), WKT	geome-
	      try (POLYGON or MULTIPOLYGON), from a datasource or to the  spa-
	      tial  extent of the -spat	option if you use the spat_extent key-
	      word. When specifying a datasource, you will generally  want  to
	      use  it  in combination with the -clipsrclayer, -clipsrcwhere or
	      -clipsrcsql options.

       -clipsrcsql <sql_statement>
	      Select desired geometries	using an SQL query instead.

       -clipsrclayer <layername>
	      Select the named layer from the source clip datasource.

       -clipsrcwhere <expression>
	      Restrict desired geometries based	on an attribute	query.

       -l <layername>
	      Indicates	the layer(s) from the datasource that will be used for
	      input features.  May be specified	multiple times,	but  at	 least
	      one layer	name or	a -sql option must be specified.

       -where <expression>
	      An  optional  SQL	 WHERE style query expression to be applied to
	      select features to process from the input	layer(s).

       -sql <select_statement>
	      An SQL statement to be evaluated against the datasource to  pro-
	      duce a virtual layer of features to be processed.

       -oo <NAME>=<VALUE>
	      New in version 3.7.

	      Source dataset open option (format specific)

       -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 --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  cre-
	      ation options for	each format.

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

       <src_datasource>
	      Any OGR supported	readable datasource.

       <dst_filename>
	      The GDAL supported output	file.

INTERPOLATION ALGORITHMS
       There are a number of interpolation algorithms to choose	from.

       More details about them can also	be found in GDAL Grid Tutorial

   invdist
       Inverse	distance to a power. This is the default algorithm. It has the
       following parameters:

        power:	Weighting power	(default 2.0).

        smoothing: Smoothing parameter	(default 0.0).

        radius1: The first radius (X axis if rotation	angle  is  0)  of  the
	 search	ellipse. Set this parameter to zero to use the whole point ar-
	 ray.  Default is 0.0.

        radius2:  The	second	radius	(Y axis	if rotation angle is 0)	of the
	 search	ellipse. Set this parameter to zero to use the whole point ar-
	 ray.  Default is 0.0.

        radius: Set first and second radius (mutually exclusive with  radius1
	 and radius2).	Default	is 0.0.	Added in GDAL 3.6

        angle:	 Angle	of  search ellipse rotation in degrees (counter	clock-
	 wise, default 0.0).

        max_points: Maximum number of data points to use. Do not  search  for
	 more points than this number. This is only used if the	search ellipse
	 is  set  (both	 radii are non-zero). Zero means that all found	points
	 should	be used. Default is 0.

        min_points: Minimum number of data points to use. If less  amount  of
	 points	 found	the grid node considered empty and will	be filled with
	 NODATA	marker.	This is	only used if search ellipse is set (both radii
	 are non-zero).	Default	is 0.

        max_points_per_quadrant: Maximum number of data  points  to  use  per
	 quadrant.  Default is 0. Added	in GDAL	3.6.  When specified, this ac-
	 tually	uses invdistnn implementation.

        min_points_per_quadrant:  Minimum  number  of	data points to use per
	 quadrant.  Default is 0. Added	in GDAL	3.6.  When specified, this ac-
	 tually	uses invdistnn implementation.

        nodata: NODATA	marker to fill empty points (default 0.0).

   invdistnn
       New in version 2.1.

       Inverse distance	to a power with	nearest	neighbor searching, ideal when
       max_points is used. It has following parameters:

        power:	Weighting power	(default 2.0).

        smoothing: Smoothing parameter	(default 0.0).

        radius: The radius of the search circle, which	 should	 be  non-zero.
	 Default is 1.0.

        max_points:  Maximum  number of data points to	use. Do	not search for
	 more points than this number. Found points will be ranked from	 near-
	 est to	furthest distance when weighting. Default is 12.

        min_points:  Minimum  number of data points to	use. If	less amount of
	 points	found the grid node is considered empty	 and  will  be	filled
	 with NODATA marker. Default is	0.

        max_points_per_quadrant:  Maximum  number  of	data points to use per
	 quadrant.  Default is 0. Added	in GDAL	3.6.  When specified, the  al-
	 gorithm  will	only  take  into account up to max_points_per_quadrant
	 points	 for  each  of	the  right-top,	 left-top,  right-bottom   and
	 right-top quadrant relative to	the point being	interpolated.

        min_points_per_quadrant:  Minimum  number  of	data points to use per
	 quadrant.  Default is 0. Added	in GDAL	3.6.  If that  number  is  not
	 reached,  the	point  being  interpolated will	be set with the	NODATA
	 marker.   When	 specified,  the  algorithm  will  collect  at	 least
	 min_points_per_quadrant  points  for each of the right-top, left-top,
	 right-bottom and right-top quadrant relative to the point  being  in-
	 terpolated.

        nodata: NODATA	marker to fill empty points (default 0.0).

       When  min_points_per_quadrant  or max_points_per_quadrant is specified,
       the search will start with the closest point to the point being	inter-
       polated	from  the  first quadrant, then	the closest point to the point
       being interpolated from the second quadrant, etc. up to the  4th	 quad-
       rant,  and will continue	with the next closest point in the first quad-
       rant, etc. until	max_points and/or  max_points_per_quadrant  thresholds
       are reached.

   average
       Moving average algorithm. It has	following parameters:

        radius1:  The	first radius (X	axis if	rotation angle is 0) of	search
	 ellipse. Set this parameter to	zero to	use whole  point  array.   De-
	 fault is 0.0.

        radius2:  The second radius (Y	axis if	rotation angle is 0) of	search
	 ellipse. Set this parameter to	zero to	use whole  point  array.   De-
	 fault is 0.0.

        radius:  Set first and	second radius (mutually	exclusive with radius1
	 and radius2).	Default	is 0.0.	Added in GDAL 3.6

        angle:	Angle of search	ellipse	rotation in  degrees  (counter	clock-
	 wise, default 0.0).

        max_points:  Maximum  number of data points to	use. Do	not search for
	 more points than this number. Found points will be ranked from	 near-
	 est  to furthest distance when	weighting. Default is 0. Added in GDAL
	 3.6 Only taken	into account if	one or both of min_points_per_quadrant
	 or max_points_per_quadrant is specified

        min_points: Minimum number of data points to use. If less  amount  of
	 points	 found	the grid node considered empty and will	be filled with
	 NODATA	marker.	Default	is 0.

        max_points_per_quadrant: Maximum number of data  points  to  use  per
	 quadrant.   Default is	0. Added in GDAL 3.6.  When specified, the al-
	 gorithm will only take	into  account  up  to  max_points_per_quadrant
	 points	  for  each  of	 the  right-top,  left-top,  right-bottom  and
	 right-top quadrant relative to	the point being	interpolated.

        min_points_per_quadrant: Minimum number of data  points  to  use  per
	 quadrant.   Default  is  0. Added in GDAL 3.6.	 If that number	is not
	 reached, the point being interpolated will be	set  with  the	NODATA
	 marker.    When  specified,  the  algorithm  will  collect  at	 least
	 min_points_per_quadrant points	for each of the	 right-top,  left-top,
	 right-bottom  and  right-top quadrant relative	to the point being in-
	 terpolated.

        nodata: NODATA	marker to fill empty points (default 0.0).

       Note, that it is	essential to set search	 ellipse  for  moving  average
       method.	It is a	window that will be averaged when computing grid nodes
       values.

       When min_points_per_quadrant or max_points_per_quadrant	is  specified,
       the  search will	start with the closest point to	the point being	inter-
       polated from the	first quadrant,	then the closest point	to  the	 point
       being  interpolated  from the second quadrant, etc. up to the 4th quad-
       rant, and will continue with the	next closest point in the first	 quad-
       rant,  etc.  until max_points and/or max_points_per_quadrant thresholds
       are reached.

   nearest
       Nearest neighbor	algorithm. It has following parameters:

        radius1: The first radius (X axis if rotation angle is	0)  of	search
	 ellipse.  Set	this  parameter	to zero	to use whole point array.  De-
	 fault is 0.0.

        radius2: The second radius (Y axis if rotation	angle is 0) of	search
	 ellipse.  Set	this  parameter	to zero	to use whole point array.  De-
	 fault is 0.0.

        radius: Set first and second radius (mutually exclusive with  radius1
	 and radius2).	Default	is 0.0.	Added in GDAL 3.6

        angle:	 Angle	of  search ellipse rotation in degrees (counter	clock-
	 wise, default 0.0).

        nodata: NODATA	marker to fill empty points (default 0.0).

   linear
       New in version 2.1.

       Linear interpolation algorithm.

       The Linear method performs linear interpolation by computing a Delaunay
       triangulation of	the point cloud, finding in which triangle of the tri-
       angulation the point is,	and by doing  linear  interpolation  from  its
       barycentric  coordinates	 within	 the triangle.	If the point is	not in
       any triangle, depending on the radius, the algorithm will use the value
       of the nearest point or the nodata value.

       It has following	parameters:

        radius: In case the point to be interpolated does not fit into	a tri-
	 angle of the Delaunay triangulation, use  that	 maximum  distance  to
	 search	 a  nearest  neighbour,	or use nodata otherwise. If set	to -1,
	 the search distance is	infinite.  If set to 0,	nodata value  will  be
	 always	used. Default is -1.

        nodata: NODATA	marker to fill empty points (default 0.0).

DATA METRICS
       Besides	the  interpolation functionality gdal_grid can be used to com-
       pute some data metrics using the	specified window and output grid geom-
       etry. These metrics are:

        minimum: Minimum value	found in grid node search ellipse.

        maximum: Maximum value	found in grid node search ellipse.

        range:	A difference between the minimum and maximum values  found  in
	 grid node search ellipse.

        count:	 A number of data points found in grid node search ellipse.

        average_distance:  An	average	distance between the grid node (center
	 of the	search ellipse)	and all	of the data points found in grid  node
	 search	ellipse.

        average_distance_pts:	An  average  distance  between the data	points
	 found in grid node search ellipse. The	distance between each pair  of
	 points	 within	 ellipse is calculated and average of all distances is
	 set as	a grid node value.

       All the metrics have the	same set of options:

        radius1: The first radius (X axis if rotation angle is	0)  of	search
	 ellipse.  Set	this  parameter	to zero	to use whole point array.  De-
	 fault is 0.0.

        radius2: The second radius (Y axis if rotation	angle is 0) of	search
	 ellipse.  Set	this  parameter	to zero	to use whole point array.  De-
	 fault is 0.0.

        radius: Set first and second radius (mutually exclusive with  radius1
	 and radius2).	Default	is 0.0.	Added in GDAL 3.6

        angle:	 Angle	of  search ellipse rotation in degrees (counter	clock-
	 wise, default 0.0).

        min_points: Minimum number of data points to use. If less  amount  of
	 points	 found	the grid node considered empty and will	be filled with
	 NODATA	marker.	This is	only used if search ellipse is set (both radii
	 are non-zero).	Default	is 0.

        max_points_per_quadrant: Maximum number of data  points  to  use  per
	 quadrant.   Default is	0. Added in GDAL 3.6.  When specified, the al-
	 gorithm will only take	into  account  up  to  max_points_per_quadrant
	 points	  for  each  of	 the  right-top,  left-top,  right-bottom  and
	 right-top quadrant relative to	the point being	interpolated.

        min_points_per_quadrant: Minimum number of data  points  to  use  per
	 quadrant.   Default  is  0. Added in GDAL 3.6.	 If that number	is not
	 reached, the point being interpolated will be	set  with  the	NODATA
	 marker.    When  specified,  the  algorithm  will  collect  at	 least
	 min_points_per_quadrant points	for each of the	 right-top,  left-top,
	 right-bottom  and  right-top quadrant relative	to the point being in-
	 terpolated.

        nodata: NODATA	marker to fill empty points (default 0.0).

       When min_points_per_quadrant or max_points_per_quadrant	is  specified,
       the  search will	start with the closest point to	the point being	inter-
       polated from the	first quadrant,	then the closest point	to  the	 point
       being  interpolated  from the second quadrant, etc. up to the 4th quad-
       rant, and will continue with the	next closest point in the first	 quad-
       rant,  etc.  until max_points and/or max_points_per_quadrant thresholds
       are reached.

READING	COMMA SEPARATED	VALUES
       Often you have a	text file with a list of comma separated XYZ values to
       work with (so called CSV	file). You can easily use that	kind  of  data
       source in gdal_grid. All	you need is to create a	virtual	dataset	header
       (VRT)  for  your	 CSV  file  and	 use  it  as  an  input	datasource for
       gdal_grid. You can find details on the VRT format on the	VRT -- Virtual
       Format description page.

       Here is a small example.	Let's say we have a CSV	 file  called  dem.csv
       containing

	  Easting,Northing,Elevation
	  86943.4,891957,139.13
	  87124.3,892075,135.01
	  86962.4,892321,182.04
	  87077.6,891995,135.01
	  ...

       For  the	 above data we will create a dem.vrt header with the following
       content:

	  <OGRVRTDataSource>
	      <OGRVRTLayer name="dem">
		  <SrcDataSource>dem.csv</SrcDataSource>
		  <GeometryType>wkbPoint</GeometryType>
		  <GeometryField encoding="PointFromColumns" x="Easting" y="Northing" z="Elevation"/>
	      </OGRVRTLayer>
	  </OGRVRTDataSource>

       This description	specifies so called 2.5D geometry with	three  coordi-
       nates X,	 Y and Z. The Z	value will be used for interpolation. Now  you
       can  use	 dem.vrt with all OGR programs (start  with  ogrinfo  to  test
       that everything works fine). The	datasource will	contain	a single layer
       called "dem"  filled  with point	features constructed  from  values  in
       the  CSV	 file.	 Using	this technique you can handle CSV  files  with
       more  than  three columns, switch columns, etc. OK, now the final step:

	  gdal_grid dem.vrt demv.tif

       Or, if we do not	wish to	use a VRT file:

	  gdal_grid -l dem -oo X_POSSIBLE_NAMES=Easting	\
	  -oo Y_POSSIBLE_NAMES=Northing	-zfield	Elevation dem.csv dem.tif

       If your CSV file	does not contain column	headers	then it	can be handled
       in the VRT file in the following	way:

	  <GeometryField encoding="PointFromColumns" x="field_1" y="field_2" z="field_3"/>

       The Comma Separated Value (.csv)	description page contains  details  on
       CSV format supported by GDAL/OGR.

CREATING MULTIBAND FILES
       Creating	 multiband files is not	directly possible with gdal_grid.  One
       might use gdal_grid multiple times to create one	 band  per  file,  and
       then use	gdalbuildvrt -separate and then	gdal_translate:

	  gdal_grid ...	1.tif; gdal_grid ... 2.tif; gdal_grid ... 3.tif
	  gdalbuildvrt -separate 123.vrt 1.tif 2.tif 3.tif
	  gdal_translate 123.vrt 123.tif

       Or  just	 use  gdal_merge,  to combine the one-band files into a	single
       one:

	  gdal_grid ...	a.tif; gdal_grid ... b.tif; gdal_grid ... c.tif
	  gdal_merge -separate a.tif b.tif c.tif -o d.tif

C API
       This utility is also callable from C with GDALGrid().

EXAMPLES
       The following would create raster TIFF file  from  VRT  datasource  de-
       scribed	in  Reading  comma  separated values section using the inverse
       distance	to a power method.  Values to interpolate will be read from  Z
       value of	geometry record.

	  gdal_grid -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000	-tye 894000 890000 \
	      -outsize 400 400 -of GTiff -ot Float64 -l	dem dem.vrt dem.tiff

       The  next  command  does	 the same thing	as the previous	one, but reads
       values to interpolate from the attribute	field specified	 with  -zfield
       option  instead of geometry record. So in this case X and Y coordinates
       are being taken from geometry and Z is being taken from the "Elevation"
       field.  The GDAL_NUM_THREADS is also set	to  parallelize	 the  computa-
       tion.

	  gdal_grid -zfield "Elevation"	-a invdist:power=2.0:smoothing=1.0 -txe	85000 89000 \
	      -tye 894000 890000 -outsize 400 400 -of GTiff -ot	Float64	-l dem dem.vrt \
	      dem.tiff --config	GDAL_NUM_THREADS ALL_CPUS

AUTHOR
       Andrey Kiselev <dron@ak4719.spb.edu>

COPYRIGHT
       1998-2025

				 Feb 11, 2025			  GDAL_GRID(1)

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

home | help