v.surf.idw.1grass man page

v.surf.idw — Provides surface interpolation from vector point data by Inverse Distance Squared Weighting.


vector, surface, interpolation, IDW


v.surf.idw --help
v.surf.idw [-n] input=name  [layer=string]   [column=name]  output=name  [npoints=count]   [power=float]   [--overwrite]  [--help]  [--verbose]  [--quiet]  [--ui]



Don’t index points by raster cell
Slower but uses less memory and includes points from outside region in the interpolation


Allow output files to overwrite existing files


Print usage summary


Verbose module output


Quiet module output


Force launching GUI dialog


input=name [required]

Name of input vector map
Or data source for direct OGR access


Layer number or name
Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
Default: 1


Name of attribute column with values to interpolate
If not given and input is 2D vector map then category values are used. If input is 3D vector map then z-coordinates are used.

output=name [required]

Name for output raster map


Number of interpolation points
Default: 12


Power parameter
Greater values assign greater influence to closer points
Default: 2.0


v.surf.idw fills a raster matrix with interpolated values generated from a set of irregularly spaced vector data points using numerical approximation (weighted averaging) techniques. The interpolated value of a cell is determined by values of nearby data points and the distance of the cell from those input points.  In comparison with other methods, numerical approximation allows representation of more complex surfaces (particularly those with anomalous features), restricts the spatial influence of any errors, and generates the interpolated surface from the data points.

Values to interpolate are read from column option. If this option is not given than the program uses categories as values to interpolate or z-coordinates if the input vector map is 3D.


The amount of memory used by this program is related to the number of vector points in the current region.  If the vector point map is very dense (i.e., contains many data points), the program may not be able to get all the memory it needs from the system.  The time required to execute is related to the resolution of the current region, after an initial delay determined by the time taken to read the input vector points map.

Note that vector features without category in given layer are skipped.

If the user has a mask set, then interpolation is only done for those cells that fall within the mask. The module has two separate modes of operation for selecting the vector points that are used in the interpolation:

Simple, non-indexed mode (activated by -n flag)

When the -n flag is specified, all vector points in the input vector map are searched through in order to find the npoints closest points to the centre of each cell in the output raster map. This mode of operation can be slow in the case of a very large number of vector points.

Default, indexed mode

By default (i.e. if -n flag is not specified), prior to the interpolation, input vector points are indexed according to which output raster cell they fall into. This means that only cells nearby the one being interpolated need to be searched to find the npoints closest input points, and the module can run many times faster on dense input maps. It should be noted that:

  • Only vector points that lie within the current region are used in the interpolation. If there are points outside the current region, this may have an effect on the interpolated value of cells near the edges of the region, and this effect will be more pronounced the fewer points there are. If you wish to also include points outside the region in the interpolation, then either use the -n flag, or set the region to a larger extent (covering all input points) and use a mask to limit interpolation to a smaller area.
  • If more than npoints points fall within a given cell then, rather than interpolating, these points are aggregated by taking the mean. This avoids the situation where some vector points can be discarded and not used in the interpolation, for very dense input maps. Again, use the -n flag if you wish to use only the npoints closest points to the cell centre under all circumstances.

The power parameter defines an exponential distance weight. Greater values assign greater influence to values closer to the point to be interpolated. The interpolation function peaks sharply over the given data points for 0 < p < 1 and more smoothly for larger values. The default value for the power parameter is 2.

By setting npoints=1, the module can be used to calculate raster Voronoi diagrams (Thiessen polygons).

See Also

g.region, r.surf.contour, r.surf.idw, r.surf.gauss, r.surf.fractal, r.surf.random, v.surf.rst

Overview: Interpolation and Resampling in GRASS GIS


Michael Shapiro, U.S. Army Construction Engineering Research Laboratory
Improved algorithm (indexes points according to cell and ignores points outside current region) by Paul Kelly

Last changed: $Date: 2016-08-03 13:53:17 +0200 (Wed, 03 Aug 2016) $

Source Code

Available at: v.surf.idw source code (history)

Main index | Vector index | Topics index | Keywords index | Graphical index | Full index

© 2003-2017 GRASS Development Team, GRASS GIS 7.2.1 Reference Manual


GRASS 7.2.1 Grass User's Manual