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

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

     TIP:
	Equivalent in new "gdal" command line interface:

	See gdal vector grid.

     --help
	    Show this help message and exit

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

     -q, --quiet
	    Suppress progress messages and other non-error output.

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

     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. If not specified, the format is guessed
	    from the extension. 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

	    Added 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 con-
	    taining 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 re-
	    sult value will be (Z value + Z increase value) * Z multiply  value.
	    The default value is 1.

     -a {<algorithm>[[:<parameter1>=<value1>]...]}
	    Set the interpolation algorithm or data metric name and (optionally)
	    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	geometry
	    (POLYGON  or  MULTIPOLYGON), from a datasource or to the spatial ex-
	    tent of the -spat option if you use the  spat_extent  keyword.  When
	    specifying a datasource, you will generally want to use it in combi-
	    nation 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 in-
	    put  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 produce a
	    virtual layer of features to be processed.

     -oo <NAME>=<VALUE>
	    Added 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 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  sim-
	    ple  formats have no creation options at all. A list of options sup-
	    ported for a format can be listed with the --format command line op-
	    tion 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.

     <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 fol-
     lowing 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  array.   De-
       fault 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  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  clockwise,
       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 NO-
       DATA 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 quad-
       rant.  Default is 0. Added in GDAL 3.6.	When  specified,  this	actually
       uses invdistnn implementation.

     * min_points_per_quadrant:  Minimum  number of data points to use per quad-
       rant.  Default is 0. Added in GDAL 3.6.	When  specified,  this	actually
       uses invdistnn implementation.

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

   invdistnn
     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.  De-
       fault 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 nearest to fur-
       thest 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  quad-
       rant.   Default	is  0. Added in GDAL 3.6.  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:  Minimum  number of data points to use per quad-
       rant.  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 interpolated.

     * 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 interpolated
     from the first quadrant, then the closest point to the point being interpo-
     lated from the second quadrant, etc. up to the 4th quadrant, and will  con-
     tinue  with  the  next  closest  point  in  the  first quadrant, 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  el-
       lipse.  Set  this parameter to zero to use whole point array.  Default is
       0.0.

     * radius2: The second radius (Y axis if rotation angle is 0) of search  el-
       lipse.  Set  this parameter to zero to use whole point array.  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 clockwise,
       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 nearest to fur-
       thest 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 NO-
       DATA marker. Default is 0.

     * max_points_per_quadrant: Maximum number of data points to use  per  quad-
       rant.   Default	is  0. Added in GDAL 3.6.  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:  Minimum  number of data points to use per quad-
       rant.  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 interpolated.

     * 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 interpolated
     from the first quadrant, then the closest point to the point being interpo-
     lated from the second quadrant, etc. up to the 4th quadrant, and will  con-
     tinue  with  the  next  closest  point  in  the  first quadrant, 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  el-
       lipse.  Set  this parameter to zero to use whole point array.  Default is
       0.0.

     * radius2: The second radius (Y axis if rotation angle is 0) of search  el-
       lipse.  Set  this parameter to zero to use whole point array.  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 clockwise,
       default 0.0).

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

   linear
     Linear interpolation algorithm.

     The Linear method performs linear interpolation  by  computing  a	Delaunay
     triangulation of the point cloud, finding in which triangle of the triangu-
     lation the point is, and by doing linear interpolation from its barycentric
     coordinates  within the triangle.	If the point is not in any triangle, de-
     pending 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 triangle
       of  the	Delaunay  triangulation,  use  that maximum distance to search a
       nearest neighbour, or use nodata otherwise. If set to -1, the search dis-
       tance is infinite.  If set to 0, nodata value will be  always  used.  De-
       fault is -1.

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

DATA METRICS
     Besides  the  interpolation  functionality gdal_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_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 el-
       lipse. Set this parameter to zero to use whole point array.   Default  is
       0.0.

     * radius2:  The second radius (Y axis if rotation angle is 0) of search el-
       lipse. Set this parameter to zero to use whole point array.   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  clockwise,
       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  NO-
       DATA  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  quad-
       rant.   Default	is  0. Added in GDAL 3.6.  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:  Minimum  number of data points to use per quad-
       rant.  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 interpolated.

     * 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 interpolated
     from the first quadrant, then the closest point to the point being interpo-
     lated from the second quadrant, etc. up to the 4th quadrant, and will  con-
     tinue  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_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  --  OGR  Virtual  Format  description
     page.

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

	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  con-
     tent:

	<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  coordinates
     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  every-
     thing  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

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

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

EXAMPLES
   Example  1: Create a raster from a VRT datasource using inverse distance to a
     power
	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

     This example creates a raster TIFF file from the VRT  datasource  described
     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_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

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

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

COPYRIGHT
     1998-2026

				  Jun 05, 2026			    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+15.1.quarterly>

home | help