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

FreeBSD Manual Pages

  
 
  

home | help
GDAL-VECTOR-GRID(1)		     GDAL		   GDAL-VECTOR-GRID(1)

NAME
       gdal-vector-grid	- Create a regular grid	from scattered points

       Added in	version	3.11.

SYNOPSIS
	  Usage: gdal vector grid <SUBCOMMAND> [OPTIONS]
	  where	<SUBCOMMAND> is	one of:
	    - average:		       Create a	regular	grid from scattered points using moving	average	interpolation.
	    - average-distance:	       Create a	regular	grid from scattered points using the average distance between the grid node (center of the search ellipse) and all of the data points in the search ellipse.
	    - average-distance-points: Create a	regular	grid from scattered points using the average distance between the data points in the search ellipse.
	    - count:		       Create a	regular	grid from scattered points using the number of points in the search ellipse.
	    - invdist:		       Create a	regular	grid from scattered points using weighted inverse distance interpolation.
	    - invdistnn:	       Create a	regular	grid from scattered points using weighted inverse distance interpolation nearest neighbour.
	    - linear:		       Create a	regular	grid from scattered points using linear/barycentric interpolation.
	    - maximum:		       Create a	regular	grid from scattered points using the maximum value in the search ellipse.
	    - minimum:		       Create a	regular	grid from scattered points using the minimum value in the search ellipse.
	    - nearest:		       Create a	regular	grid from scattered points using nearest neighbor interpolation.
	    - range:		       Create a	regular	grid from scattered points using the difference	between	the minimum and	maximum	values in the search ellipse.

	  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]

DESCRIPTION
       This  program  creates  a regular grid (raster) from the	scattered data
       read from a vector dataset. 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.

OPTIONS	COMMON TO ALL ALGORITHMS
   Standard options
       -f, --of, --format, --output-format <OUTPUT-FORMAT>
	      Which output vector format to use. Allowed values	may  be	 given
	      by gdal --formats	| grep vector |	grep rw	| sort

       --co <NAME>=<VALUE>
	      Many  formats have one or	more optional dataset creation options
	      that can be used to control particulars about the	file  created.
	      For instance, the	GeoPackage driver supports creation options to
	      control the version.

	      May be repeated.

	      The  dataset  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 for-
	      mat is the definitive source of information on  driver  creation
	      options.	 See  Vector drivers format specific documentation for
	      legal creation options for each format.

	      Note that	dataset	creation options are different from layer cre-
	      ation options.

       --overwrite
	      Allow program to overwrite  existing  target  file  or  dataset.
	      Otherwise,  by  default,	gdal  errors out if the	target file or
	      dataset already exists.

       -l, --layer, --layer-name <LAYER-NAME>
	      Indicates	the layer(s) from the datasource that will be used for
	      input features.  May be specified	multiple times

       --sql <SQL>|@<filename>
	      An SQL statement to be evaluated against the datasource to  pro-
	      duce a virtual layer of features to be burned in.	 The @filename
	      syntax  can  be  used  to	 indicate  that	 the content is	in the
	      pointed filename.

       --extent	<xmin>,<ymin>,<xmax>,<ymax>
	      Set georeferenced	extents. The values must be expressed in  geo-
	      referenced  units.   If  not specified, the extent of the	output
	      file will	be the extent of the vector layers.

       --resolution <xres>,<yres>
	      Set target resolution. The values	must be	expressed in georefer-
	      enced units.  Both must be positive values. Note that  --resolu-
	      tion cannot be used with --size.

       --size <xsize>,<ysize>
	      Set  output file size in pixels and lines. Note that --size can-
	      not be used with --resolution.

       --ot, --datatype, --output-data-type <OUTPUT-DATA-TYPE>
	      Force the	output bands to	be of the indicated  data  type.   De-
	      faults to	Float64.

       --crs <CRS>
	      Override	the  projection	for the	output file. If	not specified,
	      the projection of	the input vector file will be used  if	avail-
	      able.  When  using this option, no reprojection of features from
	      the CRS of the input vector to the specified CRS of  the	output
	      raster,  so  use	only  this option to correct an	invalid	source
	      CRS. The <CRS> may be any	of the usual GDAL/OGR forms,  complete
	      WKT, PROJ.4, EPSG:n or a file containing the WKT.

       --bbox <xmin>,<ymin>,<xmax>,<ymax>
	      Select only points contained within the specified	bounding box.

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

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

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

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

	      May be repeated.

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

	      May be repeated.

INVDIST	ALGORITHM
       Interpolation using an inverse distance to a power.

       When --min-points-per-quadrant or --max-points-per-quadrant  is	speci-
       fied, the actual	algorithm used is "invdistnn".

   Options
       --power <val>
	      Weighting	power (default 2.0).

       --smoothing <val>
	      Smoothing	parameter (default 0.0).

       --radius	<val>
	      Set  first  and second radius (mutually exclusive	with --radius1
	      and --radius2.  By default, uses the whole point array.

       --radius1 <val>
	      The first	radius (X axis if rotation angle is 0) of  the	search
	      ellipse.	By default, uses the whole point array.

       --radius2 <val>
	      The  second radius (Y axis if rotation angle is 0) of the	search
	      ellipse.	By default, uses the whole point array.

       --angle <val>
	      Angle of search ellipse rotation in degrees (counter  clockwise,
	      default is 0).

       --max-points <val>
	      Maximum  number  of  data	 points	to use.	Do not search for more
	      points than this number.	This may only used if the  search  el-
	      lipse  is	set (both radii	are non-zero).	By default, no limita-
	      tion.

       --min-points <val>
	      Minimum number of	data points to use.  If	 less  points  in  the
	      search ellipse than the specified	value are found, the grid node
	      considered empty and will	be filled with the nodata value.  This
	      may  only	 used  if  the	search	ellipse	is set (both radii are
	      non-zero).  By default, no limitation.

       --max-points-per-quadrant <val>
	      Maximum number of	data points to use per quadrant.  By  default,
	      no  limitation.	When  specified,  the algorithm	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 <val>
	      Minimum number of	data points to use per quadrant.  By  default,
	      no  limitation.	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 interpolated.

       --nodata	<val>
	      Nodata value to fill empty points	(default is 0).

INVDISTNN ALGORITHM
       Interpolation using an inverse distance to a power with nearest	neigh-
       bor searching, ideal when --max-points is used.

       When  --min-points-per-quadrant	or --max-points-per-quadrant is	speci-
       fied, the search	will start with	the closest point to the  point	 being
       interpolated  from  the	first  quadrant, then the closest point	to the
       point being interpolated	from the second	quadrant, etc. up to  the  4th
       quadrant,  and  will  continue with the next closest point in the first
       quadrant,  etc.	until  --max-points  and/or  --max-points-per-quadrant
       thresholds are reached.

   Required option
       --radius	<val>
	      Set   search  radius  (mutually  exclusive  with	--radius1  and
	      --radius2.  Required.

   Options
       --power <val>
	      Weighting	power (default 2.0).

       --smoothing <val>
	      Smoothing	parameter (default 0.0).

       --max-points <val>
	      Maximum number of	data points to use. Do	not  search  for  more
	      points  than  this number.  This may only	used if	the search el-
	      lipse is set (both radii are non-zero).  By default, no  limita-
	      tion.

       --min-points <val>
	      Minimum  number  of  data	 points	 to use. If less points	in the
	      search ellipse than the specified	value are found, the grid node
	      considered empty and will	be filled with the nodata value.  This
	      may only used if the search  ellipse  is	set  (both  radii  are
	      non-zero).  By default, no limitation.

       --max-points-per-quadrant <val>
	      Maximum  number of data points to	use per	quadrant.  By default,
	      no limitation.  When specified, the  algorithm  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 <val>
	      Minimum  number of data points to	use per	quadrant.  By default,
	      no limitation.  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 interpolated.

       --nodata	<val>
	      Nodata value to fill empty points	(default is 0).

AVERAGE	ALGORITHM
       Interpolation using a moving average algorithm.

       When  --min-points-per-quadrant	or --max-points-per-quadrant is	speci-
       fied, the search	will start with	the closest point to the  point	 being
       interpolated  from  the	first  quadrant, then the closest point	to the
       point being interpolated	from the second	quadrant, etc. up to  the  4th
       quadrant,  and  will  continue with the next closest point in the first
       quadrant,  etc.	until  --max-points  and/or  --max-points-per-quadrant
       thresholds are reached.

   Options
       --radius	<val>
	      Set  first  and second radius (mutually exclusive	with --radius1
	      and --radius2.  By default, uses the whole point array.

       --radius1 <val>
	      The first	radius (X axis if rotation angle is 0) of  the	search
	      ellipse.	By default, uses the whole point array.

       --radius2 <val>
	      The  second radius (Y axis if rotation angle is 0) of the	search
	      ellipse.	By default, uses the whole point array.

       --angle <val>
	      Angle of search ellipse rotation in degrees (counter  clockwise,
	      default is 0).

       --max-points <val>
	      Maximum  number  of  data	 points	to use.	Do not search for more
	      points than this number.	This may only used if the  search  el-
	      lipse  is	set (both radii	are non-zero).	By default, no limita-
	      tion.

       --min-points <val>
	      Minimum number of	data points to use.  If	 less  points  in  the
	      search ellipse than the specified	value are found, the grid node
	      considered empty and will	be filled with the nodata value.  This
	      may  only	 used  if  the	search	ellipse	is set (both radii are
	      non-zero).  By default, no limitation.

       --max-points-per-quadrant <val>
	      Maximum number of	data points to use per quadrant.  By  default,
	      no  limitation.	When  specified,  the algorithm	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 <val>
	      Minimum number of	data points to use per quadrant.  By  default,
	      no  limitation.	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 interpolated.

       --nodata	<val>
	      Nodata value to fill empty points	(default is 0).

NEAREST	ALGORITHM
       Interpolation using nearest neighbor algorithm.

   Options
       --radius	<val>
	      Set first	and second radius (mutually exclusive  with  --radius1
	      and --radius2.  By default, uses the whole point array.

       --radius1 <val>
	      The  first  radius (X axis if rotation angle is 0) of the	search
	      ellipse.	By default, uses the whole point array.

       --radius2 <val>
	      The second radius	(Y axis	if rotation angle is 0)	of the	search
	      ellipse.	By default, uses the whole point array.

       --angle <val>
	      Angle  of	search ellipse rotation	in degrees (counter clockwise,
	      default is 0).

       --nodata	<val>
	      Nodata value to fill empty points	(default is 0).

LINEAR ALGORITHM
       Linear interpolation by computing a Delaunay triangulation of the point
       cloud, finding in which triangle	of the triangulation 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.

   Options
       --radius	<val>
	      In  case the point to be interpolated does not fit into a	trian-
	      gle of the Delaunay triangulation, use that maximum distance  to
	      search  a	nearest	neighbour, or use nodata otherwise.  If	unset,
	      the search distance is infinite.	If set to 0, nodata value will
	      be always	used.

       --nodata	<val>
	      Nodata value to fill empty points	(default is 0).

DATA METRICS ALGORITHMS
       Besides the interpolation functionality gdal vector grid	can be used to
       compute some data metrics using the specified window  and  output  grid
       geometry. 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-points: 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:

       --radius	<val>
	      Set  first  and second radius (mutually exclusive	with --radius1
	      and --radius2.  By default, uses the whole point array.

       --radius1 <val>
	      The first	radius (X axis if rotation angle is 0) of  the	search
	      ellipse.	By default, uses the whole point array.

       --radius2 <val>
	      The  second radius (Y axis if rotation angle is 0) of the	search
	      ellipse.	By default, uses the whole point array.

       --angle <val>
	      Angle of search ellipse rotation in degrees (counter  clockwise,
	      default is 0).

       --min-points <val>
	      Minimum  number  of  data	 points	 to use. If less points	in the
	      search ellipse than the specified	value are found, the grid node
	      considered empty and will	be filled with the nodata value.  This
	      may only used if the search  ellipse  is	set  (both  radii  are
	      non-zero).  By default, no limitation.

       --max-points-per-quadrant <val>
	      Maximum  number of data points to	use per	quadrant.  By default,
	      no limitation.  When specified, the  algorithm  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 <val>
	      Minimum  number of data points to	use per	quadrant.  By default,
	      no limitation.  If that number is	not reached, the  point	 being
	      interpolated will	be set with the	nodata value.  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 interpolated.

       --nodata	<val>
	      Nodata value to fill empty points	(default is 0).

       When  --min-points-per-quadrant	or --max-points-per-quadrant is	speci-
       fied, the search	will start with	the closest point to the  point	 being
       interpolated  from  the	first  quadrant, then the closest point	to the
       point being interpolated	from the second	quadrant, etc. up to  the  4th
       quadrant,  and  will  continue with the next closest point in the first
       quadrant,  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 vector 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  vector 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 vector grid invdist dem.vrt demv.tif

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

	  gdal vector grid invdist -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.

EXAMPLES
   Example  1: Create a	raster from a VRT datasource using inverse distance to
       a power
	  gdal vector grid invdist --power=2.0 --smoothing=1.0 --extent=85000,894000,89000,890000 \
	      --size=400,400 -l	dem dem.vrt dem.tif

       This example creates a raster TIFF file from  the  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.

   Example 2: Read values to interpolate from an attribute field
	  gdal vector grid invdist --zfield=Elevation --config GDAL_NUM_THREADS	ALL_CPUS \
	      --power=2.0 --smoothing=1.0 --extent=85000,894000,89000,890000 \
	      --size=400,400 -l	dem dem.vrt dem.tif

       This  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 be-
       ing  taken  from	 geometry  and	Z  is being taken from the "Elevation"
       field.  The GDAL_NUM_THREADS is also set	to  parallelize	 the  computa-
       tion.

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

COPYRIGHT
       1998-2025

				 Jul 12, 2025		   GDAL-VECTOR-GRID(1)

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

home | help