GRASS logo

Note: A new GRASS GIS stable version has been released: GRASS GIS 7. Go directly to the new manual page here


v.what.vect - Uploads vector values at positions of vector points to the table.


vector, database, attribute table


v.what.vect help
v.what.vect vector=name [layer=integer] column=string qvector=name [qlayer=integer] qcolumn=string [dmax=float] [--verbose] [--quiet]


Vector map to modify
Layer in the vector to be modified
Default: 1
Column to be updated with the query result
Vector map to be queried
Layer of the query vector containing data
Default: 1
Column to be queried
Maximum query distance in map units
Default: 0.0


v.what.vect transfers attributes from the qvector's map attribute table into the attribute table of points present in the vector map. The script is based on v.distance.


The upload column, into which the query results are stored, must be present in the vector map. Use v.db.addcolumn to add one if needed.

Use dmax parameter to control query distance tolerance (how far points/centroids can be from qvector features). For more options, use v.distance instead.

In case of a multipoint input vector map, with several points having the same category number, it can happen, that the query result is NULL, if the same category number falls into different qvector polygons.

When transferring attributes from a point map to a polygon map, usually dmax has to be larger than zero (determined by distance between query points and polygon centroids).


In this example, the 'hospitals' point map in the North Carolina location is copied to the current mapset, a new attribute column is added and the urban names from the 'urbanarea' polygon map are transferred to the 'myhospitals' map at the hospital points' locations:
g.copy vect=hospitals,myhospitals
v.db.addcol myhospitals column="urb_name varchar(25)"
v.what.vect myhospitals qvect=urbanarea column=urb_name qcolumn=NAME
# verification: myhospitals

In this example, city names, population data and more from country files are transferred to selected EU CORINE landuse/landcover classes ("Continuous urban fabric", 111, and "Discontinuous urban fabric", 112). Note: Example in UTM projection to which the input maps have been projected beforehand to have metric distances support:

# extract populated places from geonames
v.extract geonames_IT where="featurecla='P'" output=geonames_IT_cities
# add new column 
v.db.addcol corine_code111_112_cities column="gnameid double precision"
# transfer geonameid (3000m maximal distance between points and centroids)
v.what.vect corine_code111_112_cities qvect=geonames_IT_cities column=gnameid \
            qcolumn=geonameid dmax=3000
# now gnameid can be used for v.db.join to join further
# attributes in from


v.db.addcol,, v.distance, v.rast.stats, v.what.rast


Markus Neteler

Last changed: $Date: 2012-11-26 03:49:24 -0800 (Mon, 26 Nov 2012) $

Main index - vector index - Full index

© 2003-2016 GRASS Development Team